把最近老师让做的实验汇总成一个博客给展现出来。
1.掌握SQL Server Management Studio中以SQL 命令方式和以向导方式操作表和数据的操作;
2.掌握SQL 的数据定义命令,包括:定义表、删除表和修改表以及建立索引和删除索引;
3.掌握SQL 的数据更新命令,包括:插入数据、修改数据和删除数据。
1.在SQL Server Management Studio中建立数据库“学生-课程”数据库MyDb。
这个步骤在我的第一个博客中已经说过了,如有需要大家可以找找看。
2.在SQL Server Management Studio中以SQL 命令方式实现以下要求:
1)创建表Student 、Course 和SC ,并为每个表定义主键约束;
Student(Sno,Sname ,Ssex,Sage ,Sdept)
Course (Cno,Cname ,Cpno ,Ccredit)
SC (Sno ,Cno ,Grade )
create table student
(sno char (10)primary key, // primary key 表示学号惟一的
sname char(20)unique, //unique 表示姓名是惟一的,可加可不加
ssex char(2)check (ssex in('男','女')), //此处的 check 表明此处只可填男或女
sage smallint, //smallint 表示 从-2^15 到 2^15-1之间的数字
sdept char(20);
Create table course
(cno char(4)primary key,
Cname char(40)unique,
Cpno char(4),
Ccredit smallint,
Foreign key(cpno)references course(cno)) //为了确定cpno 和 cno 之间的联系
)
Create table sc
(sno char(10),
Cno char(4),
Grade smallint,
Primary key(sno,cno),
Foreign key(sno)references student(sno), //表示sno 作为可以联系几个表中的主键
Foreign key(cno)references course(cno), //表示cno 作为可以联系几个表中的主键
)
insert
into student(sno,sname,ssex,sage,sdept)
values('95001','李勇','男',30,'CS');
insert
into student(sno,sname,ssex,sage,sdept)
values('95002','刘晨','女',19,'IS');
insert
into student(sno,sname,ssex,sage,sdept)
values('95003','王敏','女',18,'MA');
insert
into student(sno,sname,ssex,sage,sdept)
values('95004','张立','男',19,'IS');
course表格需要我们对应着cno 和 cpno 之间的关系进行输入。先插入null,再进行其他插入
insert
into course(cno,cname,cpno,ccredit)
values('2','数学',null,2);
insert
into course(cno,cname,cpno,ccredit)
values(6,'数据处理',null,2);
insert
into course(cno,cname,cpno,ccredit)
values(7,'C语言',6,4);
insert
into course(cno,cname,cpno,ccredit)
values(4,'操作系统',6,3);
insert
into course(cno,cname,cpno,ccredit)
values(5,'数据结构',7,4);
insert
into course(cno,cname,cpno,ccredit)
values(1,'数据库',5,4);
insert
into course(cno,cname,cpno,ccredit)
values('3','信息系统',1,4);
insert
into SC(sno,cno,grade)
values(95001,1,32);
insert
into SC(sno,cno,grade)
values(95001,2,85);
insert
into SC(sno,cno,grade)
values(95001,3,88);
insert
into SC(sno,cno,grade)
values(95002,2,90);
insert
into SC(sno,cno,grade)
values(95002,3,80);
3)修改数据
将表Student 中所有学生的年龄加2岁。 将表SC 中所有学生的成绩降低10%。
此处运用了修改数据的SQL语句
具体格式为
update 表的名字
set 计算过程
update student
set sage=sage+2;
update sc
set grade=grade-(grade*0.1);
4)删除数据
将表Student 中Sno 为95004的学生信息删除。
格式
delete
from 表的名称
where 具体哪一项
delete
from student
where sno='95004';
3.SQL Server Management Studio中建立数据库“图书读者”数据库。
4.SQL Server Management Studio中以向导方式实现以下要求:
1)创建表图书、读者和借阅,并为每个表定义主键约束;
图书(书号,类别,出版社,作者,书名,定价,出版数量)
读者 (读者编号,姓名,单位,性别,电话)
借阅(书号,读者编号,借阅日期);
2)定义借阅表与图书表之间以及借阅表与读者表之间的键约束;
create table book
(bno char(10)primary key,
bgenre char(10),
bpress char(20),
bpeo char(10),
bname char(20),
bmoney smallint,
bquantity smallint,
)
create table reader
(reno char(20)primary key,
rename char(10),
rework char(20),
resex char(2)check(resex in('男','女')),
renumber char(50),
)
create table lend
(bno char(10),
reno char(20),
ltime date, //定义日期函数 date
primary key(bno,reno),
Foreign key(bno)references book(bno),
Foreign key(reno)references reader(reno),
)
3)分别向每个表中插入至少5行模拟数据;
insert
into book(bno,bgenre,bpress,bpeo,bname,bmoney,bquantity)
values ('1','个人笔记','宁夏出版社','渊儿','渊自传',999,100)
insert
into book(bno,bgenre,bpress,bpeo,bname,bmoney,bquantity)
values ('2','科学技术','清华出版社','小明','C语言',10,20)
insert
into book(bno,bgenre,bpress,bpeo,bname,bmoney,bquantity)
values ('3','个人笔记','百川出版社','百川','阿川正传',99,50)
insert
into book(bno,bgenre,bpress,bpeo,bname,bmoney,bquantity)
values ('4','文学艺术','海峰出版社','阿峰','数据库编程',15,30)
insert
into book(bno,bgenre,bpress,bpeo,bname,bmoney,bquantity)
values ('5','时事政治','阿渊出版社','璇儿','军事概论',25,30)
insert
into reader(reno,rename,rework,resex,renumber)
values('201801','阿渊','学生','男','1536666666')
insert
into reader(reno,rename,rework,resex,renumber)
values('201802','阿璇','学生','女','1386666666')
insert
into reader(reno,rename,rework,resex,renumber)
values('201803','阿峰','老师','女','1956664444')
insert
into reader(reno,rename,rework,resex,renumber)
values('201804','阿川','校长','男','1539999999')
insert
into reader(reno,rename,rework,resex,renumber)
values('201805','阿夏','学生','男','1452367891')
insert
into lend(bno,reno,ltime)
values('5','201801','2019-11-11')
insert
into lend(bno,reno,ltime)
values('1','201802','2019-10-30')
insert
into lend(bno,reno,ltime)
values('2','201804','2019-09-10')
insert
into lend(bno,reno,ltime)
values('4','201803','2019-05-12')
insert
into lend(bno,reno,ltime)
values('3','201802','2019-11-11')
以上数据纯属自创,大家可尽情发挥自己的想象
4)修改借阅表,增加“归还日期”字段;
alter table lend add breturn date; //alter table 表的名字 add 加入的列 date
在完成要求4的过程中,分别向图书表、读者表和借阅表中插入数据时,可以随意向任何一张表中添加数据吗?请分析并解释其中的原因。
在完成要求4的过程中,分别向图书表、读者表和借阅表中插入数据时,可以随意向任何一张表中添加数据吗?请分析并解释其中的原因。
不可以随意加入,每个表都会有主键,在插入数据时,系统会进行判断是否重复,有重复的则不能够添加。
以上都是个人愚见,如有觉得不妥,希望大家私信我或评论。谢谢大家!