MySQL 基礎命令總結

基本命令

  • 創建數據庫: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()

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章