MySQL資料庫常用語法(8.0.13)
阿新 • • 發佈:2019-01-13
建立資料庫:
CREATE DATABASE xxx; # xxx為所要建立的資料庫名字
檢視已存在的資料庫:
SHOW DATABASES;
選擇已知存在的資料庫:
USE xxx; # xxx為要選擇的資料庫名字
注意:
使用之後不能對其他資料庫以及其他的資料中的資料表操作,只能對自身資料庫操作。但可以使用 SHOW DATABASES 返回到根目錄下進行對其他資料庫的操作。
刪除已知存在的資料庫:
DROP DATABASE xxx; # xxx為要刪除資料庫的名字
刪除不知是否存在的資料庫:
DROP DATABASE IF EXISTS xxx; # xxx如果存在將刪除該資料庫,否則不作任何操作
退出(伺服器仍然開啟):
Exit
檢視支援的儲存引擎:
SHOW ENDINES;
或者:
SHOW VARIABLES LIKE ‘have%’;
檢視預設儲存引擎:
SHOW VARIABLES LIKE '%storage_engine%';
或者:
SHOW VARIABLES LIKE '%engine%';
檢視MySQL幫助文件支援的目錄列表:
HELP contents;
顯示警告:
SHOW WARNINGS;
建立表:
CREATE TABLE xxx( # 建議xxx命名為t_xxx或者tab_xxx 欄位名 資料型別, 欄位名 資料型別, . . . 欄位名 資料型別 );
查看錶的定義資訊:
DESCRIBE xxx ; # xxx為已存在的表名
或者
DESC xxx; # xxx為已存在的表名
查看錶的詳細資訊:
SHOW CREATE TABLE xxx; # xxx為已存在的表名
刪除表:
DROP TABLE xxx ; # xxx為資料庫已存在的表名
修改表名:
ALTER TABLE old_name RENAME new_name; # old_name為已存在的表名,new_name為新名字
在表的最後一個位置增加欄位:
ALTER TABLE xxx ADD 屬性名 資料型別;
在表的第一個位置增加欄位:
ALTER TABLE xxx
ADD 屬性名 資料型別 FIRST;
在表的某個位置增加欄位:
ALTER TABLE xxx
ADD 屬性名 資料型別
AFTER 表中已存在屬性名 ;
刪除某個欄位:
ALTER TABLE xxx
DROP 屬性名;
修改某個欄位資料型別:
ALTER TABLE xxx
MODIFY 屬性名 修改後的資料型別;
修改某個欄位的名字:
ALTER TABLE xxx
CHANGE 舊屬性名 新屬性名 舊資料型別;
同時修改某個欄位的名字和資料型別:
ALTER TABLE xxx
CHANGE 舊屬性名 新屬性名 新資料型別;
修改欄位的順序到第一個:
ALTER TABLE xxx
MODIFY 屬性 資料型別 FIRST;
修改欄位順序到任意位置:
ALTER TABLE xxx
MODIFY 屬性1 資料型別 AFTER 屬性2; # 此命令將屬性1這個欄位放到屬性2下一個位置
完整性約束:
NOT NULL # 約束欄位的值不能為空
DEFAULT 預設值 # 設定欄位的預設值
NNIQUE KEY /UNIQUE # 設定欄位的值是唯一
PRIMARY KEY # 約束欄位為主鍵
AUTO_INCREMENT # 設定欄位值自動增加
CONSTRAINT uk_欄位名/pk_欄位名/fk_欄位名 UNIQUUE(欄位名)/PRIMARY KEY(欄位名)/FOREIGN KEY(欄位名) # 給約束設定名字
# 設定外來鍵約束
CONSTRAINT fk_欄位名 FOREIGN KEY(子表中設定為外來鍵的欄位名); # fk_欄位名為外來鍵約束名
REFERENCES 父表名(父表中設定為主鍵的欄位名)
刪除主鍵約束:
ALTER TABLE xxx
DROP PRIMARY KEY;
新增主鍵約束:
ALTER TABLE xxx
ADD PRIMARY KEY(要設為主鍵的欄位名);
建立表時建立普通索引:
INDEX/KEY 索引名(索引關聯的欄位名);
在已存在的表上建立普通索引:
CREATE INDEX 索引名
ON 表名(索引關聯的欄位名);
通過ALTER TABLE 建立普通索引:
ALTER TABLE xxx
ADD INDEX/KEY 索引名(索引關聯的欄位名);
建立表時建立唯一索引:
UNIQUE INDEX/KEY 索引名(索引關聯的欄位名);
在已存在的表上建立唯一索引:
CREATE UNIQUE INDEX 索引名
ON 表名(索引關聯的欄位名);
通過ALTER TABLE建立唯一索引:
ALTER TABLE xxx
ADD UNIQUE INDEX/KEY 索引名(索引關聯的欄位名);
刪除索引:
DROP INDEX 索引名字
ON xxx; # xxx為表名
建立檢視:
CREATE VIEW view_xxx
AS
SELECT 欄位名1,欄位名2 FROM 表名;
檢視檢視名:
SHOW TABLES;
檢視檢視詳細資訊:
SHOW TABLE STATUS;
檢視檢視定義資訊:
SHOW CREATE VIEW viewname;
檢視檢視設計資訊:
DESC viewname;
刪除檢視:
DROP VIEW viewname;
修改檢視:
CREATE OR REPLACE VIEW view_xxx
AS
SELECT 新欄位名 FROM 表名;
或者:
ALRER VIEW view_xxx
AS
SELECT 新欄位名 FROM 表名;
建立觸發器:
CREATE TRIGGER tri_xxx
BEFORE/AFTER 觸發事件
ON table_name FOR EACH ROW 啟用觸發器後被執行的語句; # table_name為觸發事件操作表的名字
檢視觸發器:
SHOW TRIGGERS;
或者:
USE information_schema;
SELECT * FROM TRIGGERS WHERE TRIGGERS_NAME = 'name' \G
刪除觸發器:
DROP TRIGGER tri_name;
插入一條部分資料記錄:
INSERT INTO table_name(欄位名1,欄位名2)
VALUES(value1,value2);
插入一條完整資料記錄:
INSERT INTO table_name VALUES(value1,value2);
插入多條部分資料記錄:
INSERT INTO table_name(欄位名1,欄位名2)
VALUES(value11,value12),
(value21,value22),
......;
插入多條完整資料記錄:
INSERT INTO table_name
VALUES(value11,value12),
(value21,value22),
......;
插入查詢結果:
INSERT INTO table1_name(欄位名11,欄位名12)
SELECT (欄位名21,欄位名22)
FROM table2_name;
更新部分資料記錄:
UPDATE table_name
SET 欄位名1 = value1,
欄位名2 = value2,
WHERE CONDITION;
更新全部資料記錄:
UPDATE table_name
SET 欄位名1 = value1,
欄位名2 = value2;
刪除部分資料記錄:
DELETE FROM table_name
WHEN CONDITION
刪除全部資料記錄:
DELETE FROM table_name
簡單查詢所有欄位資料:
SELECT * FROM table_name;
簡單查詢指定欄位資料:
SELECT 欄位名1,欄位名2,欄位名3 FROM table_name;
簡單避免重複資料查詢:
SELECT DISTINCT 欄位名1,欄位名2 FROM table_name;