基本命令
- 創建數據庫:CREATE DATABASE IF NOT EXISTS name CHARACTER SET utf-8/gbk;
- 查詢數據庫信息:SHOW CREATE DATABASE name;
- 修改格式:ALTER DATABASE name CHARACTER=utf-8;
- 刪除數據庫:DROP DATABASE name;
- 查詢警告:SHOW WARNINGS;
- 打開數據庫:USE name;
- 查在哪個庫:SELECT DATABASE();
- 查詢信息:SHOW CREATE TABLE name;
- 查看錶的結構:SHOW COLUMNS FROM tb(表名)或 DESC tb(表名)-
表的屬性
- 自動編號:AUTO_INCREMENT
- 主鍵:PRIMARY KEY
- UNIQUE 唯一約束 可以爲空(只能有一個) 一個表可以存在多個唯一約束
- DEFAULT 默認值
- FOREIGN KEY 外鍵 父子使用相同的存儲引擎 safault-storage-engine= INNODB
- REFERENCES 關聯
- 查看錶索引結構:SHOW INDEXES FROM tb\G;
- 修改結束符號:DELIMITER,默認是分號 ;-
外鍵約束
- CASCADE 從父表刪除或更新 且自動刪除或更新子表中匹配的行
- SET NULL 從父表刪除或更新行 並設置子表中的外鍵列爲NULL
- RESTRICT 拒絕對父表的刪除或更新
- NO ACTION 與restrict相同-
修改表的結構
- 添加列:ALTER TABLE tab_name ADD col_name column_definition [FIRST |AFTER col_name]
- 刪除列:ALTER TABLE tab_name DROP clo_name 逗號分隔 可以多個操作
- ALTER TABLE tab_name ADD FOREIGN KEY (id) REFERENCES(關聯) tab_name(pid)
- 添加默認約束:ALTER TABLE tab_name ALTER clo_name SET DEFAULT **
- 刪除默認約束:ALTER TABLE tab_name ALTER clo_name DROP DEFAULT
- 刪除主鍵:ALTER TABLE tab_name DROP PRIMARY KEY
- 刪除唯一約束: ALTER TABLE tab_name DROP INDEX dex_name
- 刪除外鍵約束: ALTER TABLE tab_name DROP FOREIGN KEY key_name
- 修改列定義:ALTER TABLE tab_name MODIFY col_name column_definition FIRST | AFTER col_name
- 修改列名稱:ALTER TABLE tab_name CHANGE old_col_name new_col_name column_definition FIRST | AFTER col_name
- 修改數據表名:ALTER TABLE tab_name RENAME new_tab_name
- 插入記錄:INSERT tab_name VALUES() (可以插入多條)
- INSERT tab_name SET col_name="" (只能插一條)
- 更新記錄:UPDATE tab_name SET age=age+5; 年齡都加5
- UPDATE tab_name SET age=age+5 WHERE condition;
- 刪除記錄 DELETE FROM tab_name WHERE condition;
- 查詢 (順序、別名) SELECT
- 分組 GROUP BY col_name
- 分組條件 GROUP BY col_name HAVING condition
- ORDER BY ASC(升序_默認)| DESC(降序)
- 限制 LIMIT n,n
- 設置客戶端顯示的編碼方式:SET NAMES gbk;
- 查看tab_name的數據表結構 DESC tab_name
- 子查詢可包含多個關鍵字:DISTINCT / GROUP BY / ORDER BY / LIMIT
- 外層查詢可以是: SELECT 、INSERT、UPDATE、SET、DO
- 四捨五入並保留兩位小數 SELECT ROUND(AVG(price),2) FROM name
- ANY 、OME、 ALL、 IN、 NOT IN
- INSERT tab_name(col_name) SELECT
- 多表的更新 根據分類表去更新主表 UPDATE tab_name set col_name =
- 連接表 tab_1 INNER | CROSS JOIN、LEFT | RIGHT JOIN tab_2 ON condition SET
- 自身連接-
字符函數
- concat(‘a’,‘b’) 字符連接
- concat_ws(’|’,‘a’,‘b’,‘c’) 使用指定的分隔符進行字符連接
- format(1234.76,2) 數字格式化
- lower(‘DS’) 轉換成小寫字母
- upper(‘ss’) 轉換成大寫字母
- left(‘dsffs’,2) ds 獲取左側字符
- right(‘sdfs’,3) dfs 獲取右側字符
- length(’’) 獲取字符串長度
- ltrim(’ df’) 刪除前導空格
- rtrim(’ fdd ') 刪除後導空格
- trim(’ df ') 刪除前導和後導空格
- trim(leading ‘?’ ffrom ‘???jhdhu??’) 刪除前導的字符
- trim(trailing ‘?’ ffrom ‘???jhdhu??’) 刪除後導的字符
- trim(both ‘?’ ffrom ‘???jhdhu??’) 刪除前後的字符
- sunstring(‘dsfcxvxc’,2,3) uns 字符串截取
- like 模式匹配
- replace(’???dds?dds??’,’?’,’ ') 字符串替換
- 數值運算符
- ceil() 向上取整
- div 整數除法
- floor() 向下取整
- mod 取模
- power(2,2) 冪運算
- round(2.33,1) 四捨五入
- truncate() 數字截取
- 比較運算符(not)
- between and
- in
- is null
日期函數
- now() 當前日期
- curdate() 當前日期
- curtime() 當前時間
- date_add(interval) 日期變化
- datediff() 日期差值
- date_format() 日期格式化
信息函數
- connection_id() 連接ID
- datebase() 當前數據庫
- last_insert_id() 最後插入記錄ID
- user() 當前用戶
- version() 版本信息
聚合函數
- avg()
- count()
- max()
- min()
- sum()
加密函數
- md5() 信息摘要算法
- password() 密碼計算-
自定義函數
- CREATE FUNCTION function_name RETURNS
- CREATE FUNCTION f1() RETURNS VARCHAR(30)
- RETURN DATE_FORMAT(NOW(),’%Y年%M月%d日 %h點:%i分:%s秒’)
- 複合結構使用:BEGIN END,中間放SQL語句等-
存儲過程
-
創建存儲過程:CREATE PROCEDURE sp_name [in | out | inout] 過程體
-
調用存儲過程:CALL sp_name
-
帶in的存儲過程:
-
CREATE PROCEDURE sp_name(IN )沒返回值
-
CREATE PROCEDURE sp_name(IN ,OUT )有回值 INTO var
-
CALL sp_name(22,@num); 返回值賦給@num 用戶變量@dd,取值 SELECT @num;-
-
查看數據更改的數量:ROW_COUNT(),和PHP中的函數 mysqli_affected_rows()