#非空约束
alter table 表名 modify names varchar(20) not null
#唯一约束
alter table mins add unique(id)
#主键约束 一个表只存在一个主键约束 并且不能为空
alter table mins add primary key(id);
dorp
#自增约束(int)
alter table mins change id ids int auto-increment
;
#默认约束
alter table mins alter sex set default ‘男’
字段可以有多个约束 主键只能有一个
完整结构
create table text(
->id int primary key auto_increment,
->names varchar(20) not null,
-> phone char (1) unique key
-> ) auto_increment =1000 ,charset = utf8;
##外界约束
#创建学院表
create table department(
d_id int primary key auto_increment,
d_name varchar(20) not null
);
#一对多
#创建学生表
create table students(
s_id int primary key auto_increment,
s_name varchar(20) not null,
#外键字段,类型必须和主键字段保持一致
dept_id int,
foreign key(dept_id)references department (d_id) on delete set null
);
#一对一
#学生详情表
create table stu_detail(
sd_id int primary key auto_increment,
s_age int,
s_sex char(1) default '男‘,
stu_id int unique key,
foreign key(stu_id) references students (s_id) on delete cascade
);
#创建课程表
create table course(
c_id int primary key auto_increment,
c_name varchar(20)
);
#创建中间表
create table stu_course(
-> s_id int,
-> c _id int,
-> primary key (s_id,c_id),#创建联合主键
->foreign key(s_id ) references students (s_id), #学生id 对应中间表学生id
-> foreign key (c_id) references course (c_id) #课程id 对应课程表学生id
);
##数据库三范式
#第一范式
要求每个列表的原子性
#第二范式
一张表只能显示一类型
#第二范式
消除非主属性码的传递函数依靠
##四要素
原子性(全完成或全不完成)
一致性(在执行顺序时必须按顺序进行)
隔离性(事务进行过程中不能受到其他事务影响)
持久性(对于提交的数据不会丢失)
begin 开启事务
rollback 回滚
commit 提交