数据定义语言:
库和表的管理:
- 库的管理
- 创建
- 删除
- 修改
- 表的管理
- 创建
- 删除
- 修改
创建:create
修改:alter
删除:drop
一、 库的管理:
# 库的管理
# 1. 库的创建
# 语法: create database [if not exists] 库名
# 例:创建库books
create database if not exists books;
# 2. 库的修改
# 更改库的字符集
alter database books character set 要更改成的字符集;
# 3. 库的删除
drop database if exists books;
二、 表的管理:
# 表的管理
# 1. 表的创建
/*
语法:
create table 表名(
列名 列的类型[(长度) 约束]
列名 列的类型[(长度) 约束]
列名 列的类型[(长度) 约束]
...
列名 列的类型[(长度) 约束]
);
*/
# 例:创建表book
create table book(
id int,# 编号
bName varchar(20),# 书名
price double,# 价格
authorId int, # 作者
publishdate datetime # 出版日期
);
create table author(
id int,
au_name varchar(20),
nation varchar(10)
);
# 2. 表的修改
# alter table 表名 add|drop|modify|change column 列名 [列类型 约束];
# 修改列名
alter table book change [column] publishdate pudDate datetime;
# 修改列的类型或约束
alter table book modify column pubdate timestamp;
# 添加列
alter table author add column annual double;
# 删除列
alter table author drop column annual;
# 修改表名
alter table author rename to book_author;
# 3. 表的删除
drop table book_author;
# 通用的写法:
drop database if exists 旧库名;
create database 新库名;
drop table if exists 旧表名;
create table 表名();
# 4. 表的复制
# 1. 复制表的结构
create table copy like author;
# 2. 复制表的结构+数据
create table copy2
select * from author;
# 3. 只复制部分数据
create table copy3
select id , au_name
from author
where nathon=‘中国‘;
# 4. 仅仅复制某些字段
create table copy4
select id,au_name
from author
where 0;
常见约束:
含义:一种限制,用于限制表中的数据,为了保证表中数据的准确和可靠性
分类:六大约束
-
not null : 非空,保证该字段的值不能为空
比如:姓名,学号等
-
default : 默认,用于保证该字段有默认值
比如: 性别
-
primary key : 主键,用于保证该字段的值具有唯一性,并且非空
比如:学号,员工编号等
-
unique ;唯一,用于保证该字段的值具有唯一性,可以为空
比如:座位号
-
check : 检查约束 [ mysql中不支持 ]
比如:年龄、性别
-
foreign key : 外键,用于限制两个表的关系,用于保证该字段的值必须来自于主表的关联列的值,再从表添加外键约束,用于引用主表中某列的值
比如:学生表的专业编号,员工表的部门编号,员工标的工种编号
添加约束的时机:
- 创建表时
- 修改表时
约束的添加分类
-
列级约束
六大约束语法上都支持,但外键约束没有效果
-
表级约束
除了非空、默认、其他的都支持
# 一、创建表时添加约束
# 1. 添加列级约束
use students
create table stuinfo(
id int primary key, # 主键
stuName varchar(20) not null,#非空
gender char(1) check(gender = ‘男‘ or gender = ‘女‘),# 检查
seat int unique , # 唯一
age int default 18 ,# 默认约束
majorId int foreign key references major(id) # 外键
);
create table major(
id int primary key,
majorName varchar(20)
);