Mysql DDL語句操作
阿新 • • 發佈:2018-11-07
此內容摘自 "mysql5.7從入門到精通"
目錄
1.建立表 2.主鍵約束 3.外來鍵 4.使用非空約束 5.唯一約束 6.預設約束 7.主鍵自增
8.修改表名 9.修改某個欄位的資料型別 10.修改欄位名字 11.新增新欄位 12.刪除欄位 13.刪除表的外來鍵約束
1.建立表
表名不區分大小寫,不能使用SQL關鍵字
-- 語法 --例子 CREATE TABLE 表名 ( CREATE TABLE tb_emp ( 欄位名1 資料型別 , id INT(10) , 欄位名2 資料型別 , name VARCHAR(20) , ); );
2.主鍵約束
1. 單欄位主鍵
一個表中只能有一個主鍵
第一種直接在欄位後面加primary key , 第二種在定義完列後加主鍵
-- 語法 欄位名 資料型別 PRIMARY KEY -- 1 --2 CREATE TABLE tb_emp2( CREATE TABLE tb_emp2( id INT(11) PRIMARY KEY , id INT(11) , name VARCHAR(20), name VARCHAR(20), salary INT(10) salary INT(10), ); PRIMARY KEY(id) );
2.多欄位聯合主鍵
-- 語法
PRIMARY KEY (欄位1,欄位2,欄位n)
--例子
CREATE TABLE tb_emp2(
id INT(11) ,
name VARCHAR(20),
salary INT(10),
PRIMARY KEY(id,name)
);
3.外來鍵
外來鍵首先他是一個表的欄位,他可以不是主鍵,但必須對應另一個表的主鍵,
-- 語法
CONSTRAINT 外來鍵名 FOREIGN KEY(欄位1) REFERENCES 表名(主鍵欄位)
CREATE TABLE tb_emp4(
id INT(11) PRIMARY KEY ,
name VARCHAR(20),
salary INT(10),
CONSTRAINT fk_name FOREIGN KEY(name) REFERENCES dept(id)
);
4.使用非空約束
-- 語法
欄位名 資料型別 NOT NULL
-- 例子
CREATE TABLE tb_emp5(
id INT(11) PRIMARY KEY ,
name VARCHAR(20) NOT NULL,
salary INT(10) NOT NULL,
);
5.唯一約束
一個表中可以有多個唯一約束,且值可以為null
-- 語法
欄位名 資料型別 UNIQUE CONSTRAINT 約束名 UNIQUE (欄位名)
-- 1 --2
CREATE TABLE tb_emp6( CREATE TABLE tb_emp7(
id INT(11) PRIMARY KEY , id INT(11) PRIMARY KEY ,
name VARCHAR(20) UNIQUE, name VARCHAR(20) ,
salary INT(10), alary INT(10),
); CONSTRAINT uq_name UNIQUE (name)
);
6.預設約束
如果新增一條資料時,沒有指定該欄位的值就會使用預設值
-- 語法
欄位名 資料型別 DEFAULT 預設值
-- 例子
CREATE TABLE tb_emp5(
id INT(11) PRIMARY KEY ,
name VARCHAR(20) DEFAULT '匿名使用者',
);
7.主鍵自增
一個表中只能有一個欄位使用auto_increment 約束
-- 語法
欄位名 資料型別 AUTO_INCREMENT
--例子
CREATE TABLE tb_emp5(
id INT(11) PRIMARY KEY AUTO_INCREMENT ,
name VARCHAR(20),
);
8.修改表名
其中TO 為選引數,可省略
-- 語法
ALTER TABLE 舊錶名 RENAME TO 新表名
--例子
ALTER TABLE tb_emp1 RENAME tb_emp111;
9.修改某個欄位的資料型別
以下是把name欄位的型別改為int型別
-- 語法
ALTER TABLE 表名 MODIFY 欄位名 資料型別
-- 例子
ALTER TABLE tb_emp1 MODIFY name INT(20);
10.修改欄位名字
如果不需要修改資料型別可以寫成和原來一樣的,但就是不能為空
-- 語法
ALTER TABLE 表名 CHANGE 舊欄位名 新欄位名 資料型別
-- 例子
ALTER TABLE tb_emp2 CHANGE name emp_name VARCHAR(10);
11.新增新欄位
-- 語法
ALTER TABLE 表名 ADD 新欄位名 資料型別
-- 例子
ALTER TABLE dept ADD managerId INT(10);
12.刪除欄位
-- 語法
ALTER TABLR 表名 DROP 欄位名
--例子
ALTER TABLE dept DROP managerId;
13.刪除表的外來鍵約束
-- 語法
ALTER TABLE 表名 DROP FOREIGN KEY (外來鍵約束名)
--例子
ALTER TABLE tb_emp4 DROP FOREIGN KEY (fk_name)