SQL——数据定义DDL
使⽤DDL语句可以创建、查询、修改、删除数据库、数据表。
目录
1 DDL数据库操作
1.1 创建数据库——create
create database <name>;
# 创建数据库,当指定名称的数据库不存在时执⾏创建
create database if not exists <name>;
# 创建数据库的同时指定数据库的编码格式(utf8 gbk)
create database <name> character set utf8;
1.2 查询数据库——show
# 显示当前mysql中的数据库列表
show databases;
# 显示指定名称的数据的创建的SQL指令
show create database <name>;
1.3 修改数据库——alter
# 修改数据库的字符集 # utf8 gbk
alter database <name> character set utf8;
1.4 删除数据库——drop
# 删除数据库
drop database <name>;
# 若数据库存在则删除数据库
drop database is exists <name>;
1.5 使用or切换数据库——use
use <name>;
2 DDL数据表操作
2.1 创建数据表——create
CREATE TABLE <表名>(
<列名> <数据类型> [列级完整性约束定义]
{, <列名> <数据类型> [列级完整性约束定义]… }
[, 表级完整性约束定义 ]
);
在列级完整性约束定义处可定义的约束
- NOT NULL:限制列取值非空(只能列级:从图形化方式就能看出)。
- DEFAULT:给定列的默认值(只能列级:从图形化方式就能看出)。
- UNIQUE:限制列取值不重。
- CHECK:限制列的取值范围。
- PRIMARY KEY:指定本列为主码。若在表级完整性约束处定义主码,PRIMARY KEY之后,必须将主码列用括号括起来,即: PRIMARY KEY(列1{[,列2 ] …})
- FOREIGN KEY:定义本列为引用其他表的外码。若在表级完整性约束处定义外码,则 “FOREIGN KEY (<外码列名>)”部分不能省。
- NOT NULL和DEFAULT只能是列级完整性约束(设置时在列后及列属性中); 其他约束均可在表级完整性约束处定义。
create table Student(
S_num char(7) primary key,
S_name char(10) not null,
S_sex char(2) ,
S_age tinyint ,
S_dept char(20)
);
2.2 查询表结构——desc
desc <name>
2.3 删除数据表——drop
drop table <name>;
# 当数据表存在时删除数据表
drop table if exists <name>;
2.4 修改数据表——alter
# 修改表名
alter table <name> rename to <new_name>;
# 数据表也是有字符集的,默认字符集和数据库⼀致
alter table <mame> character set utf8;
# 添加列(字段)
alter table <name> add <column_name> varchar(200);
# 修改列(字段)的列表和类型
alter table <name> change <old_Column_name> <new_Cloumn_ame> <type>;
# 只修改列(字段)类型
alter table <name> modify <column_name> <new_Type>;
# 删除列(字段)
alter table <name> drop <column_name>;