1. 程式人生 > >MySQL資料庫常用語法(8.0.13)

MySQL資料庫常用語法(8.0.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;