SQL 之 DDL(MySQL)

发布时间 2023-06-14 22:02:30作者: 特雷恩

创建数据库

Create {database|schema} [if not exists] 数据库名称;

CREATE DATABASE if not exists SALARY;

删除数据库

drop database [if exists] 数据库名称;

DROP DATABASE if exists SALARY;

创建表

create table if not exists 表名
(
列名 数据类型,
);

CREATE TABLE DEPT-- 创建部门表
(
	DEPTNO CHAR(2) PRIMARY KEY,-- 部门编号,且为主键
	DNAME VARCHAR(14),-- 部门名称
	LOC VARCHAR(15)-- 地点
);
CREATE TABLE IF NOT EXISTS SCOTT
(
	empno CHAR(4) PRIMARY KEY, -- 员工编号,且为主键
	ename VARCHAR(10),-- 员工姓名
	job VARCHAR(20),-- 职位
	mgr CHAR(4),-- 经理编号
	hiredate date,-- 入职日期
	sal DECIMAL(7,2),-- 薪金
	comm DECIMAL(7,2),-- 佣金
	deptno char(2),-- 部门编号
	CONSTRAINT SCOTT_DEPTNO-- SCOTT_DEPTNO为外键约束名称
	FOREIGN KEY (deptno) REFERENCES DEPT(DEPTNO)
	-- 引用表DEPT的主键DEPTNO,设置列deptno为外键
);

删除表

Drop table 表名;

DROP TABLE SCOTT;

修改表

增加列

Alter table 表名 ADD 列名 数据类型;

ALTER TABLE SCOTT ADD AGE INT;

删除列

Alter table 表名 drop [column] 列名;

ALTER TABLE SCOTT DROP COLUMN AGE;

修改列的类型、参数

Alter table 表名 modify 列名 新类型 新参数;

ALTER TABLE SCOTT MODIFY SAL DECIMAL(8,2);

修改列的名称

Alter table 表名 change 旧列名 新列名 新类型 新属性;
ALTER TABLE SCOTT CHANGE SAL SALA DECIMAL(7,2);

增加表的主键

Alter table 表名 ADD primary key(列名);

作为主键的列数据不能重复。

ALTER TABLE SCOTT ADD primary key(empno);
image

增加表的外键

Alter table 主表 add foreign key(列名) references 外表(列名);

引用的外表列名必须是外表的主键

ALTER TABLE SCOTT 
ADD FOREIGN KEY(DEPTNO) REFERENCES DEPT(DEPTNO);

image

删除表的外键

第一步:获取表的外键约束
Show create table 表名;
SHOW CREATE TABLE SCOTT;
image
第二步:删除表的外键约束
Alter table 主表名 drop foreign key 外键约束名;
ALTER TABLE SCOTT DROP FOREIGN KEY scott_ibfk_1;
第三步:删除表的键
Alter table 主表名 drop key 外键约束名;
ALTER TABLE SCOTT DROP KEY deptno;
image

修改表的名称

Rename table 旧表名 to 新表名;
Rename table scott to emp;

查询表的结构

Show columns from 表名;
show columns from DEPT;
image