数据库实验报告一

第1关:创建数据库

实验要求:创建名为 TESTDB 的数据库。

相关SQL语句如下:

CREATE DATABASE TESTDB;

第2关:创建简单的数据表

实验要求:TESTDB 数据库中创建教师表(teacher),表结构如下:

字段名数据类型(长度)备注
tnoCHAR(4)工号
tnameVARCHAR(12)姓名
sexCHAR(3)性别
titleVARCHAR(15)职称
birthdayDATE出生日期

相关SQL语句如下:

CREATE TABLE teacher(
  tno CHAR(4),
  tname VARCHAR(12),
  sex CHAR(3),
  title VARCHAR(15),
  birthday DATE
);

第3关:创建带约束的数据表

实验要求:TESTDB 数据库中创建课程表(course)和班级表(class),表结构如下:

course 表结构:

字段名数据类型(长度)完整性约束说明备注
cnoCHAR(4)主键课程号
cnameVARCHAR(30)非空课程名
creditTINYINT约束取值范围为1~10学分
hoursINTEGER……学时
examinationCHAR(6)……考核方式

class表结构

字段名数据类型(长度)完整性约束说明备注
gnoCHAR(7)主键班级号
gnameVARCHAR(21)唯一键班级名
gradeCHAR(5)……年级
deptVARCHAR(12)……学院
gnumTINYINT约束取值范围为15~40班级人数

相关SQL语句如下:

CREATE TABLE course(
  cno CHAR(4)  PRIMARY KEY,
  cname VARCHAR(30)  NOT NULL,
  credit TINYINT  CHECK(credit>=1 AND credit<=10),
  hours INTEGER,
  examination CHAR(6)
);

CREATE TABLE class(
  gno CHAR(7) PRIMARY KEY,
  gname VARCHAR(21) UNIQUE,
  grade CHAR(5),
  dept VARCHAR(12),
  gnum TINYINT  CHECK(gnum>=15 AND gnum<=40)
);

第4关:给教师表添加约束

实验要求:

TESTDB 数据库中给教师表(teacher)添加主键约束,工号(tno)作为主键,给教师表姓名(tname)列添加唯一约束。

相关SQL语句如下:

ALTER TABLE teacher ADD PRIMARY KEY(tno);

ALTER TABLE teacher ADD UNIQUE(tname);

第5关:在TESTDB中创建教师授课表

实验要求:

TESTDB 数据库中创建教师授课表 teaching,及其对应的约束条件,表结构如下:

字段名数据类型(长度)完整性约束说明备注
cnoCHAR(4)外键,主键(cno+tno+gno)课程号
tnoCHAR(4)外键,主键(cno+tno+gno)工号
gnoCHAR(7)外键,主键(cno+tno+gno)班级号
termTINYINT……开课学期
classroomCHAR(7)……教室

相关SQL语句如下:

create table teaching(
cno char(4),
tno char(4),
gno char(7) ,
term tinyint,
classroom char(7),
PRIMARY KEY(cno,tno,gno),
foreign key(cno) references course(cno),
foreign key(tno) references teacher(tno),
foreign key(gno) references class(gno)
);

第6关:修改字段约束

实验要求:

TESTDB 数据库中修改教师表(teacher)姓名列(tname)的空/非空约束,改为非空,修改教师表性别列(sex)的默认值约束,默认值改为“男”。

相关SQL语句如下:

alter table teacher 
alter 
column tname set not null;

alter table teacher 
alter 
column sex set default '男';

第7关:删除约束

实验要求:

TESTDB 数据库中删除教师表(teacher)姓名列的唯一约束(约束名:TEACHER_TNAME_KEY)。

相关SQL语句如下:

alter table teacher drop constraint teacher_tname_key;

第8关:添加字段

实验要求:

TESTDB 数据库的教师表(teacher)中添加教师的电子邮箱(email,VARCHAR(6))和办公地点(address,VARCHAR(20))两列。

相关SQL语句如下:

alter table teacher add email VARCHAR(6);

alter table teacher add address VARCHAR(20);

第9关:修改字段

实验要求:

TESTDB 数据库中将教师表(teacher)中办公地点(address)的列名改为 office,电子邮箱(email)的数据类型改为VARCHAR(20)

相关SQL语句如下:

alter table teacher rename column address to office;

alter table teacher alter column email type VARCHAR(20);

第10关:删除字段

实验要求:

TESTDB 数据库中删除教师表(teacher)中的办公地点(office)和电子邮箱(email)两个列。

相关SQL语句如下:

alter table teacher drop column office;

alter table teacher drop column email;

第11关:添加单条记录

实验要求:

TESTDB 数据库中给班级表(class)添加一条记录,班级号为 '0051807',班级名为'电气18级7班',年级为 '18 级',学院为'电气',班级人数为 '38'

相关SQL语句如下:

INSERT INTO class VALUES ('0051807','电气18级7班','18级','电气','38');

第12关:添加部分数据

实验要求:

TESTDB 数据库中给教师表(teacher)中,添加一条教师记录,其中教师工号为'0250',姓名为'任远',性别为'男'

相关SQL语句如下:

INSERT INTO teacher(tno,tname,sex) VALUES ('0250','任远','男');

第13关:添加多条记录

实验要求:

TESTDB 数据库中分别给教师表(teacher),班级表(class),课程表(course),教师授课表(teaching)中添加多条记录。

teacher 表所需数据如下:

工号姓名性别职称出生日期
0014李欣教授1969-07-25
0078张云副教授1975-11-25
0118王立高级工程师1985-04-28
0193赵玲讲师1992-09-26
0213杨梅副教授1986-06-07
0030覃刚副教授1980-02-15

course 表所需数据如下:

课程号课程名学分学时考核方式
G001线性代数348考试
R003数据结构348考试
R009离散数学348考试
S023嵌入式系统与编程实验132考察
G012大学物理464考试

class 表所需数据如下:

班级号班级名年级学院班级人数
0211801软件18级1班18级软件37
0211903软件19级3班19级软件35
0211705软件17级5班17级软件38
0131901机械19级1班19级机械37

teaching 表所需数据如下:

课程号工号班级号开学日期教室
G001007802119031A101
G001007801319011A101
R003011802118012S001
R009021302119032S002
S023019302118011S001
G012003001319012B003

相关SQL语句如下:

INSERT INTO teacher VALUES
('0014','李欣','男','教授','1969-07-25'),
('0078','张云','女','副教授','1975-11-25'),
('0118','王立','男','高级工程师','1985-04-28'),        
('0193','赵玲','女','讲师','1992-09-26'), 
('0213','杨梅','女','副教授','1986-06-07'),
('0030','覃刚','男','副教授','1980-02-15');

INSERT INTO course VALUES
('G001','线性代数','3','48','考试'),
('R003','数据结构','3','48','考试'),
('R009','离散数学','3','48','考试'),        
('S023','嵌入式系统与编程实验','1','32','考察'), 
('G012','大学物理','4','64','考试');

INSERT INTO class VALUES
('0211801','软件18级1班','18级','软件','37'),
('0211903','软件19级3班','19级','软件','35'),
('0211705','软件17级5班','17级','软件','38'),
('0131901','机械19级1班','19级','机械','37');

INSERT INTO teaching VALUES
('G001','0078', '0211903','1','A101'),
('G001','0078', '0131901','1','A101'),
('R003','0118', '0211801','2','S001'),
('R009','0213', '0211903','2','S002'),
('S023','0193', '0211801','1','S001'),
('G012','0030', '0131901','2','B003');

第14关:修改数据

实验要求:

1.大学物理课程的考核方式发生了改变,从原先“考试”改为“考察”,请修改课程表(course)中对应的数据。

2.新学年开始,有 3 名同学转专业进入 软件19级3班,更新班级表(class)中班级人数。

相关SQL语句如下:

UPDATE course 
SET examination = '考察' 
WHERE cname = '大学物理';

UPDATE class 
SET gnum = '38'
WHERE gname = '软件19级3班';

第15关:删除数据

实验要求:

新学年开始,17级班级已毕业,从班级表(class)中删除17级班级的信息。

相关SQL语句如下:

DELETE FROM class where grade = '17级';

SQL Server 2000系统的安装及配置 1)安装SQL Server 2000系统。   选择 "下一步",然后选择 "本地计算机" 进行安装。   在 "安装选择" 窗口,选择 "创建新的SQL Server实例..."。 在 "用户信息" 窗口,输入用户信息,并接受软件许可证协议。   在 "安装定义"窗口,选择 "服务器和客户端工具" 选项进行安装。。   在 "实例名" 窗口,选择 "默认" 的实例名称。这时本SQL Server的名称将和Windows 2000服务器的名称相同。   在 "安装类型" 窗口,选择 "典型" 安装选项,并指定 "目的文件夹"。   在 "服务账号" 窗口,请选择 "对每个服务使用统一账户..." 的选项。在 "服务设置" 处,选择 "使用本地系统账户"。   在 "身份验证模式" 窗口,请选择 "混合模式..." 选项,并设置管理员"sa"账号的密码。如果您的目的只是为了学习的话,可以将该密码设置为空,以方便登录。 2)分别使用SQL Server服务管理器和控制面板启动MS SQL Server服务。 开始→程序→SQL Server2000→企业管理器 3)练习企业管理器使用。 创建数据库:在处单击右键,选中“新建数据库” 删除数据库:在“数据库”处单击右键,选中“删除” 新建表:双击数据库,然后双击“表”进入,在单击右键“新建表” 4)在企业管理器下创建一个服务器组group1,在这个组下注册一个服务器。查看有哪些数据库数据库中有哪些数据对象。 在企业管理器下单击右键,选择“新建SQL Sever组”,命名为“group1”,在处单击右键,选“新建SQL Sever注册”然后“下一步” 5)练习查询分析器的使用,在查询分析器中输入如下SQL语句,查看结果。 USE PUBS GO SELECT * FROM Authors GO 三、SQL调试及结果 数据库的创建和管理 1.在SQL Server企业管理器中创建一个数据库,具体要求如下: (1)数据库名称为Mydata。 (2)主要数据文件:逻辑文件名为Mydatabase,物理文件名为Mydatabase.mdf,初始容量为1MB,最大容量为10MB,递增量为1MB。 (3)次要数据文件:逻辑文件名为Mydatabak,物理文件名为Mydatabak.ndf,初始容量为1MB,最大容量为10MB,递增量为1MB。 (4)事务日志文件:逻辑文件名为Mydatalog,物理文件名为Mydatalog.ldf,初始容量为1MB,大容量为5MB,递增量为512KB。 2.在查询分析器中输入并执行一个CREATE DATABASE语句,具体要求如下: (1)数据库名称为SA; (2)主要数据文件:逻辑文件名为SAdatabase,物理文件名为SAdatabase.mdf,初始容量为1MB,最大容量为10MB,递增量为1MB; (3)次要数据文件:逻辑文件名为SAdatabakup,物理文件名为SAdatabakup. ndf,初始容量为1 MB,最大容量为10MB,递增量为1MB; (4)事务日志文件:逻辑文件名为SAdatalog,物理文件名为SAdatalog.Ldf,初始容量为512KB,最大容量为5MB,递增量为512KB。 命令: create database SA on primary (name=SAdatabase, filename='F:\Homework\MS\SQL\SAdatabase.mdf', size=1, maxsize=10, filegrowth=1 ) ,filegroup ff (name=SAdatabakup, filename='F:\Homework\MS\SQL\SAdatabakup.mdf', size=1, maxsize=10, filegrowth=1) log on (name=SAdatalog, filename='F:\Homework\MS\SQL\SAdatalog.mdf', size=1, maxsize=5, filegrowth=512kb) 3.按照下列要求在企业管理器中修改第2题中创建的SA数据库: alter database SA modify file ( name= SAdatabase, size=5, maxsize=20, filegrowth=2 ) alter database SA modify file ( name= SAdatabakup, size=5, maxsize=20, filegrowth=2 ) modify file ( name= SAdatalog, size=2, maxsize=10, filegrowth=1 ) (1)主要数据文件的容量为5MB,最大容量为20MB,递增量为2MB。 (2)次要数据文件的容量为5MB,最大容量为20MB,递增量为2MB。 (3)事务日志文件:初始容量为2MB,最大容量为 10MB,递增量为1MB。 截图文件:4.数据库更名,要求:把SA数据库改名为mySA。 alter database SA modify name=mySA 为了使数据库名称简单,修改回原来的SA alter database mySA modify name= SA 5.收缩数据库,要求:分别使用DBCC SHRINKDATABASE和DBCC SHRINKFILE进行收缩。 DBCC SHRINKDATABASE (SA ,target_percent        [,{ NOTRUNCATE | TRUNCATEONLY } ] ) 6.删除数据库(以下是在windows xp环境下的截图) (1)在企业管理器中删除Mydata数据库。 在Enterprise manager可以在“Mydata”上单击右键,然后单击删除 截图: (2)在查询分析器中用DROP DATABASE语句删除经过第3题修改以后的SA数据库。 drop database SA (3),如果当前没有选中理想中的数据库文件可以运行下面命令: USE SA GO
此为吉林大学数据库实验报告,实验内容为: 实验一 熟悉MySQL环境及SQL定义语言 一、实验目的: 1. 了解MySQL程序构成、安装、管理方法。 2. 了解MySQL数据库及表结构。 3. 熟练掌握SQL语言进行基本表结构的创建。 4. 熟练应用SQL语言进行表结构的修改。 5. 掌握SQL语言进行基本表的删除。 6. 掌握SQL语言进行索引的建立和删除。 二、实验内容和主要步骤: 1. 参考“MYSQL简体中文参考文档.chm”,熟悉MySQL构成和功能特性。 2. 打开Windows服务管理器,实验启动、停止MySQL服务,了解MySQL的服务管理方法; 3. 打开“MySQL管理控制台.bat”,熟悉控制台中操作数据库; 4. 利用控制台创建“Student数据库”。 5. 打开“Student”数据库,创建如下三个表,按下面的列表中的字段名(英文)、类型和宽度建立: 7. 用SQL语言CREATE TABLE语句创建学生表student、课程表course和选课表SC;(字段类型及长度参照实验一) 8. 用SQL语言ALTER语句修改表结构; a) STUDENT表中SNO设为非空和唯一; b) STUDENT表中增加一个字段SBIRTH,类型设置为日期时间类型,增加一个ADDRESS字段,类型为文本(字符); c) 删除STUDENT表中ADDRESS字段; d) COURSE表中CNO字段设为非空和唯一; 9. 重新定义一个简单表,然后用SQL语言DROP语句删除该表结构; 10. 用SQL语言CREATE INDEX语句定义表STUDENT的SNAME字段的降序索引; 11. 用SQL语言CREATE INDEX语句定义表SC的GRADE字段的升序索引; 12. 用SQL语言DROP语句删除索引; 13. 输入部分数据,并试着修改其中的错误; 注: 实验二 SQL语言进行简单查询 一、实验目的: 1. 掌握SQL查询语句的一般格式 2. 掌握简单数据查询操作。 3. 熟练掌握各种查询条件的表示。 4. 掌握排序和分组操作在SQL语句中的实现。 5. 掌握集函数的使用。 二、实验内容和主要步骤: 1. 创建学生表student、课程表course和选课表SC,并输入数据(注意数据的完整性。);(可以使用实验一中已经建立的表和数据) 2. 对各表中的数据进行不同条件的查询; 1) 查询全体学生的学号和姓名 2) 查询全体学生的详细记录 3) 查询所有选修过课程的学生学号 4) 查询考试有不及格的学生学号 5) 查询不是信息系(IS)、计算机系(CS)的学生性别、年龄、系别 6) 查询选修了4号课的学生学号和成绩,结果按成绩降序排列 7) 查询每个课程号和相应的选课人数 8) 查询计算机系(CS)的学生姓名、年龄、系别 9) 查询年龄18-20岁的学生学号、姓名、系别、年龄; 10) 查询姓刘的学生情况 11) 查询既选修1号课程,又选修2号课程的学生学号 12) 查询学生的姓名和出生年份(今年2003年) 13) 查询没有成绩的学生学号和课程号 14) 查询总成绩大于200分的学生学号 15) 查询每门课程不及格学生人数 16) 查询不及格课程超过3门的学生学号 17) 查询年龄在10到19岁之间的学生信息 18) 查询全体学生情况,按所在系升序排列,同一个系的学生按年龄降序排列 19) 查询选了1号课程的学生平均成绩 20) 查询选了3号课程的学生的最高分 21) 查询每个同学的总成绩 实验三 SQL进行复杂查询 一、实验目的: 1. 熟练掌握各种连接查询及其连接条件。 2. 掌握各种嵌套查询的使用。 3. 掌握复杂的集合查询。 二、内容和主要步骤: 1.实验一中的数据为基础 2.对各表中的数据进行不同条件的连接查询和嵌套查询; 1) 查询每个学生及其选课情况; 2) 查询每门课的间接先修课 3) 将STUDENT,SC进行右连接 4) 查询有不及格的学生姓名和所在系 5) 查询所有成绩为优秀(大于90分)的学生姓名 6) 查询既选修了2号课程又选修了3号课程的学生姓名、学号; 7) 查询和刘晨同一年龄的学生 8) 选修了课程名为“数据库”的学生姓名和年龄 9) 查询其他系比IS系任一学生年龄小的学生名单 10) 查询其他系中比IS系所有学生年龄都小的学生名单 11) 查询选修了全部课程的学生姓名 12) 查询计算机系学生及其性别是男的学生 13) 查询选修课程1的学生集合和选修2号课程学生集合的差集 14) 查询李丽同学不学的课程的课程号 15) 查询选修了3号课程的学生平均年龄 16) 求每门课程学生的平均成绩 17) 统计每门课程的学生选修人数(超过3人的才统计)。要求输出课程号和选修人数,结果按人数降序排列,若人数相同,按课程号升序排列 18) 查询学号比刘晨大,而年龄比他小的学生姓名。 19) 求年龄大于女同学平均年龄的男同学姓名和年龄 20) 求年龄大于所有女同学年龄的男同学姓名和年龄 21) 查询至少选修了95002选修的全部课程的学生号码 22) 查询95001和95002两个学生都选修的课程的信息 实验四 SQL的常用数据更新操作 一、实验目的: 1. 熟练掌握SQL的常用数据更新操作。 2. 熟练应用INSERT,UPDATE,DELETE语句。 3. 掌握更新操作的各种格式。 二、实验内容和主要步骤 1. 应用INSERT,UPDATE,DELETE语句进行更新操作; 1) 插入如下学生记录(学号:95030,姓名:李莉,年龄:18) 2) 插入如下选课记录(95030,1) 3) 计算机系学生年龄改成20 4) 数学系所有学生成绩改成0 5) 把低于总平均成绩的女同学成绩提高5分 6) 修改2号课程的成绩,若成绩小于75分提高5%,成绩大于75时提高 7) 4%(两个语句实现,注意顺序) 8) 删除95030学生信息 9) 删除SC表中无成绩的记录 10) 删除张娜的选课记录 11) 删除数学系所有学生选课记录 12) 删除不及格的学生选课记录 13) 查询每一门课程成绩都大于等于80分的学生学号、姓名和性别,把值送往另一个已经存在的基本表STU(SNO,SNAME,SSEX)中 14) 把所有学生学号和课程号连接追加到新表中 15) 所有学生年龄增1 16) 统计3门以上课程不及格的学生把相应的学生姓名、系别追加到另外一个表中 2.熟练掌握INSERT,UPDATE,DELETE语句并能综合应用;
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

枫月入梦

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

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

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

打赏作者

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

抵扣说明:

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

余额充值