SQL-DDL

目录

1 CREATE

1.1 CREATE DATABASE 创建数据库

1.2 CREATE TABLE 创建表

 1.3 CREATE VIEW 创建视图

2 ALTER

2.1 ALTER ADD 新增表字段

2.2 ALTER CHANGE 修改表字段

2.3 ALTER DROP 删除表字段

3 DROP

3.1 DROP DATABASE 删除数据库

3.2 DROP TABLE 删除表

4 约束条件

4.1 主键 PRIMARY KEY

4.2 非空 NOT NULL

4.3 唯一 UNIQUE

4.4 外键 FOREIGN KEY

4.5 默认 DEFAULT


DDL (DATA DEFINITION LANGUAGE) :数据定义语言

1 CREATE

创建数据库、表...等

1.1 CREATE DATABASE 创建数据库

CREATE DATABASE database_name;

  判断不存在创建 

CREATE DATABASE IF NOT EXISTS database_name;

  指定字符集 

CREATE DATABASE database_name CHARSET = UTF8MB4;
CREATE DATABASE database_name CHARACTER SET UTF8MB4;

1.2 CREATE TABLE 创建表

CREATE TABLE table_name (
column1_name INT(10), 
column2_name CHAR(10),
...
);

例:

CREATE TABLE user (
id BIGINT(20) UNSIGNED PRIMARY KEY AUTO_INCREMENT COMMENT 'user id', 
name VARCHAR(20) NOT NULL COMMENT 'user name', 
age INT(3) UNSIGNED DEFAULT NULL COMMENT 'user age', 
gender TINYINT(2) NOT NULL COMMENT 'user gender', 
state INT(3) UNSIGNED ZEROFILL DEFAULT '0' COMMENT 'user state'
) DEFAULT CHARSET = UTF8MB4;

根据已存在的表创建新表

CREATE TABLE table_name_1 
AS 
SELECT column_1, column_2, ... FROM table_name_2;

例:

CREATE TABLE user1 
AS 
SELECT id, name, age FROM user;

 1.3 CREATE VIEW 创建视图

CREATE VIEW view_name AS 
SELECT column5_name, column6_name, colmun7_name 
FROM table1_name, table2_name, table3_name 
WHERE table1_name.column3_name = table2_name.column3_name 
AND table2_name.column4_name = table3_name.column4_name;

2 ALTER

修改表结构

2.1 ALTER ADD 新增表字段

ALTER TABLE table_name ADD column_name INT(10);

例:

ALTER TABLE user ADD address VARCHAR(50) DEFAULT NULL COMMENT 'user address';

新增字段默认添加在最后,可使用 FIRST 和 AFTER 关键字指定新增字段的位置 ;

例:

在某个字段之前添加新字段:

ALTER TABLE user 
ADD address VARCHAR(50) DEFAULT NULL COMMENT 'user address' 
AFTER gender;

 添加字段为第一列:

ALTER TABLE user 
ADD address VARCHAR(50) DEFAULT NULL COMMENT 'user address' 
FIRST;

2.2 ALTER CHANGE 修改表字段

ALTER TABLE table_name 
CHANGE column_name column_name INT(20);

例:

ALTER TABLE user 
CHANGE address address VARCHAR(30) 
DEFAULT '4 Privet Drive Little Whinging';

2.3 ALTER DROP 删除表字段

ALTER TABLE table_name DROP column_name;

 例:

ALTER TABLE user DROP address;

3 DROP

删除数据库、表

3.1 DROP DATABASE 删除数据库

DROP DATABASE database_name;

  判断存在则删除 

DROP DATABASE IF EXISTS database_name;

3.2 DROP TABLE 删除表

DROP TABLE table_name;

4 约束条件

4.1 主键 PRIMARY KEY

  • 一张表只能有一个字段是主键
  • 主键字段的值不为null且唯一
  • 一般表中的第一个字段会设置为主键
  • INT类型的主键可以搭配自增 AUTO_INCREMENT 使用

例: 创建 t_city 表,将id字段设置为自增的主键

INSERT INT t_city (
id BIGINT(20) PRIMARY KEY AUTO_INCREMENT, 
city VARCHAR(20)
) DEFAULT CHARSET = UTF8MB4;

4.2 非空 NOT NULL

字段的值不能为空

例:创建 t_city 表,设置city字段的值不能为空

CREATE TABLE t_city (
id BIGINT(20) PRIMARY KEY, 
city VARCHAR(20) NOT NULL
) DEFAULT CHARSET = UTF8MB4;

4.3 唯一 UNIQUE

字段值唯一,不能有重复

例:创建 t_city 表,将city字段添加唯一约束

CREATE TABLE t_city (
id BIGINT(20) PRIMARY KEY, 
city VARCHAR(20) NOT NULL, 
UNIQUE (city)
) DEFAULT CHARSET = UTF8MB4;

4.4 外键 FOREIGN KEY

  • 外键:在一张表的某个字段上存另一个表的主键字段值
  • 外键所在的字段无法添加主键字段中不存在的值
  • 删除主键时,若外键含有改主键的值则无法删除,除非将外键值修改为其他主键值或设置为null

例:创建t_district表,将id_c字段设置为外键

CREATE TABLE t_district (
id BIGINT(20) PRIMARY KEY, 
district VARCHAR(20) NOT NULL, 
id_c BIGINT(20), 
FOREIGN KEY (id_c) REFERENCES t_city(id)
);

4.5 默认 DEFAULT

字段的值设置默认值

例:创建 t_city 表,将code字段添加默认值

CREATE TABLE t_city (
id BIGINT(20) PRIMARY KEY, 
city VARCHAR(20) NOT NULL, 
code INT(10) DEFAULT '100000', 
UNIQUE (city)
) DEFAULT CHARSET = UTF8MB4;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值