用户自定义完整性

用户自定义完整性 定义. 用户自定义完整性是针对某一具体关系数据库的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。. 主要包括非空约束、唯一约束、检查约束、主键约束、外键约束。
-- 用户自定义完整性
-- unique
-- 
-- 列级

create table student
( 

  sno char(6) primary key,

  sname varchar(8) unique,

  ssex char(2),

  sbirth date,

  sdept varchar(20)

 );


insert into student(sno,sname,ssex,sbirth,sdept)

values("091001","李志勇","男","2000-09-18","软件工程");

insert into student(sno,sname,ssex,sbirth,sdept)

values("091002","李志勇","男","2001-09-18","软件工程");

select * from student;
-- 注意这里是sname varchar(8) unique, unique + not null  = key PRIMARY
	


-- 表级(就是多个unique 联合, cname,ccredit不能都相同哦, 但是可以有一个不同,或者都不同)
create table course
( 

   cno char(3) primary key,

   cname varchar(20),

   cpno char(3),

   ccredit tinyint,

   constraint u_c_01 unique(cname,ccredit)

);

-- 		insert into course(cno,cname,cpno,ccredit)values("001",null,null,null);
--    insert into course(cno,cname,cpno,ccredit)values("002",null,null,null);
-- null与null之间互不相同


   insert into course(cno,cname,cpno,ccredit)values("001","大学计算机",null,2);

   insert into course(cno,cname,cpno,ccredit)values("002","大学计算机",null,4);
   insert into course(cno,cname,cpno,ccredit)values("003","大学计算机","001",4);
-- 	 上面这两条语句, 只有一个能成功,
	 
	 
	 
-- 	 drop table course;
		select * from course;
   

-- 删除unique,必须有名称才可以删除吧, 所以可以在表中定义constraint u_c_01 unique(cname,ccredit),然后进行删除,
-- 删除时, 是drop index u_c_01(名称)

   alter table course drop index u_c_01;


-- 其它
-- 
-- null (not null)
-- 
-- default
-- 
-- zerofill
-- 
-- unsigned
-- 
-- auto_increment
-- 
-- (1) 定义表的创建
drop table student;

create table student
( 

  id int(5) zerofill unsigned auto_increment primary key,

  sno char(6) not null,

  sname varchar(8) unique,

  ssex char(2) default "男",

  sbirth date default "2020-09-18",

  sdept varchar(20) default "软件工程"

  );

  

  insert into student(sno,sname)values("091001","郑航飞");

  insert into student(sno,sname)values("091002","李志勇");
-- 	这里的id是递增的
	

  select * from student;
-- (2)修改表的时候用modify(小修改)

   alter table student modify ssex char(4) not null;
-- 	 修改后表的属性已经变了

insert into student(sno,sname,ssex)values("091003","肖娜","女");

select * from student;



-- (3)修改表的时候用change(大修改)

alter table student change sbirth sage date default"2021-10-11";

insert into student(sno,sname,ssex)values("091004","谢菲菲","女");
	
select * from student;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

海波东

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值