MySQL简单笔记二之DDL
学习要自己思考,举一反三,保持好奇心(比如我在这里这么干会怎么样).
# 系列链接 [MySQL简单笔记一](https://pengxiandyou.github.io/2019/08/22/MySQL简单笔记一/)
一 数据库
-
创建数据库
CREATE DATABASE db2;
- 不存在就创建
CREATE DATABAS IF NOT EXISTS db2;
-
删除数据库
DROP DATABASE db2;
- 存在就删
DROP DATABASE IF EXISTS db2;
二 表
-
创建表 可以使用``(Tab上面的键)避免关键字冲突 NAME也可以创建
1
2
3
4
5CREATE TABLE stu(
id INT,
`name` VARCHAR(10),
age INT
); -
删除表
DROP TABLE stu;
-
修改表
-
添加列
1
2
3
4ALTER TABLE stu ADD(
address VARCHAR(10),
email VARCHAR(20)
); -
修改列类型
ALTER TABLE stu MODIFY email VARCHAR(50);
-
修改列名
ALTER TABLE stu CHANGE address addr VARCHAR(50);
-
删除列
ALTER TABLE stu DROP email;
-
修改表名
ALTER TABLE stu RENAME TO student;
-
三 约束
-
主键约束
-
CREATE TABLE t1( id INT PRIMARY KEY, NAME VARCHAR(10) );
1
2
3
4
5
6
7
8
9
10
11
12
2. 添加主键 `ALTER TABLE t1 ADD PRIMARY KEY(id);`
3. 删除主键 `ALTER TABLE t1 DROP PRIMARY KEY;`
4. 自动增长
```mysql
CREATE TABLE t1(
id INT PRIMARY KEY AUTO_INCREMENT,
NAME VARCHAR(10)
); -
修改让自动增长
ALTER TABLE t1 CHANGE id id INT AUTO_INCREMENT;
-
修改不让自动增长
ALTER TABLE t1 CHANGE id id INT;
-
-
非空约束
-
CREATE TABLE t1( id INT PRIMARY KEY, NAME VARCHAR(10) NOT NULL );
1
2
3
4
5
6
7
8
9
10
2. 修改 仿照修改自动增长
3. 唯一键约束
1. ```
CREATE TABLE t1(
id INT PRIMARY KEY,
NAME VARCHAR(10) UNIQUE
); -
删除唯一键
ALTER TABLE t1 DROP INDEX NAME;
-
修改表,创建唯一键 索引
ALTER TABLE t1 ADD CONSTRAINT uq_name UNIQUE(NAME);
-
-
外键约束
-
-- 命名 fk_子表名_列名 -- fk_主表名_子表名_列名 CREATE TABLE dep( did INT PRIMARY KEY, dname VARCHAR(10) ); CREATE TABLE emp( eid INT PRIMARY KEY, ename VARCHAR(10), did INT, CONSTRAINT fk_dep_emp_did FOREIGN KEY(did) REFERENCES dep(did) );
-
删除外键
ALTER TABLE emp DROP FOREIGN KEY fk_dep_emp_did;
-
添加外键
ALTER TABLE emp ADD CONSTRAINT fk_dep_emp_did FOREIGN KEY(did) REFERENCES dep(did);
-