数据库系统概论SQL语言实验报告Word文件下载.docx

上传人:b****4 文档编号:17230336 上传时间:2022-11-29 格式:DOCX 页数:16 大小:24.10KB
下载 相关 举报
数据库系统概论SQL语言实验报告Word文件下载.docx_第1页
第1页 / 共16页
数据库系统概论SQL语言实验报告Word文件下载.docx_第2页
第2页 / 共16页
数据库系统概论SQL语言实验报告Word文件下载.docx_第3页
第3页 / 共16页
数据库系统概论SQL语言实验报告Word文件下载.docx_第4页
第4页 / 共16页
数据库系统概论SQL语言实验报告Word文件下载.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

数据库系统概论SQL语言实验报告Word文件下载.docx

《数据库系统概论SQL语言实验报告Word文件下载.docx》由会员分享,可在线阅读,更多相关《数据库系统概论SQL语言实验报告Word文件下载.docx(16页珍藏版)》请在冰豆网上搜索。

数据库系统概论SQL语言实验报告Word文件下载.docx

完成数据库的建立并定义各表的完整性约束条件。

分别使用企业管理器和SQL语言来实现。

(3)熟练掌握并应用SQL中的数据表定义、删除和修改等操作命令;

(4)熟练掌握为各表常用字段建立索引,以提高数据检索效率。

3.实验代码

基本表Course:

createtablecourse

(cnoChar(6)primarykey,

cnameChar(20),

cpnoChar(6),

ctimeNumeric

(2),

creditNumeric

(2),

foreignkey(cpno)referencescourse(cno),

);

基本表Score:

createtableScore

snochar(9),

cnochar(6),

scorenumeric(3),

primarykey(sno,cno),

foreignkey(sno)referencesstudent(sno),

foreignkey(cno)referencescourse(cno),

基本表student:

createtablestudent

(snoChar(9)primarykey,

snameChar(10)constraintc1notnull,

sbirthdayDatetime,

ssexChar

(2)constraintc2check(ssexin('

男'

'

女'

)),

sclassChar(20),

sremarkChar(100),

addressChar(40),

zipcodeChar(6),

phoneChar(15),

emailChar(40),);

基本表Teacher:

createtableTeacher

tnochar(7)primarykey,

tnamechar(10),

tsexchar

(2)check(tsexin('

tbirthdaydatetime,

positionchar(12),

departmentchar(16),

tamountnumeric(7,2),

experiencechar(200),

基本表Teaching:

createtableTeaching

tnochar(7),

tdatadatetime,

classroomchar(10),

sclasschar(20),

primarykey(tno,cno),

foreignkey(tno)referencesTeacher(tno),

foreignkey(cno)referencescourse(cno),

4.实验心得

通过本次实验,对SQL语言有了更加深刻的理解,对基本表的建立有了更加清晰的认识,能够更加熟练地创建基本表。

实验二:

设计数据插入、修改、删除、更新、查询和视图查询等操作并编程实现

(1)熟练掌握数据更新语句,灵活地操作插入数据、修改数据和删除数据;

(2)熟练掌握关系数据库中的完整性概念的应用;

(3)了解数据录入的方法和过程。

(4)掌握单表查询的基本方法;

(5)掌握连接查询的基本方法;

(6)熟练掌握以下练习,并进行以下各类查询:

①选择表中的若干列、查询全部列、查询经过计算的值;

②选择表中的若干元组,即消除取值重复的行与查询满足指定条件的元组(包括:

比较大小、确定范围、确定集合、字符匹配、涉及空值和多种条件查询);

③对查询结果排序;

④使用集函数;

⑤对查询结果分组

(7)熟练掌握以下练习,并进行下列各类连接查询:

①等值与非等值连接查询;

②自身连接;

③外连接;

④复合条件连接;

(8)掌握嵌套查询的基本方法;

(9)掌握集合查询的基本方法;

(10)熟练掌握查询视图操作

(11)熟练掌握更新视图操作

(12)熟练关系的完整性概念,领会视图的用途

(13)练习以下各类查询:

①带有IN谓词的子查询;

②带有比较运算符的子查询;

③带有ANY或ALL谓词的子查询;

④带有EXISTS谓词的子查询;

⑤视图查询与更新操作;

(1)根据以下给定的数据表信息分别对student,course,score,teacher,teching表进行数据插入和修改,以完成给定的数据录入,同时要求输入班级同学名录模拟客观真实情况,给student、score表添加30条以上记录,以便以后查询应用方便。

Student表:

Sno

sname

Sbirthday

ssex

Sclass

011110101

章海潮

1982.02.07

信管系0101

011111103

王天力

1982.03.04

电商系0101

011111204

董丞悟

1982.06.06

电商系0102

011112110

马丽鹃

1982.04.03

工商系0101

011113104

杨乾坤

1982.03.23

会计系0101

011113221

刘抗日

1983.01.16

会计系0102

011114111

丘海棠

1983.02.08

旅游系0101

011115208

齐振国

1982.07.22

旅游系0102

001011101

王晓悦

1982.01.12

材料系0001

001011212

程伊莲

1982.03.21

材料系0002

course表:

Cno

Cname

Cpno

Credit

Ctime

C001

数据库原理

C005

4

64

C002

高等数学

72

C003

管理信息系统

54

C004

操作系统

C006

3

32

数据结构

C007

计算机文化基础

2

C语言程序设计

score表:

Score

90

85

73

98

96

97

83

92

teacher表:

Tno

Tname

Tsex

tbirthday

position

Department

T001

江承基

信息管理系

T002

梁其征

T003

徐茉莉

T004

吴雅云

T005

杨运铎

电子商务系

T006

张昌盛

T007

程力衡

Teaching表

cno

tdate

classroom

sclass

1988-01-09

西二405

1990-02-01

西二406

1985-09-10

西二504

1984-07-15

主401

1989-11-12

主402

1991-05-21

西二506

(2)将两个同学(数据自己临时设置,用后即删除)的两门课程的成绩以运行SQL语句插入的形式加入score表中。

该题用以验证、理解和掌握关系模型的完整性规则;

INSERT

INTOstudent(sno,sname,sbirthday,ssex,sclass)

values('

20095108'

顾家月'

1991-9-9'

信管系'

INTOScore

C001'

98'

(3)求每门课的平均成绩,并把结果存入average表;

createtablescoreAvg(cnochar(8),

Avg_scoresmallint)

insertintoscoreAvg

selectcno,avg(Score)fromScoregroupbycno;

(4)将学生“马丽鹃”的出生日期改为“1982.8.20”;

updatestudentsetsbirthday=’1982.8.20’wheresname=’马丽鹃’

(5)将所有学生的zipcode属性列值填补上;

updatestudent

setzipcode=230009

(6)将average表中的所有课程的平均成绩置零;

updatescoreAvg

setAvg_score=0

(7)删除average表中的课程号为‘c007’的平均成绩记录;

deletefromscoreAvg

wherecno='

c007'

(8)删除所有average表中平均成绩记录;

(9)建立一个临时学生信息表(tstudent),删除该表中的学号前六位为‘001011’的所有学生记录。

ssexChar

(2)constraintc3check(ssexin('

emailChar(40),

insertintotstudent

select*fromstudent

deletefromtstudent

wheresnoLIKE'

001011%'

(10)查询全体学生的学号与姓名;

SELECTsno,snamefromstudent

(11)查询全体学生的学号、姓名、所属班级;

SELECTsno,sname,sclassfromstudent

(12)查询全体学生的详细记录;

SELECT*fromstudent

(13)查询全体学生的姓名及其年龄;

SELECTsname,year(getdate())-year(sbirthday)fromstudent

(14)查询全体学生的姓名、出生年份;

selectsname,sbirthdayfromstudent

(15)查询所有修过课的学生的学号;

selectsnofromScore

(16)查询“信管系0101”班全体学生名单;

wheresclass='

信管系0101'

(17)查询查询所有年龄在27岁以下的学生姓名及其年龄;

whereyear(getdate())-year(sbirthday)<

27

(18)查询考试成绩有不及格的学生的学号;

wherescore<

60

(19)查询年龄在15至28岁之间的学生姓名、班级和年龄;

SELECTsname,sclass,year(getdate())-year(sbirthday)fromstudent

28andyear(getdate())-year(sbirthday)>

15

(20)查询年龄不在15至28岁之间的学生姓名、班级和年龄;

whereyear(getdate())-year(sbirthday)>

28oryear(getdate())-year(sbirthday)<

(21)查询“信管系0101”和“电商系0102”班的学生的姓名和班级信息;

selectsname,sclassfromstudent

orsclass='

电商系'

(22)查询既不是“信管系0101”也不是“电商系0102”班的学生的姓名和班级信息;

wheresclass!

='

andsclass!

(23)查询学号为“011113104”的学生的详细情况;

wheresno='

011113104'

(24)查询学号以“0111”打头的学生信息;

wheresnolike'

0111%'

(25)查询所有姓“张”学生的学号、姓名、性别、年龄;

selectsno,sname,ssex,year(getdate())-year(sbirthday)fromstudent

wheresnamelike'

张%'

(26)查询名字中第二个字有“海”字的学生的学号、姓名、性别、年龄;

selectsno,sname,ssex,year(getdate())-year(sbirthday)fromstudent

_海%'

(27)查询所有不姓“刘”学生的姓名;

selectsnamefromstudent

wheresnamenotlike'

刘%'

(28)查询课程号以“C”开头的最后两个字母为“05”的课程号和课程名;

selectcno,cnamefromcourse

wherecnolike'

c%05'

(29)某些学生选修某门课程后没有参加考试,所以有选修课记录,但没有考试成绩,试查找缺少考试成绩的学生和相应的课程号;

Selectsno,cnofromScorewherescoreisnull;

(30)查找全部有成绩记录的学生学号、课程号;

selectsno,cnofromScore

=100andscore>

=0

(31)查找“电商系0101”班年龄在27岁以下的学生学号、姓名;

selectsno,snamefromstudent

andyear(getdate())-year(sbirthday)<

(32)查找选修了“C001”号课程的学生学号及其成绩,查询结果按分数降序排序;

selectsno,scorefromScore

orderbyscoredesc

(33)查询全体学生情况,查询结果按所在班级升序排列,对同一班级中的学生按年龄降序排列;

orderbysclass,year(getdate())-year(sbirthday)desc

(34)查询学生总人数;

selectcount(sno)fromstudent

(35)查询选修了课程的学生人数;

selectcount(sno)fromScore

(36)在所有课程中查询最高分的学生学号和成绩;

selectsno,scorefromScore

wherescore=(selectmax(score)fromScore)

(37)查询学习“C001”课程的学生最高分数;

selectMAX(score)fromScore

(38)计算各个课程号与相应的选课人数;

SELECTcno,count(sno)fromScore

groupbycno

(39)查询“电商系0102”班选修了两门课程以上的学生学号、姓名;

selectstudent.sno,snamefromstudent,Score

wherestudent.sno=Score.snoandstudent.sclass='

电商系0102'

groupbystudent.sno

havingcount(*)>

(40)自然连接student和score表;

selectstudent.sno,sname,ssex,sclass,sremark,address,zipcode,phone,email,cno,scorefromstudent,Scorewhere

student.sno=Score.sno

(41)使用自身连接查询每一门课程的间接先行课(即先行课的先行课)

selectA.cno,B.cpnofromcourseA,courseB

whereA.cpno=B.cno

(42)使用复合条件连接查询选修“c001”号课程且成绩在90分以上的所有同学;

selectstudent.sno,snamefromstudent,Score

wherestudent.sno=Score.snoandcno='

c001'

andscore>

(43)使用复合条件连接查询每个学生选修的课程名及其成绩;

selectstudent.sno,sname,cname,scorefromstudent,Score,course

wherestudent.sno=Score.sno

(44)查询选修了全部课程的学生;

wherenotexists(select*fromcoursewherenotexists

(select*fromScorewheresno=student.snoandcno=o))

(45)查询至少选修全部学分数为4个学分的课程的学生的学号、姓名;

selectstudent.sno,student.snamefromstudent,course,scorewherestudent.sno=score.snoando=oandoin(selectcnofromcoursegroupbycnohavingsum(ctime)>

=4)

(46)查询所有选修了C001号课程的学生学号、姓名;

selectstudent.sno,snamefromstudent,Score

(47)查询选修了课程C001或c007的学生学号、姓名;

selectdistinctstudent.sno,snamefromstudent,Score

coo1'

orcno='

(48)查询“会计系0102”班的学生及年龄不

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1