Mysql数据库学习之数据定义语言
数据定义语言DDL
上文中我们学习了如何创建数据库,本文将简述创建表和修改表及常见约束的设置。
创建表
语法:
create table 表名(<列名1><列的数据类型>,<列名2><列2的数据类型><列名n><列n的数据类型>)
如:在公司数据库中,创建员工信息表,id,姓名,性别,年龄,家庭住址,代码如下:
use company;
create table t_employer (id int primary key,emp_name varchar(20),gender int,age int,address varchar(50));
运行结果如下:
我们可以看到在company数据库中有一个表t_employer;
我们可以通过 desc 表名查看表的信息
修改表:
在表创建完成后,有时候需要新增一行。我们在MYSQL中使用Alter来修改表的结构。
插入列:
语法:
Alter table 表名 add 列名 列的数据类型;
例如在员工表中添加一个电话号码列:
alter table t_employer add tel varchar(11);
更改列:
语法:
Alter table 表名 change 原列名 新列名 数据类型;
例如:我们想要性别是’男’,'女’显示的
alter table t_employer change gender gender char(2);
删除列:
语法:
alter table 表名 drop 列名
如:我们并不需要age列,则:
alter table t_employer drop age;
更改表名:
语法:
alter table 表名 rename 新表名
如:我想把t_employer改为t_employee
alter table t_employer rename t_employee;
删除表:
语法:
drop table 表名
当我们不要某个表时,删除表
如:删除员工表
drop table t_employee;
约束
为了保证数据的完整性,MYSQL中采用约束来对列的数据进行规范,主要有主键约束、唯一约束、非空约束、默认约束、外键约束、引用约束。
主键约束:
主键是为了唯一标示一条数据,主键类的值唯一且不为空。建议使用id作为主键,主键不具有业务意义。
设置主键约束:
1、在创建表时,在要设置主键的列的数据类型后+primary key
如:
create table t_custorm (id int primary key,cus_name varchar(20),tel int);
2、在创建表时,在列的末尾写primary key(列名)
create table t_custorm (id int ,cus_name varchar(20),tel int,primary key(id));
3.对于创建了表,但未设置主键的表,可用alter添加主键约束
alter table t_custorm add primary key(id);
唯一约束
唯一约束,表示表内这个列的值唯一,不可重复。
可在创建表时添加唯一约束,使用unique关键字
create table t_custorm (id int ,cus_name varchar(20),tel int unique,primary key(id));
可在表创建完成之后添加:
alter table 表名 add unique(列名)
alter table t_custorm add unique(tel);
客户表的电话号码唯一
非空约束
非空约束,限制字段的值不能为空。
使用not null关键字,在创建表时:
create table t_custorm (id int ,cus_name varchar(20) not null,tel int unique,primary key(id));
客户表的姓名不为空
表创建好之后添加:
alter table 表名 change 原列名 新列名 数据类型 not null;
alter table t_custorm change cus_name name varchar(20) not null;
删除非空约束:
alter table 表名 change 原列名 新列名 数据类型 ;
alter table t_custorm change cus_name name varchar(20) ;
默认约束
在某些时候,可以不设置值,但默认会添加,这时候使用default关键字即可
创建表时设置:
create table t_custorm (id int ,cus_name varchar(20) not null,gender int default 0,tel int unique,primary key(id));
表已创建完成设置:
alter table 表名 change 原列名 新列名 数据类型 default 默认值 ;
删除默认约束与非空约束一致:
设置性别默认为0
外键约束
生活中我们需要一个表中的字段引用另一个表的主键,这个时候需建立外键约束。
外键约束建立的条件时两个表中的字段类型一致。
1、创建表示建立外键:
foreign key(列名) references 主表名称(主键列名)
2、创建完成的表添加外键
alter table 表名 add foreign key(列名) references 主表名称(主键列名);
删除外键约束:
alter table 表名 drop foreign key 列名;