实验二-----数据库

一、实验目的

1.掌握SQL Server Management Studio中以SQL 命令方式和以向导方式操作表和数据的操作;
2.掌握SQL 的数据定义命令,包括:定义表、删除表和修改表;
3.掌握SQL 的数据更新命令,包括:插入数据、修改数据和删除数据。

二、实验环境

1.实验室名称:软件实验室
2.主要仪器设备:PC机、SQL Server2008环境

三、实验内容

1.在SQL Server Management Studio中建立名为MyDb-学号的数据库,使用SQL 命令方式实现以下要求:

(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 中第二个元组的学生信息删除。

2.SQL Server Management Studio中以向导方式实现以下要求:

(1)创建表图书、读者和借阅,并为每个表定义主键约束; 图书(书号,类型,出版社,作者,书名,定价,数量) 读者 (读者编号,姓名,单位,性别,电话) 借阅(书号,读者编号,借阅日期);
(2)定义借阅表与图书表之间以及借阅表与读者表之间的键约束;
(3)分别向每个表中插入至少5行模拟数据;
(4)修改借阅表,增加“归还日期”字段;

四、实验调试分析

属性【实体具有的特性】

  1. Student 、Course 和SC的约束关系为 Student(Sno,Sname ,Ssex ,Sage ,Sdept) Course(Cno,Cname ,Cpno ,Ccredit) SC(Sno ,Cno ,Grade)

2.图书 图书(书号,类型,出版社,作者,书名,定价,数量) 读者 (读者编号,姓名,单位,性别,电话) 借阅(书号,读者编号,借阅日期)

五、实验结果

1. Student 、Course 和SC

创建表

在这里插入图片描述

插入数据

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

修改数据

(1)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(2)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

删除数据

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

2.图书、读者和借阅

创建表

在这里插入图片描述

插入数据

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

修改数据

在这里插入图片描述

在这里插入图片描述

六、实验源代码

1 .Student 、Course 和SC

//创建表:

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;


2. 图书、读者和借阅

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 借阅;
  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

辣椒酱.

感谢支持,我会继续努力!

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

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

打赏作者

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

抵扣说明:

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

余额充值