实验五答案SQL语句查询

1、列出所有不姓刘的所有学生

select sname,sno

from student

where sname not like'刘%'

2、列出姓“沈“且全名为3个汉字的学生

select sname

from student

where sname like'沈____'

3、显示在1985年以后出生的基本信息

select sno学号,sname姓名,出生年份=year(getdate())-sage

from student

where year(GETDATE())>1985

4、按照“性别、学号、姓名、年龄、院系“的顺序列出学生信息,其中性别按以下规定显示:性别为男显示为男生,性别为女显示为女生,其它显示为”条件不明“

select ssex=

case

when ssex='男'then'男生'

when ssex='女'then'女生'

else'情况不明'

end,sno,sname,sage,sdept

from student

5、查询出课程名含有‘数据‘字串的所有课程基本信息

select sno,https://www.360docs.net/doc/d419204785.html,o,cname,grade,ccredit

from sc,course

where cname like'数据%'and https://www.360docs.net/doc/d419204785.html,o=https://www.360docs.net/doc/d419204785.html,o

6、显示学号第八位或者第九位是1、2、3、4或9的学生的学号、姓名、性别、年龄、及院系select sno,sname,ssex,sage,sdept

from student

where sno like'2005150[1-4]%'or sno like'2005150[0-9][1-4]'

or sno like'20051509%'or sno like'2005150[0-9]9'

7、列出选修了‘1‘课程的学生,按成绩的降序排列

select student.sno,sname,grade

from student,sc

where Cno='1'

order by Grade desc

8、列出同时选修‘1‘号课程和’2‘号课程的所有学生的学号

select sno,Cno

from sc

where cno=1 or cno=2

9、列出课程表中全部信息,按先选修课的升序排列

select*

from course

order by cpno asc

10、列出年龄超过平均值的所有学生名单,按年龄的降序显示

select sno,sname

from student

where sage>(select AVG(sage)from student)

order by sage desc

11、按照出生年份升序显示所有学生的学号、姓名、性别、出生年份及院系,在结果集中列标题分别指定为“学号、姓名、性别、出生年份、院系“

select sno学号,sname姓名,ssex性别,出生年份=year(GETDATE())-sage,sdept 院系

from student

order by YEAR(GETDATE())-sage asc

12、按照院系降序显示所有学生的“院系、学号、姓名、性别、年龄“等信息,其中院系按照以下规定显示:院系为CS显示为计算机,院系为IS显示为信息系,院系为MA显示为数学系,院系为EN显示为外语系,院系为CM显示为中医系,院系为WM显示为西医系,其他显示为院系不明

select sno,sname,ssex,sage,sdept=

case

when sdept='CS'then'计算机系'

when sdept='IS'then'信息系'

when sdept='MA'then'数学系'

when sdept='EN'then'外语系'

when sdept='CM'then'西医系'

when sdept not in('CS','IS','MA','EN','CM')then'院系不明'

end

from student

13、显示所有院系(要求不能重复,不包括空值),并在结果集中增加一列字段“院系规模“,其中若该院系人数>=5则该字段值为”规模很大“,若该院系人数大于等于4小于5则该字段为”规模一般“,该院系人数大于等于2小于4则该字段值为”规模稍小“,否则显示“规模很小”select sdept,sdept=

case

when COUNT(distinct sno)>=5then'规模很大'

when COUNT(distinct sno)>=4and COUNT(distinct sno)<5 then'规模一般' when COUNT(distinct sno)>=2and COUNT(distinct sno)<4 then'规模小' when COUNT(distinct sno)<2 then'规模很小'

end

from student

group by sdept

14、按照课程号、成绩降序显示课程成绩在70——80之间的学号、课程号及成绩

select sno,cno,grade

from sc

where Grade>=70 and Grade<=80

order by Cno desc,Grade desc

15、显示学生信息表中的学生总人数及平均年龄,在结果集中列标题分别指定为“学生总人数,平均年龄“

select学生总人数=COUNT(distinct sno),平均年龄=AVG(sage)

from student

16、显示选修的课程数大于3的各个学生的选修课程数

select sno,选修的课程数=COUNT(Cno)

from sc

group by sno

having COUNT(Cno)>3

17、按照课程号降序显示选修各个课程的总人数、最高成绩、最低成绩及平均年龄

select cno,总人数=COUNT(distinct sno),最高成绩=MAX(grade),最低成绩

=MIN(grade),平均成绩=AVG(grade)

from sc

group by cno

order by cno desc

18、显示平均成绩大于“200515001“学生平均成绩的各个学生的学号、平均成绩

select sno,平均成绩=AVG(grade)

from sc

group by sno

having AVG(Grade)>(select AVG(Grade)from sc where sno='200515001') 20、显示选修课程数最多的学号及选修课程数最少的学号

select sno,选课数=

case

when MAX(Cno)=COUNT(Cno)then'课程数最多'

when MIN(Cno)=COUNT(Cno)then'课程数最少'

end

from sc

group by sno

having MAX(Cno)=COUNT(Cno)or MIN(Cno)=COUNT(Cno)

22、列出有二门以上课程(含两门)不及格的学生的学号及该学生的平均成绩

select sno,平均成绩=AVG(grade)

from sc

where Grade<60

group by sno

having COUNT(*)>=2

19、显示选修各个课程的及格人数及几个比率

21、显示各个院系男女生人数,其中在结果集中列标题分别为“院系名称、男生人数、女生人数“

select sdept院系名称,

男生人数=sum(case when ssex='男'then 1 else 0 end),

女生人数=sum(case when ssex='女'then 1 else 0 end)

实验5实验报告

学号:20164477 姓名:陈家凤 实验五SQL语言 一、目的与要求 1.掌握SQL语言的查询功能; 2.掌握SQL语言的数据操作功能; 3.掌握对象资源管理器建立查询、索引和视图的方法; 二、实验准备 1.了解SQL语言的查改增删四大操作的语法; 2.了解查询、索引和视图的概念; 3.了解各类常用函数的含义。 三、实验内容 (一)SQL查询功能 使用提供的studentdb数据库文件,先附加到目录树中,再完成下列题目,SQL命令请保存到脚本文件中。 1.基本查询 (1)查询所有姓王的学生的姓名、学号和性别 Select St_Name,St_Sex,St_ID From st_info Where St_Name like'王%' 图5-1 (2)查询全体学生的情况,查询结构按班级降序排列,同一班级再按学号升序, 并将结果存入新表new中 select*into new from st_info order by Cl_Name desc,st_ID asc

图5-2 (3)对S_C_info表中选修了“体育”课的学生的平均成绩生成汇总行和明细 行。(提示:用compute汇总计算) 因2014版本已不支持compute关键字,所以选择用其他方式。 Select c_no,score From s_c_info Where c_no=29000011 group by c_no,score 图5-3 2.嵌套查询 (1)查询其他班级中比“材料科学0601班”的学生年龄都大的学生姓名和年 龄 select st_name,born_date from st_info where cl_name!='材料科学0601班'and born_date<(select min(born_date) from st_info where cl_name='材料科学0601班')

数据库实验5答案

实验五:数据库综合查询 一、实验目的 1.掌握SELECT语句的基本语法和查询条件表示方法; 2.掌握查询条件种类和表示方法; 3.掌握连接查询的表示及使用; 4.掌握嵌套查询的表示及使用; 5.了解集合查询的表示及使用。 二、实验环境 已安装SQL Server企业版的计算机(120台); 具有局域网环境,有固定IP; 三、实验学时 2学时 四、实验要求 1.了解SELECT语句的基本语法格式和执行方法; 2.了解连接查询的表示及使用; 3.了解嵌套查询的表示及使用; 4.了解集合查询的表示及使用; 5.完成实验报告; 五、实验内容及步骤 1.利用Transact-SQL嵌套语句实现下列数据查询操作。 1) 查询选修了计算机体系结构的学生的基本信息。 select*from student where Sno in(select Sno from course where Cno in(select Cno from sc where Cname='计算机体系结构')) 2) 查询年龄比李勇小的学生的学号和成绩。 select a.sno,grade from student a,course where a.sno=course.sno and sage<(select sage from student where sname='李勇') 3) 查询其他系中比系编号为‘D1’的学生中年龄最小者要大的学生的信息。 select*from student where dnum<>'D1'AND SAGE>(select min(sage)from student where dnum='D1') 4) 查询其他系中比系编号为‘D3’的学生年龄都大的学生的姓名。 select*from student where dnum<>'D3'AND SAGE>all(select

数据库SQL查询例题及解答

数据库SQL查询例题及解答

1 实验目的 1.熟悉数据库的交互式SQL工具。 2.熟悉通过SQL对数据库进行操作。 3.完成作业的上机练习。 2 实验工具sql server 利用Sql server及其交互式查询工具-查询分析器来熟悉SQL。 3 实验内容和要求 1)实验内容: 创建数据库boat,包括Sailors,Boats,Reserves三个表,表结构如下: Sailors(sid: integer, sname: string, rating: integer, age: real) 船员(船员编号,姓名,级别,年龄) Boats(bid: integer, bname: string, color: string) 船(船编号,名称,颜色) Reserves(sid: integer, bid: integer, day: date) 租赁(船员编号,船编号,日期) (注:下划线表示主键),并插入一定数据。

2)完成下列要求: (1)查询所有船员的信息 (2)查询所有姓王的船员的信息 (3)查询租用过103号船的船员姓名 (4)查找租用过船只的船员编号 (5)查找rating>7且年龄>25的水手编号 (6)查找租用过红船和绿船的水手名字 (7)查找租用过红船或绿船的水手编号 (8)查找最年长的水手的年龄和名字 (9)在18岁以上水手中,对于每个rating级别中最少有两个水手以上的组中最年轻水手的年龄 (10)查找每条红色船只被租用的次数 (11)把30岁以上船员的级别调高一级 (12)删除所有年龄超过40岁的船员信息 (13)建立年龄超过25岁的船员的视图 (14)对(13)建立的视图,举一操作的例子(查询、删除、修改均可) 2)要求: a.建立boat数据库的SQL脚本,插入所有数据项的SQL脚本(包括所有的测试数据)。 b.记录完成查询要求的SQL语句脚本。

数据库原理中SQL语句实验指导书及答案

实验四:管理SQL Server表数据 一、实验目的 熟悉数据表结构及使用特点; 熟悉使用Management Stuio界面方式管理数据表数据; 熟悉使用T-SQL语句管理数据表数据。 二、实验环境 已安装SQL Server 2005 企业版的计算机(13台); 具有局域网环境,有固定IP; 三、实验学时 2学时 四、实验要求 了解SQL Server数据表数据的管理方法; 了解SQL Server数据类型; 完成实验报告(部分题只需给出关键语句)。 五、实验内容及步骤 以课本指定的数据库为例,并依据数据表的结构创建相对应的数据表(student、course、sc),请分别使用Management Stuio界面方式及T-SQL 语句实现进行以下操作: 向各个数据表中插入如下记录: 学生信息表(student)

课程信息表(course) 选课信息表(sc)

insert into student.dbo.sc values('20051501','1',75) insert into student.dbo.course values('1','数据库','5',4) insert into student.dbo.student values('201015001','赵菁菁','女',23,'CS') 2.修改CS系姓名为“李勇”的学生姓名为“李咏”; update student set Sname='李咏' where Sname='李勇' 3.修改课程“数据处理”的学分为3学分; 3.update course set Ccredit=3 where Cname ='数据处理' 4.将选修课程“1”的同学成绩加5分; 4.update sc set Grade =Grade+5 where Cno='1' 5.将选修课程“大学英语”的同学成绩加5分; update sc set Grade=Grade+5 from course,sc where https://www.360docs.net/doc/d419204785.html,o=https://www.360docs.net/doc/d419204785.html,o and https://www.360docs.net/doc/d419204785.html,ame='大学英语'

实验五答案SQL语句查询

1、列出所有不姓刘的所有学生 select sname,sno from student where sname not like'刘%' 2、列出姓“沈“且全名为3个汉字的学生 select sname from student where sname like'沈____' 3、显示在1985年以后出生的基本信息 select sno学号,sname姓名,出生年份=year(getdate())-sage from student where year(GETDATE())>1985 4、按照“性别、学号、姓名、年龄、院系“的顺序列出学生信息,其中性别按以下规定显示:性别为男显示为男生,性别为女显示为女生,其它显示为”条件不明“ select ssex= case when ssex='男'then'男生' when ssex='女'then'女生' else'情况不明' end,sno,sname,sage,sdept from student 5、查询出课程名含有‘数据‘字串的所有课程基本信息 select sno,https://www.360docs.net/doc/d419204785.html,o,cname,grade,ccredit from sc,course where cname like'数据%'and https://www.360docs.net/doc/d419204785.html,o=https://www.360docs.net/doc/d419204785.html,o 6、显示学号第八位或者第九位是1、2、3、4或9的学生的学号、姓名、性别、年龄、及院系select sno,sname,ssex,sage,sdept from student where sno like'2005150[1-4]%'or sno like'2005150[0-9][1-4]' or sno like'20051509%'or sno like'2005150[0-9]9' 7、列出选修了‘1‘课程的学生,按成绩的降序排列 select student.sno,sname,grade from student,sc where Cno='1' order by Grade desc 8、列出同时选修‘1‘号课程和’2‘号课程的所有学生的学号 select sno,Cno from sc where cno=1 or cno=2 9、列出课程表中全部信息,按先选修课的升序排列 select* from course order by cpno asc

SQLServer2005课后实训参考答案

课后实训参考答案 单元1(SQL Server概述) 1、使用SQL语句。在Sale数据库中创建名为MyDataType的用户定义数据类型,数据类型为NV ARCHAR,长度为20,该列允许为NULL。 USE Sale GO EXEC sp_addtype MyDataType,'NVARCHAR(20)','NULL' GO 单元2(单表数据) 使用查询窗口或sqlcmd实施查询。本实训使用Xk数据库。 --1.查看系部编号为“03”的系部名称。 USE Xk GO SELECT DepartName FROM Department WHERE DepartNo='03' GO --2.查看系部名称中包含有“工程”两个字的系的全名。 USE Xk

GO SELECT DepartName FROM Department WHERE DepartName LIKE'%工程%' GO --3.显示共有多少个系部。 USE XK GO SELECT'系部总数'=COUNT(*) FROM Department GO --4.显示“01”年级共有多少个班级。 USE XK GO SELECT'01 级班级数'=COUNT(*) FROM Class WHERE ClassNo LIKE'2001%' GO SELECT'01 级班级数'=COUNT(*) FROM Class

WHERE ClassName LIKE'01%' GO SELECT'01 级班级数'=COUNT(*) FROM Student WHERE ClassNo LIKE'2001%' GO --5.查看在“周二晚”上课的课程名称和教师。 USE XK GO SELECT'课程名称'=CouName,'任课教师'=Teacher FROM Course WHERE SchoolTime='周二晚' GO --6.查看姓“张”、“陈”、“黄”同学的基本信息,要求按照姓名降序排序查询结果。 USE XK GO SELECT* FROM Student WHERE StuName LIKE'张%'OR

实验答案(四-五-六)参考答案

实验四简单查询和连接查询 1. 简单查询实验 用Transact-SQL语句表示下列操作,在“学生选课“数据库中实现其数据查询操作: (1) 查询数学系学生的学号和姓名。 select sno,sname from student where dept='数学系'; (2) 查询选修了课程的学生学号。 select distinct(sno) from sc; (3) 查询选修课程号为0101的学生学号和成绩,并要求对查询结果按成绩降序排列,如果成绩相同则按学号升序排列。 select distinct(sno),grade from sc where cno='0101' order by grade desc,sno asc; (4) 查询选修课程号为0101的成绩在80-90 分之间的学生学号和成绩,并将成绩乘以系数输出。 select distinct(sno),grade*as'sore' from sc where cno='0101'and grade between 80 and 90; (5) 查询数学系或计算机系姓张的学生的信息。 select* from student where dept in('数学系','计算机系')and sname like'张%'; (6) 查询缺少了成绩的学生的学号和课程号。 select sno,cno from sc where grade is null; 2. 连接查询实验 用Transact-SQL语句表示,并在“学生选课”数据库中实现下列数据连接查询操作: (1) 查询每个学生的情况以及他(她)所选修的课程。 select student.*, from student,sc,course where=and=; (2) 查询学生的学号、姓名、选修的课程名及成绩。 select,sname,cname,grade from student,sc,course where=and=; (3) 查询选修离散数学课程且成绩为90 分以上的学生学号、姓名及成绩。

SQL数据库实验五答案

(1) insert into Student(Sno,Sname,Ssex,Sdept) values('06011','王文娟','女','计算机') (2) 不能将值NULL 插入列'Sno',表'AA.dbo.Student';列不允许有Null 值。INSERT 失败。语句已终止。 因为Sno为主码,主码不能为空。 (3) create table CP_Student (Sno char(5)Not Null, Sname varchar(10)Null, Ssex char(2)Null, Sbirth smalldatetime Null, Sdept varchar(20)Null, Total decimal(4,1)Null) (4) insert into CP_Student select* from Student where Sdept='计算机'OR Sdept='外国语' (5) update Teacher set Tname='王芳龄' where Tname='王芳' (6) update Teacher set Tpay=Tpay*(1+0.02) where Tprof='副教授' (7) update SC set Grade=Grade+1 where Sno=(select Sno from Student where Sname='李强') (10) delete from Student where Sno='06011' (11) \delete from CP_Student

where Sbirth<='1987' (12) delete from CP_Student (13) select* into CP_Teacher from Teacher where Tno IS NULL (14) insert into CP_Teacher select* from Teacher where Tprof='副教授' (15) insert into CP_Teacher select* from Teacher where Tprof<>'副教授' (16) SELECT。。。INTO。。。和INSERT。。。INTO。。。都是将源表中的记录插入到目标表中,SELECT。。。INTO。。。在插入记录的时候目标表不存在,而是在插入记录时自动创建。 INSERT。。。INTO。。。在插入记录的时候目标表存在

数据库实验报告-SQL语句查询

《数据库原理》实验报告(实验名称:SQL查询语句)

一、实验目的 数据查询语句是SQL语句的重要组成部分,是编程人员与数据库管理人员必不可少的工具,通过实验达到以下目的: (1)掌握SELECT 语句的基本语法,加深学生对查询语句基本概念的理解。(2)掌握简单的单表查询。 (3)掌握连接查询。 二、实验内容: 实验数据:实验二所建的数据库及表,实验三录入表中的数据。 1、简单查询 (1)若干列或行的选择 (2)*、distinc、between…and… 、 in、 like等运算符的使用 (3)计算列、常量或空值的查询 (4)查询结果排序和分组 2、连接查询 (1)内连接和自身连接 (2)外连接 (3)复合条件连接 (4)多表连接 (5)对表和列使用别名 三、实验环境 SQL server 2000,pc机一台 四、程序源码与运行结果 1.查询所有学生的全部信息 2. 查询全体学生的学号与姓名

3 查询年龄在20岁以下的学生姓名及其出生年份,并为出生年份加上标题 4 查询选修了课程的学生学号,并消除重复行 5 查询年龄在20~23岁的学生信息(用between… and…表示查询条件) 6 查询全体学生情况,查询结果按班级编号升序排列,同一班的学生按年龄降序排列 7 查询所有姓赵学生的姓名、学号和性别 8 查询名字中第2个字为“小”字的学生姓名 9 查询电气信息工程学院(dx) 和计算机学院(jsj)的学生(要求:使用IN关

键字表示查询条件 10 查询没有考试成绩的学生学号和课程号 11 查询有2门以上课程是90分以上的学生的学号及(90分以上的)课程数(先用group by 分组,再用Having限定分组条件) 12 查询学生总人数 13 查询学号为‘’学生的平均成绩和总成绩,并为总成绩和平均成绩取别名。 14 查询c01号课程的最高分数和最低分 15 查询没有考试成绩的学生学号和课程号

实验五--数据查询——复杂查询

实验五数据查询——复杂查询 一、实验目的 1.掌握SQLServer查询语句的基本语法 2.熟练使用SQL的Select语句对多表进行查询 3.熟练掌握并运用SQLServer所提供的函数 4.熟练使用SQL语句进行复杂的连接操作 二、实验环境(实验的软件、硬件环境) 硬件:PC机软件:SQL2000 三、实验指导说明 请复习相关的查询知识点并完成如下内容。 四、实验内容 1.在订单数据库orderDB中,完成如下的查询: (1)用子查询查询员工“张小娟”所做的订单信息。 (2)查询没有订购商品的且在北京地区的客户编号,客户名称和邮政编码,并按邮政编码降序排序。 (3)查询订购了“32M DRAM”商品的订单编号,订货数量和订货单价。 (4)查询与员工编号“E2008005”在同一个部门的员工编号,姓名,性别,所属部门。 (5)查询既订购了P2*******商品,又订购了P2*******商品的客户编号,订单编号和订单金额 (6)查询没有订购“52倍速光驱”或“17寸显示器”的客户编号,客户名称。 (7)查询订单金额最高的订单编号,客户姓名,销售员名称和相应的订单金额。 (8)查询订购了“52倍速光驱”商品的订购数量,订购平均价和订购总金额。

(9)查询订购了“52倍速光驱”商品且订货数量界于2~4之间的订单编号,订货数量和订货金额。 (10)在订单主表中查询每个业务员的订单数量 (11)统计在业务科工作且在1973年或1967年出生的员工人数和平均工资。 (12)在订单明细表中统计每种商品的销售数量和金额,并按销售金额的升序排序输出。 (13)统计客户号为“C20050001”的客户的订单数,订货总额和平均订货金额 (14)统计每个客户的订单数,订货总额和平均订货金额。 (15)查询订单中至少包含3种(含3种)以上商品的订单编号及订购次数,且订购的商品数量在3件(含3件)以上。 (16)查找订购了“32M DRAM”的商品的客户编号,客户名称,订货总数量和订货总金额。 (17)查询每个客户订购的商品编号,商品所属类别,商品数量及订货金额,结果显示客户名称,商品所属类别,商品数量及订货金额,并按客户编号升序和按订货金额的降序排序输出。 (18)按商品类别查询每类商品的订货平均单价在280元(含280元)以上的订货总数量,订货平均单价和订货总金额。 (19)查找至少有2次销售的业务员名称和销售日期。 (20)查询销售金额最大的客户名称和总货款额 (21)查找销售总额小于5000元的销售员编号,姓名和销售额 (22)查找至少订购了3种商品的客户编号,客户名称,商品编号,商品名称,数量和金额。 (23)查找同时订购了商品为“P2*******”和商品编号为“P2*******”的商品的客户编号,客户姓名,商品编号,商品名称和销售数量,按客户编号排序输出。 (24)计算每一商品每月的销售金额总和,并将结果首先按销售月份然后按订货金额降序排序输出。 (25)查询订购了“键盘”商品的客户姓名,订货数量和订货日期

实验5 sql语句练习——图书馆数据库答案

实验5sql语句练习——图书馆数据库 实验5 sql语句练习——图书馆数据库 实验目的 (1)了解SQL Server数据库的逻辑结构和物理结构; (2)了解表的结构特点; (3)了解SQL Server的基本数据类型; (4)了解空值概念; (5)学会在企业管理器中创建数据库和表; (6)学会使用T-SQL语句创建数据库和表。 (7)学会使用T-SQL语句更新数据。 (7)学会使用T-SQL语句创建多种查询。 实验准备 首先要明确,能够创建数据库的用户必须是系统管理员,或是被授权使用CREATE DATABASE语句的用户。 其次创建数据库必须要确定数据库名、数据库大小(最初的大小、最大的大小、是否允许增长及增长方式)和存储数据库的文件。 然后,确定数据库包含哪些表,以及所包含的各表的结构,还要了解SQL Server的常用数据类型,以创建数据库的表。 此外还要了解两种常用的创建数据库、表的方法,即在企业管理器中创建和使用T-SQL的CREATE DA TABASE语句。 实验内容 假设有5本书 设有一图书馆数据库,其中包括3个表,即图书表、读者表和借阅表。三个表的结构如图: 列名说明数据类型约束说明 书号图书唯一的编号定长字符串,长度为10 主键 书名图书的名称定长字符串,长度为50 空值 作者图书的编著者名定长字符串,长度为30 空值 出版社图书的出版社定长字符串,长度为30 空值 单价出版社确定的图书的单价浮点型,Float 空值 读者表结构 假设有10位读者

列名说明数据类型约束说明 读者号读者唯一的编号定长字符串,长度为10 主键 姓名读者姓名定长字符串,长度为8 非空值 性别读者性别定长字符串,长度为2 非空值 办公电话读者办公电话定长字符串,长度为8 空值 部门读者所在部门定长字符串,长度为30 空值 列名说明数据类型约束说明 读者号读者的唯一编号定长字符串,长度为10 外码,引用读者表的 主键 书号图书的唯一编号定长字符串,长度为20 外码,引用图书表的 主键 借出日期借出图书的日期定长字符串,长度为8 非空值 归还日期归还图书的日期定长字符串,长度为8 空值 主键为:(读者号,图书号)(1)用Sql语句创建图书馆数据库 Create database Lab05 (2)用Sql语句创建上述3个表 create table book ( bookId char(10)primary key, bookName varchar(50), bookWriter varchar(30), bookPublish varchar(30), bookPrice float ) create table reader ( readerId char(10) primary key, readerName varchar(8)not null, readerSex char(2)not null, readerOfficeTel char(8), readerDepartment varchar(30) ) create table 借阅表 ( readerId char(10), bookId char(10), checkOutTime char(8), checkInTime char(8), primary key(readerId,bookId), foreign key (readerId) references reader(readerId), foreign key (bookId) references book(bookId), )

数据库系统原理实验报告_SQL查询语句

数据库系统原理 实验报告 :xxx 学号:xxxxxxxx 专业:xxxxx 日期:xxxxx

Lab2 一、实验目的 进一步熟悉关系数据库标准语言SQL。 二、实验环境 1)Windows 10 2)SQL Server 2017 三、实验容 给定如学生表、课程表和学生作业表所示的信息。 表1 学生表 表2 课程表 表3 学生作业表

K001 0433 60 75 75 K001 0529 70 70 60 K001 0531 70 80 80 K001 0591 80 90 90 K002 0496 80 80 90 K002 0529 70 70 85 K002 0531 80 80 80 K002 0538 65 75 85 K002 0592 75 85 85 K006 0531 80 80 90 K006 0591 80 80 80 M001 0496 70 70 80 M001 0591 65 75 75 S001 0531 80 80 80 S001 0538 60 80 写出如下SQL语句: 1.查询数据库中有哪些专业班级。(5分) Sql语句: SELECT专业班级 FROM学生表; 查询结果截图: 2.查询在1986年出生的学生的学号、和出生日期。(5分) Sql语句: SELECT学号,,出生日期 FROM学生表 WHERE出生日期LIKE'1986%'; 查询结果截图:

3.查询05级的男生信息。(5分) Sql语句: SELECT* FROM学生表 WHERE学号LIKE'05%'AND性别='男'; 查询结果截图: 4.查询没有作业成绩的学号和课程号。(5分) Sql语句: SELECT学号,课程号 FROM学生作业表 WHERE作业1成绩IS NULL OR作业2成绩IS NULL OR作业3成绩IS NULL; 查询结果截图: 5.查询选修了K001课程的学生人数。(5分) Sql语句: SELECT COUNT(DISTINCT学号) FROM学生作业表 WHERE课程号='K001'; 查询结果截图:

SQL查询实验报告讲解

实验题目:sql查询——简单查询 【实验目的与要求】 一、实验目的 1. 熟练掌握单表查询的select语法结构; 2. 通过观察查询结果, 体会select语句的实际应用。 二、实验要求 1.实验前做好上机实验的准备,针对实验内容,认真复习与本次实验有关的知识,完成 实验内容的预习准备工作。 2.能认真独立完成实验内容。 3.实验后做好实验总结,根据实验情况完成实验报告。 【实验环境】 pc机、windows xp系统+sql server 2005 【实验内容】 基于实验一建立的educ 数据库,用transact-sql 语句实现如下查询: 1.选修了课程的学生学号; 2.计算机系的学生; 3.计算机系学生的学号和姓名; 4.计算机系和信息系的男生信息;(提示:逻辑运算符的优先级顺序) 5.选修上课编号为1且成绩在80-90 之间的学生学号和成绩,并将成绩乘以系数0.75 输出;(提示:新输出项要命名列标题) 6.没有成绩的学生的学号和上课编号; 7.选修上课编号为1或4的学生的学号和成绩,并要求对查询结果按成绩的降序排列, 如果成绩相同则按学号的升序排列;(提示:查询输出哪几项) 8.1995年1月1日(含)以后出生的学生信息,并按姓氏拼音字母顺序从前往后排列(注: 默认排序规则通常是chinese_prc_ci_as,汉字按照汉语拼音的字典顺序来排序:首先按拼 音,拼音相同按声调,声调相同按笔画数。) 9.姓李和刘的学生的信息; 10.不姓张王李刘的学生的学号、姓名和性别; 11.选修课程的学生人数; 12.选修上课编号为1的学生的最高分; 13.每位学生所修课程的平均分; 14.选修两门以上课程的学生; 15.总成绩大于200 分的学生的学号和总成绩。(提示:group by分组统计) 【实验方法和步骤】 1.新建查询,在查询编辑器中依次按照如上实验内容编写select语句完成查询。 2.每执行一条查询语句,在查询结果网格中查看执行结果是否正确。 【实验结果】 select distinct sno from student_course select * from student where dno = 计算机 select sno,sname from student where dno = 计算机 select * from student where sex =男 and dno in(计算机,信息) select sno,0.75*score as 成绩from student_course where tcid =1 and score between 80 and 90

新SQL——SERVER实验练习答案

SQL-Server实验 答案 上海师范大学计算机系

目录 第一部分企业管理器的使用 (3) 试验一注册服务器.................................................................................. 错误!未定义书签。 试验二创建数据库.................................................................................. 错误!未定义书签。 试验三创建表.......................................................................................... 错误!未定义书签。 实验四数据输入...................................................................................... 错误!未定义书签。 实验五登录到数据库服务器.................................................................. 错误!未定义书签。第二部分SQL语言 (3) 第二部分SQL语言 (3) 试验一数据库创建 (3) 试验二创建表 (3) 试验三创建数据完整性 (5) 试验四数据完整性试验 (6) 试验五索引 (10) 试验六更新数据 (11) 试验七 Sql 查询语句 (12) 试验八视图 (15) 试验九安全性控制实验 (16) 试验十存储过程 (17) 试验十二触发器 (21) 试验十二恢复技术 (25) 试验十三事务 (26) 试验十四锁 (27)

SQL语句练习及答案

sql语句练习题1 数据库有如下四个表格: student(sno,sname,sage,ssex,sdpt) 学生表 系表〔dptno,dname〕 course(cno,cname, gradet, tno) 课程表 sc(sno,cno,score) 成绩表 teacher(tno,tname) 教师表 要求:完成以下操作 1.查询姓"欧阳"且全名为三个汉字的学生的姓名。 select sname from student where sname like “欧阳__‟; 2.查询名字中第2个字为"阳"字的学生的姓名和学号。 select sname,sno from student where sname like '_阳%';3.查询所有不姓刘的学生姓名。 select sname,sno,ssex from student where sname not like “刘%〞; 4.查询db_design课程的课程号和学分。 select cno,ccredit from course where cname like 'db_design' 5.查询以"db_"开头,且倒数第3个字符为i的课程的详细情况。 select * from course where cname like 'db%i_ _'; 6.某些学生选修课程后没有参加考试,所以有选课记录,但没有考试成绩。查 询缺少成绩的学生的学号和相应的课程号。

select sno,cno from sc where grade is null; 7.查所有有成绩的学生学号和课程号。 select sno,cno from sc where grade is not null; 8.查询计算机系年龄在20岁以下的学生姓名。 select sname from student where sdept= 'cs' and sage<20; 9.查询选修了3号课程的学生的学号及其成绩,查询结果按分数降序排列。 select sno, grade from sc where cno= ' 3 ' order by grade desc;10.查询学生总人数。 select count(*) from student; 11.查询选修了课程的学生人数。 select count(distinct sno) from sc; 12.计算1号课程的学生平均成绩。 select avg(grade) from sc where cno= ' 1 '; 13.查询选修1号课程的学生最高分数。 select max(grade) from sc where cno= ' 1 '; 14.查询学生200215012选修课程的总学分数。 select sum(grade) from sc,course where sno= ' 200215012 ' and sc o=course o;

数据库系统原理实验报告_SQL查询语句

数据库系统原理 实验报告 :XXX 学号:XXXXXXXX 专业:XXXXX 日期:XXXXX

Lab2 一、实验目的 进一步熟悉关系数据库标准语言SQL。 二、实验环境 1) Win dows 10 2) SQL Server 2017 三、实验容 给定如学生表、课程表和学生作业表所示的信息。

写出如下SQL语句: 1 •查询数据库中有哪些专业班级。(5分) Sql语句: SELECT专业班级] FROM学生表;] 查询结果截图: 1 L竜工” 3 4主郴 呂生椒6 电子06 ?电子06 2. 查询在1986年出生的学生的学号、和出生日期。(5分) Sql语句: SELECT学号”岀生日期 FROM学生表 WHER岀生日期LIKE '1986%'; 查询结果截图: 里岁竝名出生日期 1 :0433 i 那腿1936-O&-13 k-Min ■■■JJ-MI J Z 0W1 弓* 志毘1S96-O9-1Q 3 CS® 王:朗虽1906-11-Ot 3. 查询05级的男生信息。(5分) Sql语句: SELECT * FROM学生表 WHER学号LIKE '05%' AND性别='男'; 查询结果截图:

学号出主曰期 L臭会计061904-01-271350222 X XXX 20531生物061906-09-101331 ?5£X XXX 0592电子匸190&-11-OI BULL 4•查询没有作业成绩的学号和课程号。(5分) Sql语句: SELECT学号,课程号 FROM学生作业表 WHERE作业1成绩IS NULL OR作业2成绩IS NULL OR作业3成绩IS NULL; 查询结果截图: 團结果歸植 学号课程耳 ■lu M Mi a »■ .ii u uuaj 1 [曲轉iSOOl ■ inn ■ nwa 5. 查询选修了K001课程的学生人数。(5分) Sql语句: SELECTCOUNfDISTINCT 学号) FROM学生作业表 WHER课程号='K001'; 查询结果截图: ®结果嗣消息 (无列酉 ■ ■■ mw nwra mri f m r [ 1 4 Lfl gp r ! j ■9 j !■!・』 6. 查询数据库中共有多少个班级。(5分) Sql语句: SELECTCOUNfDISTINCT 专业班级)| FROM学生 表; 查询结果截图: S结果 7.查询选修三门以上(含三门)课程的学生的学号和作业1平均分、作业2平均分和作业3平均分。(5分) Sql语句: SELECT学生作业表.学号,AVG作业1成绩),AVQ作业2成绩),AVQ作业3成绩) FROM学生表,学生作业表 WHERE学生表.学号=学生作业表.学号

数据库中SQL查询语句习题含的答案

数据库中SQL查询语句习题含的答案

查询问题:设教学数据库Education有三个关系: 学生关系S(SNO,SNAME,AGE,SEX,SDEPT);学习关系SC (SNO,CNO,GRADE);课程关系C(CNO,CNAME,CDEPT,TNAME) (1)检索计算机系的全体学生的学号,姓名和性别;(2)检索学习课程号为C2的学生学号与姓名; (3)检索选修课程名为“DS”的学生学号与姓名; (4)检索选修课程号为C2或C4的学生学号; (5)检索至少选修课程号为C2和C4的学生学号; (6)检索不学C2课的学生姓名和年龄; (7)检索学习全部课程的学生姓名;(8)查询所学课程包含学生S3所学课程的学生学号。 (1)检索计算机系的全体学生的学号,姓名和性别;SELECT Sno,Sname,Sex FROM S WHERE Sdept =’CS’;(2)检索学习课程号为C2的学生学号与姓名; (3)检索选修课程名为“DS”的学生学号与姓名 本查询涉及到学号、姓名和课程名三个属性,分别存放在S和C表中,但S和C表没有直接联系,必须通过SC表建立它们二者的联系。 C →SC → S 基本思路: (1)首先在C表中找出“DS”课程的课程号Cno; (2)然后在SC表中找出Cno 等于第一步给出的Cno 集合中的某个元素Cno; (3)最后在S关系中选出Sno 等于第二步中Sno 集合中某个元素的元组,取出Sno 和Sname送入结果表列。 2.SELECT S.Sno,Sname FROM S,SC WHERE S.Sno=SC.Sno AND https://www.360docs.net/doc/d419204785.html,o=‘C2’; 1.SELECT Sno,Sname FROM S WHERE Sno IN ( SELECT Sno FROM SC WHERE Cno=‘C2’)

相关文档
最新文档