前言
這里筑夢師,是一名正在努力學(xué)習(xí)的iOS開發(fā)工程師,目前致力于全棧方向的學(xué)習(xí),希望可以和大家一起交流技術(shù),共同進步,用簡書記錄下自己的學(xué)習(xí)歷程.
本文閱讀建議
1.一定要辯證的看待本文.
2.本文僅代表個人片面觀點,如有不同觀點,還往及時指出.
3.本文是個人對SQL指令的自我記憶筆記,僅供參考
4.本文所表達觀點并不是最終觀點,還會更新,因為本人還在學(xué)習(xí)過程中,有什么遺漏或錯誤還望各位指出.
5.覺得哪里不妥請在評論留下建議~
6.覺得還行的話就點個小心心鼓勵下我吧~
MySQL操作筆記
- MySQL操作筆記
- 數(shù)據(jù)類型
- 數(shù)字類型
- TINYINT 最小整數(shù) (127~255)
- BIT 最小整數(shù) (127~255)
- BOOL 最小整數(shù) (127~255)
- SMALLINT 小型整數(shù) 32767
- MEDIUMINT 中型整數(shù) 8388607
- INT 標(biāo)準(zhǔn)整數(shù) 2147683647
- BIGINT 大整數(shù) 9223372036854775807
- FLOAT 單精度浮點數(shù)
- DOUBLE 雙精度浮點數(shù)
- DECIMAL 一般整數(shù) 自定義長度
- 字符串類型
- 普通字符串類型
- CHAR 0-255
- VARCHAR 0-255
- TEXT 和 BLOB類型
- TINYBLOB 225字節(jié) 小BLOB字段
- TINYTEXT 225字節(jié) 小TEXT字段
- BLOB 65535字節(jié) 常規(guī)BLOB字段
- TEXT 65535字節(jié) 常規(guī)TEXT字段
- MEDIUMBLOB 16777215字節(jié) 中型BLOB字段
- MEDIUMTEXT 16777215字節(jié) 中型TEXT字段
- LONGBLOB 4294967295字節(jié) 長BLOB字段
- LONGTEXT 4294967295 長TEXT字段
- 特殊類型SET 和ENUM
- ENUM 65535
- SET 64
- 普通字符串類型
- 日期類型
- DATE
- TIME
- DATETIME
- TIMESTAMP
- YEAR
- 數(shù)據(jù)類型抉擇
- 選擇最小的可用類型,如果值永遠不超過127,則使用TINYINT比INT強
- 對于完全是數(shù)字的,可用整數(shù)類型
- 浮點類型用于可能具有小數(shù)部分的數(shù).
- 從速度方面考慮,要選擇固定的列,可以使用CHAR 類型
- 要節(jié)省空間,使用動態(tài)的列,可以使用VARCHER類型
- 要將列中的內(nèi)容限制在一種選擇,可以使用ENUM類型.
- 允許在一個列中有多于一個的條目,可以使用SET類型
- 如果要搜索的內(nèi)容不區(qū)分大小寫,可使用TEXT類型
- 如果要搜索的內(nèi)容區(qū)分大小寫,可以使用BLOB類型
- 數(shù)字類型
- 內(nèi)置函數(shù)
- 數(shù)學(xué)函數(shù)
- ABS(x) 返回x的絕對值
- CEIL(x),CEILIN(x),返回不小于x的最小整數(shù)值
- FLOOR(x)返回不大于x的最大整數(shù)值
- RAND() 返回0~1的隨機數(shù)
- RAND(x) 返回0~1的隨機數(shù),x值相同時返回的隨機數(shù)相同?
- SIGN(x) 返回參數(shù) -1 0 或1的符號.取決于x的正負(fù)
- PI() 返回圓周率 默認(rèn)7位
- TRUNCATE (x,y) 返回數(shù)值x保留到小數(shù)點后y位的值
- ROUND(x) 返回離x最近的整數(shù)
- ROUND(x,y)保留x小數(shù)點后y位的值,截斷時進行四舍五入
- 字符串函數(shù)
- SUBSTRING_INDEX(text , ’,’ ,1)
- 日期和時間函數(shù)
- 條件判斷函數(shù)
- 系統(tǒng)信息函數(shù)
- 加密函數(shù)
- 其他函數(shù)
- 數(shù)學(xué)函數(shù)
- 數(shù)據(jù)庫操作
- 創(chuàng)建數(shù)據(jù)庫 CREATE DATABASE name
- 查看數(shù)據(jù)庫 SHOW
- 查看所有數(shù)據(jù)庫 SHOW DATABASES
- 使用數(shù)據(jù)庫 USE DATABASE name
- 刪除數(shù)據(jù)庫 DROP DATABASE name
- 數(shù)據(jù)表操作
- 添加數(shù)據(jù)表 CREATE
- 可選參數(shù) TEMPORARY
- 如果使用該關(guān)鍵字,表示創(chuàng)建一個臨時表
- 必選參數(shù) TABLE
- 是否存在 IF NOT EXISTS
- 判斷是否存在,避免錯誤
- 定義列屬性 create_definition() =>col_name
- 表至少包含一列,否則無法創(chuàng)建
- 列屬性創(chuàng)建
- 必選參數(shù) 字段名字 col_name
- 必選參數(shù) 字段類型 type
- 可選參數(shù) 是否可以為空 NOT NULL / NULL
- 可選參數(shù) 默認(rèn)值 DEFAULT default_value
- 可選參數(shù) 自增 AUTO_INCREMENT
- 可選參數(shù) 主鍵 PRIMARY KEY
- 可選參數(shù) 注釋 reference_definition
- 表參數(shù) table_options
- 快速建表 select_statement
- 可選參數(shù) COMMENT ‘備注’
- 設(shè)置主鍵 PRIMARY KEY (col_name)
- 自增列 AUTO_INCREMENT
- 示例:
- CREATE [TEMPORARY] TABLE [IF NOT EXISTS] table_name(
col_name type NOT NULL DEFAULT default_value AUTO_INCREMENT PRIMARY KEY,
);
- CREATE [TEMPORARY] TABLE [IF NOT EXISTS] table_name(
- 可選參數(shù) TEMPORARY
- 查看表結(jié)構(gòu) SHOW COLUMNS/DESCRIBE
- 必選參數(shù) 查詢 SHOW
- 可選參數(shù) FULL
- 必選參數(shù) 列數(shù) COLUMNS
- 必選參數(shù) 來自 FROM table_name
- 可選參數(shù) 來自 FROM database_name
- ——
- 必選參數(shù) 列出 DESCRIBE
- 必選參數(shù) 數(shù)據(jù)表名 table_name
- 可選參數(shù) 列名 col_name
- 查看表詳細結(jié)構(gòu)語句 SHOW CREATE TABLE
- 必選參數(shù) SHOW
- 必選參數(shù) CREATE
- 必選參數(shù) TABLE
- 必選參數(shù) table_name
- 可選參數(shù) \G
- 修改表結(jié)構(gòu) ALTER TABLE
- 必選參數(shù) 修改 ALTER
- 可選參數(shù) IGNORE
- 必選參數(shù) 表名 TABLE table_name
- 必選一參數(shù) ADD | MODIFY | CHANGE | DROP
- 修改表名 ALTER TABLE table_name RENAME TO new_table_name
- 改變列名 CHANGE COLUMN old_col_name new_col_name type ….;
- 如果不改變列名 則寫兩遍
- 改變某列屬性 ALTER TABLE table_name MODIFY COLUMN col_name type;
- ALTER TABLE table_name DROP COLUMN col_name;
- 必選多可選 alter_spec,[alter_spec]
- 示例 ALTER TABLE table_name ADD col_name type col_definition,MODIFY col_name type;
- 重命名 RENAME TABLE
- 必選參數(shù) RENAME
- 必選參數(shù) TABLE
- 必選參數(shù) 表名 table_name
- 必選參數(shù) TO
- 必選參數(shù) new_table_name;
- 示例
- RENAME TABLE old_name TO new_name;
- 刪除表 DROP TABLE
- 必選參數(shù) DROP
- 必選參數(shù) TABLE
- 可選參數(shù) 是否存在 IF EXISTS
- 必選參數(shù) table_name;
- 添加數(shù)據(jù)表 CREATE
- 數(shù)據(jù)操作
- 插入數(shù)據(jù) INSERT
- 必選參數(shù) INSERT
- 必選參數(shù) INTO
- 必選參數(shù) 數(shù)據(jù)表名(要插入的列) table_name(column_name1,)
- 必選多可選 VALUES(value1,value2),(value3,value4)
- 示例
- INSERT INTO table_name(col_name1,col_name2) VALUES(value1,value2)
- 查詢數(shù)據(jù) SELECT
- 必選參數(shù) 查詢 SELECT
- 可選子參數(shù) DISTINCT 去掉重復(fù)行.
- 可選子函數(shù) CONCAT(col_name1,連接字符串,col_name2);
- 必選參數(shù) 指定表 FROM
- 可選組合參數(shù) 第二條件 HAVING
- 篩選GROUP BY之后的參數(shù)
- SELECT sex,COUNT(sex) FROM table_name GROUP BY sex HAVING COUNT(sex)>=3;
- 可選組合參數(shù) 第二條件 HAVING
- 可選組合參數(shù) 條件 WHERE
- 等于 =
- 查詢id=27的記錄, 如果結(jié)果相等 返回1 不相等返回0
- 大于 >
- 小于 <
- 大于等于 =>
- 小于等于 <=
- 不等于 != 或 <>
- 多條件查詢 AND
- 條件必須全部滿足,才能被查詢出來
- SELECT * FROM table_name WHERE condition_1 AND condition_2 …可以無限AND疊加
- SELECT * FROM table_name WHERE user=‘mr’ AND section=‘php’.
- 多條件查詢 OR
- 滿足其中一個條件就會被查出來
- SELECT * FROM table_name WHERE condition_1 OR condition_2…OR無限疊加
- SELECT * FROM table_name WHERE section=‘php’ OR section=‘程序開發(fā)’;
- 是否為空 IS NULL
- SELECT books,row FROM table_name WHERE row IS NULL;
- 不為空 IS NOT NULL
- SELECT books,row FROM table_name WHERE row IS NOT NULL;
- 范圍 ..介于 BETWEEN AND
- SELECT * FROM table_name WHERE condition BETWEEN 取值1 AND 取值2;
- SELECT * FROM table_name WHERE id BETWEEN 5 AND 7;
- 范圍 ..不在 NOT BETWEEN AND
- SELECT * FROM table_name WHERE condition NOT BETWEEN 取值1 AND 取值2;
- SELECT * FROM table_name WHERE id NOT BETWEEN 5 AND 7;
- 在范圍之內(nèi) IN
- SELECT * FROM table_name WHERE condition IN (元素1,元素2)
- SELECT * FROM table_name WHERE user IN (‘mx’,’xiaomi’)
- 不在什么范圍之內(nèi) NOT IN
- SELECT * FROM table_name WHERE condition NOT IN (元素1,元素2)
- SELECT * FROM table_name WHERE user NOT IN (‘mx’,’xiaomi’)
- 模糊查詢 包含 LIKE
- SELECT * FROM table_name WHERE user like ‘%mr%’
- LIKE (‘李%’) 匹配 包含 李
- LIKE (‘李_’) 匹配 李 + “ ”
- 模糊查詢 不包含 NOT LIKE
- 正則表達式 REGEXP
- 語法:SELECT * FROM table_name WHERE 條件判斷1 邏輯運算符 條件判斷2
- 等于 =
- 可選組合參數(shù) 分組 GROUP BY
- SELECT 字段列表,聚合函數(shù) FROM table_name GROUP BY 字段名 [ASC | DESC]
- 通俗說,GROUP BY是將 字段名一樣的進行聚合函數(shù)的計算
- 示例
- 可選組合參數(shù) 排序 ORDER BY
- SELECT * FROM table_name ORDER BY 字段1 [ASC|DESC] , 字段2 [ASC|DESC]
- 原理:如果第1段有相同的值鳍咱,相同值的部分用第2個字段來排序浅役。
- 可選組合參數(shù) 限定 LIMIT
- 限制返回數(shù)量 LIMIT 結(jié)果數(shù);
- LIMIT 3;
- 分頁返回 LIMIT 起始位置,每頁個數(shù).
- LIMT 1,4;從1開始往后查4個
- 限制返回數(shù)量 LIMIT 結(jié)果數(shù);
- 多表組合操作
- 排序規(guī)則
- 示例
- SELECT * FROM table_name;
- SELECT col_name1,col_name2 FROM table_name;
- SELECT table1.id ,table1.name FROM table1,table2 WHERE table1.name =table2.name AND table2.name =“”;
- 必選參數(shù) 查詢 SELECT
- 修改數(shù)據(jù) UPDATE
- 必選參數(shù) UPDATE
- 必選參數(shù) table_name
- 必選參數(shù) SET
- 可選復(fù)合參數(shù)CASE WHEN
- UPDATE table_name
SET col_name=
CASE
WHEN condition THEN ‘value’
WHEN condition THEN ‘value’
WHEN condition THEN ‘value’
ELSE ‘value’
END;
- UPDATE table_name
- 可選復(fù)合參數(shù) col_name =new_value1,col_name 2=new_value2
- 如果col_name不存在,則創(chuàng)建一個新列
- 可選參數(shù) WHERE
- 可選參數(shù) condition
- 刪除數(shù)據(jù) DELETE
- 必選參數(shù) DELETE
- 必選參數(shù) FROM
- 必選參數(shù) table_name
- 可選參數(shù) WHERE
- 可選參數(shù) condition
- 聚合函數(shù)
- COUNT(字段名) 計算非空記錄數(shù)
- SELECT COUNT(DISTINCT results) FROM student;
- COUNT(*)全部統(tǒng)計
- SELECT sex,count(sex) AS 人數(shù) FROM student GROUP BY sex DESC.
- AVG(字段名) 平均數(shù)
- SELECT AVG(row) FROM table_name;
- MIN (字段名) 最小值
- SELECT MIN(row) FROM table_name;
- MAX (字段名) 最大值
- SELECT MAX(row) FROM table_name;
- STD(字段名)指定字段標(biāo)準(zhǔn)背離值
- STDTEV(字段名)指定字段標(biāo)準(zhǔn)背離值
- SUM(字段名)指定字段所有記錄的總合
- SELECT sum(row) FROM table_name;
- COUNT(字段名) 計算非空記錄數(shù)
- 插入數(shù)據(jù) INSERT
- 約束操作
- 外鍵 FOREIGN KEY
- CREATE TABLE table_name(
int_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
contact_id INT NOT NULL ,
CONSTRAINT my_contacts_contact_id_fk
FOREIGN KEY (contact_id)
REFERENCES my_contacts (contact_id)
);
- 截圖
- CREATE TABLE table_name(
- 檢查約束 CHECK
- 外鍵 FOREIGN KEY
- 連接查詢
- 查詢語句基本格式
- SELECT selection_list //要查詢哪些列
FROM table_name //指定數(shù)據(jù)表
WHERE primary_constraint 查詢時要滿足的條件,行必須滿足的條件
GROUO BY grouping_columns //如何對結(jié)果進行分組
ORDER BY sorting_columns //如何對結(jié)果進行排序
HAVING secondary_constraint //查詢時滿足的第二條件
LIMIT count //限定輸出的查詢結(jié)果 - SELECT * | id,user,col_name… FROM table_name 查詢?nèi)苛谢蚨嗔?/li>
- SELECT selection_list //要查詢哪些列
- 內(nèi)連接查詢
- SELECT name,books FROM table_name_1,table_name_2 WHERE table_name1.user =table_name2.user
- 內(nèi)連接,結(jié)果集只包含參加連接的表中與指定字段相符的行.
- 如果沒有WHERE限定,則為交叉連接或者全連接
- 相等聯(lián)結(jié)
SELECT col_name FROM table_name INNER JOIN table_name WHERE conditions = conditions - 不等聯(lián)結(jié)
SELECT col_name FROM table_name INNER JOIN table_name WHERE conditions <> conditions - 自然聯(lián)結(jié)
SELECT col_name FROM table_name NATURAL JOIN table_name ;
- 左外連接
- SELECT col_name FROM table_name1 LEFT JOIN table_name2 ON table_name1.col_name =table_name2.col_name;
- 左外鏈接,是指將左表中的所有數(shù)據(jù)分別與右表的每條數(shù)據(jù)進行結(jié)合,返回的結(jié)果除內(nèi)連接的數(shù)據(jù)外,還包括左表中不符合條件的數(shù)據(jù),并在右表的相應(yīng)列中添加NULL值.
- 截圖
- 右外連接
- SELECT col_name FROM table_name1 RIGHT JOIN table_name2 ON table_name1.col_name =table_name2.col_name;
- 右外連接,是指將右表中的所有數(shù)據(jù)分別與左表中的每條數(shù)據(jù)進行連接組合,返回的結(jié)果除內(nèi)連接數(shù)據(jù)外,還包括表中不符合條件的數(shù)據(jù),并在左表的相應(yīng)列中添加NULL.
- 截圖
- 外聯(lián)結(jié)截圖
- 自引用
- 復(fù)合條件
- SELECT col_name FROM table_name1 RIGHT JOIN table_name2 ON table_name1.col_name =table_name2.col_name AND condition
- 子查詢
- IN 子查詢
- SELECT * FROM table_name_1 WHERE col_name in(SELECT col_name FROM table_name_2)
- IN運算符可以檢測結(jié)果集中是否存在某個特定的值.
- 比較運算符查詢
- SELECT * FROM table_name WHERE row>=(SELECT col_name FROM table_name_2 WHERE id =1);
- 子查詢可以使用比較運算符
- [NOT] EXISTS 子查詢
- SELECT * FROM table_name WHERE [NOT] EXISTS (SELECT * FROM table_book WHERE id=27);
- 存在執(zhí)行,不存在不執(zhí)行.
- NOT EXISTS反之.
- ANY子查詢
- SELECT books,row FROM table_name WHERE row<ANY(SELECT row FROM tb_name);
- 達到ANY條件輸出
- ALL 子查詢
- SELECT books,row FROM table_name WHERE row>=ALL(SELECT row FROM table_name).
- 子查詢剖析圖
- IN 子查詢
- 合并查詢 UNION
- SELECT col_name FROM table_name_1 UNION
SELECT col_name FROM table_name_2 - SELECT col_name FROM table_name_1 UNION ALL
SELECT col_name FROM table_name_2 - 合并查詢結(jié)果 使用UNION 和UNION ALL關(guān)鍵詞
- UNION可以去除相同記錄.
- UNION ALL只是單純將結(jié)果集合并
- SELECT col_name FROM table_name_1 UNION
- 別名查詢
- 為表起別名
- SELECT * FROM table_name table_alias WHERE table_alias.col_name =‘PHP’;
- SELECT * FROM tb_user p WHERE p.name =“張三”;
- 為字段取別名
- col_name AS col_alias;
- SELECT section AS login_section ,name AS login_name FROM table_login;
- 為表起別名
- 正則表達式查詢
- SELECT * FROM info WHERE name REGEXP ‘正則表達式’.
- 查詢語句基本格式
- 數(shù)據(jù)庫思想 & 概念
- 數(shù)據(jù)模式
- 1NF旁蔼、2NF珍逸、3NF、BCNF、4NF
- 聯(lián)結(jié)概念圖
- 數(shù)據(jù)庫規(guī)范
- 數(shù)據(jù)庫視圖VIEW
- 數(shù)據(jù)庫事務(wù)
- 數(shù)據(jù)庫概念設(shè)計
- 用戶信息表
- 留言信息表
- 回復(fù)信息
- 管理員信息
- 程序業(yè)務(wù)流程
- 數(shù)據(jù)類型
結(jié)束語
如果您對這篇文章有什么意見或者建議,請評論與我討論.
如果您覺得還不錯的話~可以點個喜歡鼓勵我哦.
如果您想和我一起學(xué)習(xí),請毫不吝嗇的私信我吧~
介個是我的個人博客,歡迎參觀哦~