SQL--DDL(创建和修改数据库表结构的语言)

SQL–DDL

    数据(结构)定义语言DDL(Data Definition Language),是用于创建和修改数据库表结构的语言。 常用的语句:create ,alter,drop,rename

1.数据库表

    数据库基本存储单位(table)
表的最简单形式是由行和列组成,分别都包含着数据 每个表都有一个表头和表体 表头定义表名和列名 表中的行被看作是文件中的记录 表中的列被看作是这些记录的字段
    记录—— 一行信息
一行数据是指一条完整的记录
    字段—— 存储哪个信息
表里的一列,用于保存每条记录的特定信息 数据表的一列包含了特定字段的全部信息

2.设计数据库表

设计表,一个表中存储一列信息、

在创建前,需要不确定表的下列特征:

    学生信息表(学生基本信息) 表中字段 数据类型,长度 约束(添加数据限制)

3.设计表–数据类型

    char(n) 长度为n个字符 定长 4 即使存储了1个字符也占4个长度 varchar(n) 最大长度为n 可变 10 实际存储了4个字符,长度就是4 date 年月日 日期 datetime 年月日 时分秒 时间
int float(5,2) 3位整数,2位小数 总长是5位 double(5,2) blob 大文本 存储图片,新闻 (目前了解)

4.表中的约束

    主键约束 PRIMARY KEY 不能为空,不能重复, 一个表中只能有一个主键约束 不能为空约束 NOT NULL 一个表中可以有多个 唯一约束 UNION 一个表中可以有多个 检查约束 设置条件 例如age>=18 外键约束 多表关联时使用 主键自动增长 AUTO_INCREMENT 默认值 DEFAULT default_value 字段注释 comment ‘注释’

5.创建表语法

-- 先创建一个基本的表 不涉及约束
-- 学生基本信息表  学号,姓名,性别,生日,身高,电话,登记时间
-- 用户表,角色,...  sys_user sys_role  hr_  cw
CREATE TABLE t_student(
             num INT,
             NAME VARCHAR(4),
             sex CHAR(1),
             birthday DATE,
             height FLOAT(4,1),
             phone CHAR(11),
             register_time  DATETIME   
)

6.修改表结构

-- 复制表      例如对某张表进行操作时,备份数据
CREATE TABLE t_teachers LIKE t_student ;

-- 修改表名      旧表名        新表名
RENAME TABLE t_teachers TO t_School ;

-- 删除表
DROP TABLE t_School ;


-- 添加主键约束
ALTER TABLE t_student ADD PRIMARY KEY(num);
-- 删除主键约束
ALTER TABLE t_student DROP PRIMARY KEY;


-- 设置主键自动增长
ALTER TABLE t_student MODIFY num INT AUTO_INCREMENT;
-- 删除主键自动增长
ALTER TABLE t_student MODIFY num INT ;


-- 设置列不能为空
ALTER TABLE t_student MODIFY NAME VARCHAR(4) NOT NULL;
-- 设置列可以为空
ALTER TABLE t_student MODIFY birthday DATE NULL;


-- 添加唯一约束
ALTER TABLE t_student ADD CONSTRAINT abc UNIQUE(NAME);
ALTER TABLE t_student DROP INDEX abc; -- 删除唯一约束

-- 添加检查约束
ALTER TABLE t_student ADD CONSTRAINT check_height CHECK (height>100);
ALTER TABLE t_student DROP CHECK check_height; -- 删除检查约束


-- 添加列
ALTER TABLE t_student ADD phone CHAR;

-- 添加到第一列
ALTER TABLE t_student ADD abc CHAR FIRST;

-- 添加到某一列之后
ALTER TABLE t_student ADD mobile CHAR(13) AFTER sex;

-- 删除列
ALTER TABLE t_student DROP mobile;

-- 修改列名
ALTER TABLE t_student CHANGE phone mobile CHAR(13);

-- 修改列的数据类型
ALTER TABLE t_student MODIFY phone CHAR(13);
经验分享 程序员 微信小程序 职场和发展