前面1~10已经学习过DML语言,包括数据的增删改查。
DDL语言
一、概念
针对整个表或数据库
二、种类
1、创建表
(1)注意:
- 属性:如空值(不写默认允许空值)、主键、默认值
- 空值和默认值是两回事。空值是一个特殊的数!
- 属性可以不写,但字段名和数据类型必须设置
- 默认值必须是常数,不能是函数
(2)Navicat代码
# 创建新表
CREATE TABLE pet2
(
name VARCHAR(255) NOT NULL,
owner VARCHAR(255) DEFAULT 'police',
species VARCHAR(255),
sex CHAR(1),
birth DATE,
death DATE
);
# 给表中插入数据
#插入所有字段(row 1)
INSERT INTO pet2 VALUES('Bowser', 'Diane', 'dog', 'm', '1979-08-31', '1995-07-29');
# 注意下面三种写法
# 写了owner,后面插入引号里不写字。插入结果是白板(row 2)
INSERT INTO pet2(name, owner,species,sex) VALUES('Bowser2', '', 'dog', 'm');
# 不写owner,插入的是默认值(row 3)
INSERT INTO pet2(name, species,sex) VALUES('Bowser2','dog', 'm');
# 写了owner,后面写NUll。插入结果是NULL(row 4)
INSERT INTO pet2(name, owner,species,sex) VALUES('Bowser2', NULL, 'dog', 'm');
(3)MySQL代码
2、复制表
注意:
- 目标表可以是SELECT语句选出来的虚拟表
CREATE TABLE pet3
AS
SELECT * FROM pet2 AS p2;
CREATE TABLE pet3
AS
SELECT p2.name, p2.owner FROM pet2 AS p2;
# 表中数值为空(1=2为伪命题)
CREATE TABLE pet3
AS
SELECT p2.name, p2.owner FROM pet2 AS p2 WHERE 1 = 2;
3、更新表
# 插入新字段
ALTER TABLE pet3 ADD sex CHAR(1);
ALTER TABLE pet3 ADD birth DATE NOT NULL;
# 删除字段。删除多个字段要多个DROP
ALTER TABLE pet3 DROP birth, DROP sex;
ALTER TABLE pet3 DROP COLUMN birth;
# 修改字段属性
ALTER TABLE pet3 MODIFY COLUMN sex VARCHAR(255);
ALTER TABLE pet3 MODIFY COLUMN sex CHAR(1) NOT NULL;
4、删除表
DROP TABLE pet2;
5、重命名表
RENAME TABLE pet3 TO pet4;