1.掌握SQL Server Management Studio中以SQL 命令方式和以向导方式操作表和数据的操作;
2.掌握SQL 的数据定义命令,包括:定义表、删除表和修改表;
3.掌握SQL 的数据更新命令,包括:插入数据、修改数据和删除数据。
1.实验室名称:软件实验室
2.主要仪器设备:PC机、SQL Server2008环境
(1)创建表Student 、Course 和SC ,并为每个表定义主键约束;
Student(Sno,Sname ,Ssex ,Sage ,Sdept);
Course (Cno,Cname ,Cpno ,Ccredit) ;
SC (Sno ,Cno ,Grade )。
要求学号(Sno)长度5位,每位都由0-9的数字组成,性别(Ssex)只能取男或者女,课程编号(Cno)由2位数字组成,学分(Ccredit)取值范围为1-10,成绩(Grade)取值范围为0-100。
(2)每个表中插入至少5行模拟数据
(3)修改数据
将表Student 中所有学生的年龄加2岁。 将表SC 中所有学生的成绩降低10%。
(4)删除数据
将表Student 中第二个元组的学生信息删除。
(1)创建表图书、读者和借阅,并为每个表定义主键约束; 图书(书号,类型,出版社,作者,书名,定价,数量) 读者 (读者编号,姓名,单位,性别,电话) 借阅(书号,读者编号,借阅日期);
(2)定义借阅表与图书表之间以及借阅表与读者表之间的键约束;
(3)分别向每个表中插入至少5行模拟数据;
(4)修改借阅表,增加“归还日期”字段;
属性【实体具有的特性】
- Student 、Course 和SC的约束关系为 Student(Sno,Sname ,Ssex ,Sage ,Sdept) Course(Cno,Cname ,Cpno ,Ccredit) SC(Sno ,Cno ,Grade)
2.图书 图书(书号,类型,出版社,作者,书名,定价,数量) 读者 (读者编号,姓名,单位,性别,电话) 借阅(书号,读者编号,借阅日期)







(1)



(2)















//创建表:
use MyDb_20221104122;
/*知识点
1.unique唯一约束 保证在一个字段或者一组字段里的数据与表中其它行的数据相比是唯一的
2.primary key主键约束
*/
/*创建表*/
--Sno学号,Sname姓名,Ssex性别,Sage年龄,Sdept所在院系
create table Student( --学生
Sno char(5) primary key check(len(Sno)=5 and Sno>00000 and Sno<99999), --要求学号(Sno)长度5位,每位都由0-9的数字组成
Sname char(20) not null,
Ssex char(2) check (Ssex='男' or Ssex='女'), --性别(Ssex)只能取男或者女
Sage smallint, --
Sdept char(20)
);
--Cno课程号,Cname课程名,Cpno先行课,Ccredit学分
create table Course(
Cno char(5) primary key check(len(Cno)=2), --课程编号(Cno)由2位数字组成
Cname char(20),
Cpno char(2),
Ccredit smallint check(Ccredit between 1 and 10), --学分(Ccredit)取值范围为1-10
);
--Sno学号,Cno课程号,Grade成绩
create table SC(
Sno char(5),
Cno char(5),
Grade smallint check(Grade between 0 and 100), --成绩(Grade)取值范围为0-100
primary key(Sno,Cno)
);
插入及修改数据:
use MyDb_20221104122;
/*
插入数据
*/
insert into Student values('00001','张三','男','20','计算机系');
insert into Student values('00002','李四','男','22','计算机系');
insert into Student values('00003','高雅雪','女','20','计算机系');
insert into Student values('00004','燕燕','女','23','计算机系');
insert into Student values('00005','李雯','女','22','计算机系');
select * from Student;
insert into Course values('01','数据库','5','4');
insert into Course values('02','计算机网络','','4');
insert into Course values('03','java','5','4');
insert into Course values('04','数据结构','5','4');
insert into Course values('05','数据库','5','4');
select * from Course;
insert into SC values('00001','01',98);
insert into SC values('00002','01',99);
insert into SC values('00001','02',100);
insert into SC values('00001','03',80);
insert into SC values('00001','04',89);
select * from SC;
/*
修改数据
*/
--将表Student 中所有学生的年龄加2岁
select * from Student;
update Student set Sage=Sage+2;
select * from Student;
--将表SC 中所有学生的成绩降低10%
select * from SC;
update SC set Grade=Grade-Grade*0.1;
select * from SC;
/*
删除数据
*/
--将表Student 中第二个元组的学生信息删除
select * from Student;
delete from Student Where Sno='00002';
select * from Student;
use MyDb_20221104122;
--图书(书号,类型,出版社,作者,书名,定价,数量)
create table 图书(
书号 char(30) primary key,
类型 char(20) not null,
出版社 char(20) ,
作者 char(20),
书名 char(20),
定价 int,
数量 int
);
--读者 (读者编号,姓名,单位,性别,电话)
create table 读者(
读者编号 char(20) primary key,
姓名 char(20) not null,
单位 char(20) ,
性别 char(2) check (性别='男' or 性别='女'),
电话 char(12),
);
--借阅(书号,读者编号,借阅日期)
create table 借阅(
书号 char(30) ,
读者编号 char(20) not null ,
借阅日期 date,
foreign key(书号) references 图书 (书号),
foreign key(读者编号) references 读者 (读者编号),
primary key(书号,读者编号)
);
use MyDb_20221104122;
/*
插入数据
*/
--图书(书号,类型,出版社,作者,书名,定价,数量)
insert into 图书 values('001','计算机类','机械工业出版社','王民','数据结构',58,200);
insert into 图书 values('002','计算机类','机械工业出版社','王民','高等数学',99,20);
insert into 图书 values('003','数学类','中国人民大学出版社','张锦芯','线性代数',40,200);
insert into 图书 values('004','历史','新星出版社','王民','数据结构',54,31);
insert into 图书 values('005','文学','中国社会文献出版社','赵明','山茶文具店',80,99);
select * from 图书;
--读者 (读者编号,姓名,单位,性别,电话)
insert into 读者 values('001','李雯','吕梁学院','女','18335854674');
insert into 读者 values('002','张三','应用科技学院','男','18535854644');
insert into 读者 values('003','李四','山西职业技术学院','男','18635854644');
insert into 读者 values('004','王五','山西职业技术学院','男','18635854644');
insert into 读者 values('005','燕燕','吕梁学院','女','18335854647');
select * from 读者;
--借阅(书号,读者编号,借阅日期)
insert into 借阅 values('001','001','2022-11-7');
insert into 借阅 values('001','002','2022-11-7');
insert into 借阅 values('005','002','2022-11-7');
insert into 借阅 values('003','003','2022-11-7');
insert into 借阅 values('003','004','2022-11-7');
select * from 借阅;
/*
修改数据
*/
--修改借阅表,增加“归还日期”字段
alter table 借阅 add 归还日期 date;
select * from 借阅;