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);