c语言sscanf函数的用法是什么
405
2022-11-29
sql 练习系列:修改表结构
以下练习均在mysql中实现:
使用SQL语句定义数据表。
要求使用命令定义如下3个表:S, C,SC
表1 学生信息表(S)
字段名称 | 类型及长度 | 说明 | 备注 |
Sno | CHAR(12) | 学号 | 主码 |
SID | CHAR(15) | 身份证号码 | |
Sname | CHAR(20) | 姓名 | 非空 |
Ssex | CHAR(2) | 性别 | 可为空 |
Sbirthday | DATETIME | 出生日期 | 可为空 |
Sdept | CHAR(40) | 所在院系 | 可为空 |
Saddress | CHAR(50) | 籍贯 | 可为空 |
sage | Int | 年龄 | |
…… |
表2课程信息表(C)
字段名称 | 类型及长度 | 说明 | 备注 |
Cno | CHAR(6) | 课程编号 | 主码 |
Cname | CHAR(30) | 课程名称 | 非空 |
Cpno | CHAR(6) | 先修课号 | 可为空 |
Ccredit | INT | 学分 | 可为空 |
…… | |||
…… |
表3 选课信息表(SC)
字段名称 | 类型及长度 | 说明 | 备注 |
Sno | CHAR(12) | 学号 | 主码 |
Cno | CHAR(6) | 课程编号 | 主码 |
Grade | INT | 成绩 | 可为空 |
注:(1) Sno外码,参照表S中的属性Sno
(2) Cno外码,参照表C中的属性Cno
use test;
create table S (sno varchar(12) primary key,sid varchar(15),sname varchar(20) not null, ssex varchar(2),sbirthday datetime,sdept varchar(40), saddress varchar(50),sage int);
create table C (cno varchar(6) primary key,cname varchar(30) not null,
cpno varchar(6),ccredit int);
create table SC (sno varchar(12),cno varchar(6),grade int, primary key(sno,cno),
foreign key (sno) references S(sno),foreign key (cno) references C(cno));
-- 两个属性sno,cno 作为主码,主码具有唯一性。
修改表结构
在S中增加新的字段,专业名称(Smajor),可为空
alter table s add column smajor varchar(20);
在S中删除专业字段
alter table s drop column smajor;
修改S中Sname字段长度为25
alter table s modify column sname varchar(25);
--sql server写法:alter table s alter column sname type varchar(25);
修改S中Sbirthday数据类型为date
alter table s modify column sbirthday date;
--sql server写法:alter table s alter column sbirthday type date;
给S中Sname 增加唯一性约束
alter table s add constraint uni_sname unique(sname);
删除S中Sname 增加的唯一性约束
alter table s drop key uni_sname;
--sqlserver: alter table student drop constraint unique_sname
给SC表中的grade增加约束范围为0~100
alter table sc add constraint gradec check(grade>=0 and grade <=100);
修改SC表中的grade字段名称为Sgrade
alter table sc change column grade sgrade int;
--sql server: alter table sc rename column grade to sgrade
修改C表中的Ccredit字段的约束条件,不允许为空
alter table c change column ccredit ccredit int not null;
--sql server: alter table c alter column ccredit set not null;
删除表:
DROP TABLE table_name; 或者是 DROP TABLE IF EXISTS table_name;
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~