查询学生信息表中的所有信息
简单查询练习题
--班主任用户,查询整班信息。
select * from studentinformation where sno like '073031%'
--管理员用户,查询未分配单位的教师的姓名和工号
select 姓名=tname,工号=tno from teacherinformation where tdepartment is null
--查询个人信息,为该用户提供姓名、学号、性别、专业、班级等信息。
select * from studentinformation where sno='07303101'
--管理员用户,根据工号查询教师的所有信息
select * from teacherinformation where tno='0000001'
select ssno,'java程序设计'=ssscore from studentscore
where ssno like '073031%'and sscid='s07303-15'
--任课教师用户查询某班学生单科总成绩、平均成绩、最高成绩、最低成绩及参score),平均成绩=avg(ssscore),
查询所有学生的所有信息
select * from StudentInformation
查询学生表中所有学生的姓名和学号。
select SName,SNo from studentInformation
--查询学生表中所有学生的姓名和学号。并为列起别名“姓名”,“学号”
select sname as'姓名',sno as'学号'from studentinformation
2022年中国石油大学(北京)计算机科学与技术专业《数据库原理》科目期末试卷B(有答案)
2022年中国石油大学(北京)计算机科学与技术专业《数据库原理》科目期末试卷B(有答案)一、填空题1、采用关系模型的逻辑结构设计的任务是将E-R图转换成一组______,并进行______处理。
2、若事务T对数据对象A加了S锁,则其他事务只能对数据A再加______,不能加______,直到事务T释放A上的锁。
3、数据库恢复是将数据库从______状态恢复到______的功能。
4、设在SQL Server 2000环境下,对“销售数据库”进行的备份操作序列如下图所示。
①出现故障后,为尽可能减少数据丢失,需要利用备份数据进行恢复。
首先应该进行的恢复操作是恢复_____,第二个应该进行的恢复操作是恢复_____。
②假设这些备份操作均是在BK设备上完成的,并且该备份设备只用于这些备份操作,请补全下述恢复数据库完全备份的语句RESTORE_____FROM BKWITH FILE=1,_____;5、数据管理技术经历了______________、______________和______________3个阶段。
6、事务故障、系统故障的恢复是由______完成的,介质故障是由______完成的。
7、从外部视图到子模式的数据结构的转换是由______________实现;模式与子模式之间的映象是由______________实现;存储模式与数据物理组织之间的映象是由______________实现。
8、“为哪些表,在哪些字段上,建立什么样的索引”这一设计内容应该属于数据库设计中的______阶段。
9、____________、____________、____________和是计算机系统中的三类安全性。
10、数据库管理系统的主要功能有______________、______________、数据库的运行管理以及数据库的建立和维护等4个方面。
二、判断题11、求事务在读取数据前先加共享锁,且直到该事务执行结束时才释放相应的锁,这种封锁协议是二级封锁协议。
SQL 单表查询
实验三单表查询一、实验目的掌握简单SQL 查询语句的应用,包括like、top、order by、compute 、聚集函数的应用。
二、实验内容1、基本查询(1)查询学生表中全体学生的全部信息。
select*from Student_20103266;(2)检索全体学生的学号、姓名。
select Sno,Snamefrom Student_20103266;2、查询时改变列标题的显示检索全体学生的学号、姓名、家庭地址信息,并分别加上“学生”、“学号”、“家庭地址”的别名信息。
select Sno'学号',Sname'姓名',Home_addr'家庭地址'from Student_20103266;3、条件查询(1)查询成绩大于80分的学生的学号及课程号、成绩。
SELECT Sno,Cno,Gradefrom SC_20103266where Grade>80;(2)查询成绩介于75~80分的学生的学号及课程号、成绩。
SELECT Sno,Cno,Gradefrom SC_20103266where Grade between 75 and 80;(3)查询选修了课程号为“002”,且成绩大于80的学生的学号。
SELECT Snofrom SC_20103266where Cno='002'AND Grade>80;(4)某些学生选修某门课程后没有参加考试,所以有选课记录,但没有考试成绩,下面我们来查一下缺少成绩的学生的学号和相应的课程号。
SELECT Sno,Cnofrom SC_20103266where Grade IS NULL;4、基于IN子句的数据查询从课程表中查询出“高数”、“C语言程序设计”的所有信息。
SELECT*FROM Course_20103266where Cname IN('高数','C语言程序设计');5、基于BETWEEN。
数据库语言查询练习题(4-25)
单表查询:1、查询<学生信息表>,查询学生"张三"的全部基本信息2、查询<学生信息表>,查询学生"张三"和”李四”的基本信息3、查询<学生信息表>,查询姓"张"学生的基本信息4、查询<学生信息表>,查询姓名中含有"四"字的学生的基本信息5、查询<学生信息表>,查询姓名长度为三个字,姓“李”,且最后一个字是“强”的全部学生信息。
6、查询<学生信息表>,查询姓"张"或者姓”李”的学生的基本信息。
7、查询<学生信息表>,查询姓"张"并且"所属省份"是"北京"的学生信息8、查询<学生信息表>,查询"所属省份"是"北京"、”新疆”、”山东”或者"上海"的学生的信息9、查询<学生信息表>,查询姓"张",但是"所属省份"不是"北京"的学生信息Select *10、查询<学生信息表>,查询全部学生信息,并按照“性别”排序,性别相同的情况下按照“所属省份”排序,所属省份相同的情况下再按照“班级”排序11、查询<学生信息表>,查询现有学生都来自于哪些不同的省份12、查询<学生选修信息表>,查询没有填写成绩的学生的学号、课程号和成绩13、查询<学生选修信息表>,查询全部填写了成绩的学生的选修信息,并按照“成绩”从高到低进行排序聚合查询1、统计<学生信息表>,统计共有多少个学生2、统计<学生信息表>,统计年龄大于20岁的学生有多少个3、统计<学生信息表>,统计入学时间在1980年至1982年的学生人数4、统计<学生选修信息表>,统计学号为"S001"的学生的平均成绩5、统计<学生选修信息表>,统计学号为"S001"的学生的总成绩6、统计<学生选修信息表>,查询课程号为”C001”的课程的最高成绩7、统计<学生信息表>,查询所有学生中的最大年龄是多少分组查询练习1、统计<学生选修信息表>,统计每个课程的选修人数2、统计<学生选修信息表>,统计每个同学的总成绩3、统计<学生信息表>,统计每个班级中每种性别的学生人数,并按照班级排序4、统计<学生选修信息表>,统计每门课程的平均成绩,并按照成绩降序排序5、统计<学生选修信息表>,显示有两门以上课程不及格的学生的学号6、统计<学生信息表>,统计每个班级中的最大年龄是多少嵌套查询练习1、用子查询实现,查询选修“高等数学”课的全部学生的总成绩2、用子查询实现,统计<学生选修信息表>,显示学号为"S001"的学生在其各科成绩中,最高分成绩所对应的课程号和成绩3、用子查询实现,查询2班选修"数据库技术"课的所有学生的成绩之和4、用子查询实现,查询3班"张三"同学的"测试管理"成绩一、单表查询练习1、查询<学生信息表>,查询学生"张三"的全部基本信息Select *from A_studentinfowhere sname='张三'2、查询<学生信息表>,查询学生"张三"和”李四”的基本信息Select *from A_studentinfowhere sname='张三'or sname='李四'3、查询<学生信息表>,查询姓"张"学生的基本信息Select *from A_studentinfowhere sname like '张%'4、查询<学生信息表>,查询姓名中含有"四"字的学生的基本信息Select *from A_studentinfowhere sname like '%四%'5、查询<学生信息表>,查询姓名长度为三个字,姓“李”,且最后一个字是“强”的全部学生信息。
实验三数据查询(参考答案)
实验三数据查询(参考答案)实验目的□学会利用T_SQL语句中SELECT进行数据查询。
□掌握利用T_SQL 语句进行数据查询的基本方法。
实验内容有以下数据表表名:tudent属性列t_idt_nmt_e某t_birtht_coret_datet_fromt_dpidt_mnt使用T-SQL语句进行数据查询(注:学生班级为学号的前6位)1.显示所有学生的学号、姓名、性别、入学年份和班级(学号前6位)。
Selectt_id学号,t_nm姓名,t_e某性别,year(t_date)入学年份,left(t_id,6)班级Fromtudent2.显示前25%条学生记录信息。
Selecttop25percent某fromtudent3.查询tudent表中2022年及以后入学的学生信息。
Select某fromtudentwhereyear(t_date)>=20224.查询选修了1002号课程且成绩在60以下的学生学号。
Selecttudent.t_idfromtudentjoinlt_coueontudent.t_id=lt_coue. t_idWherec_id='1002'andcore<605.查询所有由三个字组成的“王”姓学生信息。
Select某fromtudentwheret_nmlike'王__'6.查询选修了1001号课程且成绩在60到80之间的学生选课信息。
Select某fromlt_couewherec_id='1001'andcorebetween60and807.查询所有张,王,李,赵姓的学生的学号、姓名、性别。
Selectt_id,t_nm,t_e某fromtudentwheret_nmlike'[张王李赵]%'8.查询陕西籍学生,将结果保存在新表t_han某i。
Select某intot_han某ifromtudentwheret_fromlike'%陕西%'9.查询选修了“数据结构”课程的学生学号、姓名及课程成绩。
福建省信息技术会考《数据库基础》选择题
2013年6月福建省信息技术会考数据库选择题选择题共计348题,删除重复150题,删除错误62题,剩136题----------第10题在关系型数据库中,数据表中的列称为A 记录B 字段C 模型D 文件答案: B第11题一个商店有多名员工,而一名员工只服务于一家商店,则商店与员工之间的联系类型属于A 多对一联系B 一对多联系C 一对一联系D 多对多联系答案: B第12题数据库管理系统的英文缩写是A DBMSB DBFC MDBD IBM答案: A第13题图书馆使用"图书管理系统"管理图书资源,"图书管理系统"属于A 数据库管理系统C 数据库应用系统D 手工管理系统答案: C第14题下列不属于常用数据模型的是A 网状模型B 层次模型C 交叉模型D 关系模型答案: C第15题下列不属于数据库管理系统的是A AccessB FoxProC SQL ServerD Linux答案: D第16题从现实世界到信息世界,须建立的模型A 数据模型B 物理模型C 概念模型D 逻辑模型答案: C第17题下列属于信息世界用到的术语是A 属性C 记录D 关键字答案: A第18题在"学生"数据表中有如下字段:学号、姓名、性别、所在班级。
其中适合设置为关键字的字段是A 学号B 姓名C 性别D 所在班级答案: A第19题若要查询"学生表"中所有来自"余庆小学"的学生姓名和性别,正确的SQL命令是A delete 姓名,性别 from 学生表 where 学校名称='余庆小学'B select 姓名,性别 from 学生表 where 学校名称='余庆小学'C insert into 姓名,性别 from 学生表 where 学校名称='余庆小学'D create table 姓名,性别 from 学生表 where 学校名称='余庆小学'答案: B第20题下列属于Access数据库文件的是A 图书管理系统.exeB 图书管理系统.zipC 图书管理系统.apkD 图书管理系统.mdb答案: D第21题下列操作中,不属于修改数据表结构的是B 修改记录数据C 修改字段名D 修改字段宽度答案: B第22题用"编号、姓名、性别、工资"来描述信息,其中"姓名"和"工资"的数据类型可定义为A 文本型和货币型B 文本型和日期/时间型C 数字型和货币型D 数字型和文本型答案: A第23题数据管理技术发展的三个阶段,具有数据结构化特点的发展阶段是A 人工管理阶段B 文件系统阶段C 数据库系统阶段D 资源管理器阶段答案: C第27题学校使用"学籍管理系统"管理学籍,学籍管理系统属于A 数据库管理系统B 数据库C 数据库应用系统D 手工管理系统答案: CA 网状模型B 层次模型C 交叉模型D 关系模型答案: D第29题下列符合二维表特点的是A 表中每一列都有一个唯一的字段名B 表中各列的顺序不能任意地排列C 表中允许有完全相同的记录行D 表中同列的数据类型可以不同答案: A第30题在"图书信息"数据表中有如下字段:书籍编号、书名、作者、出版社、价格。
sql查询举例(含答案)
查询练习一、简单查询(无条件查询):1、查询“学生档案”表中所有的记录SELECT * FORM 学生档案2、查询“学生档案”表中全体学生的姓名、学号、家庭地址SELECT 姓名, 学号, 家庭地址 FROM 学生档案二、有条件查询1、查询“成绩管理”表中语文成绩在80分以下的学生的学号。
SELECT 学号 FROM 成绩管理 WHERE 语文<802、查询“成绩管理”表中语文成绩在80分到90分之间的学生的学号,语文,数学,英语成绩。
SELECT 学号,语文,数学,英语FROM成绩管理WHERE 语文 >= 80 AND 语文<=90==(语文 BETWEEN 80 AND 90)3、查询“成绩管理”表中数学成绩不在75分到85分之间的学生的学号,语文,数学,英语成绩。
SELECT 学号,语文,数学,英语FROM 成绩管理WHERE 数学 NOT BETWEEN 75 AND 854、查询“学生档案”表中李成刚,刘艺梅,郑莉三名学生的信息。
SELECT *FROM 学生档案WHERE 姓名 IN (“李成刚”,“刘艺梅”,“郑莉”)==(姓名 =“李成刚” OR 姓名=“刘艺梅” OR 姓名=“郑莉”)5、查询“学生档案”表中所有姓张的学生的姓名、学号和性别SELECT 姓名,学号,性别 FROM学生档案WHERE 姓名 LIKE “张*”6、查询“学生档案”表中所有姓张且全名为三个汉字的学生的姓名SELECT 姓名FROM 学生档案WHERE姓名 LIKE “张??”7、查询“学生档案”表中第二个字符为“建”字的学生的学号和姓名SELECT 学号,姓名FROM 学生档案WHERE姓名 LIKE “?建*”8、查询“学生档案”表中家庭住址为“人民路”和“育才路”的学生学号,姓名,性别和家庭住址。
SELECT 学号,姓名,性别,家庭住址FROM 学生档案WHERE家庭住址 LIKE “人民路*” OR家庭住址 LIKE “育才路*”9、查询“学生档案”表中所有团员的学生班级和姓名。
《学生基本信息表》指标解释及填报说明
24、入学年月: 201509
25、入学方式: 就近入学
26、就读方式: 走读
27、学生来源: 正常入学
28、现住址: 学生现在居住的地址,具体 到村庄、街区门牌号。 29、通信地址: 可以联系到学生的地址。 30、家庭住址: 学生的户籍地址。 (三个可统一。)
31、联系电话: 学生的联系固定电话或者手 机号码。(只能填一个,最好是 固定电话)
《学生基本信息表》指标解 释及填报说明
一年级
1、姓名: 在公安户籍管理部门正式登 记注册、人事档案中正式记载的 中文姓名(包括外国人正式的汉 字姓名)
2、性别: 男、女。
3、出生日期: 在公安户籍部门正式登记注 册、 人事档案中记载的时间日, 年填4位数、月填2位数字,日期 填2位数字。如:“20110101” 。
38、是否进城务工人员随迁子女:
是指户籍登记在外省(区、市)、 本省外县(区)的乡村,随务工父母到 输入地的城区、镇区(同住)并接受义 务教育的适龄儿童少年,填“是、否”。 (只要户口不在本县的都算)
39、是否孤儿: 以当地有认定资格的部门出 具的证明为准填写,填“是、 否”。(是的话就要上交证明复 印件)
50、关系: 家庭成员或监护人与学生之间 的关系,填“父亲、母亲、祖父、 祖母、外祖父、外祖父母、兄弟 姐妹、其他”。
51、关系说明:关系选择为其他 时,填写对关系的说明。(没有 就不填)
52、民族: 家庭成员或监护人的民族,如: 汉族、蒙古族。
53、工作单位:填写家庭成员或 监护人的工作单位名称。 (没有 就不填)
9、身份证件号: 身份证件类型对应的证件号 码。身份证件类型为“其他”以 外的证件类型时,身份证件号必 填。
10、港澳台侨外:
用mysql创建学生表
用mysql创建学生表MySQL是一种流行的关系型数据库管理系统,使用广泛,尤其是在Web应用程序中。
本文将介绍如何使用MySQL创建一个学生表,以便在学校或其他机构中管理学生信息。
1. 安装MySQL在创建学生表之前,您需要安装MySQL。
您可以从MySQL官方网站下载MySQL安装程序。
安装程序提供了图形用户界面,可帮助您完成MySQL的安装过程。
2. 创建数据库一旦您安装了MySQL,您需要创建一个数据库来存储学生表。
您可以使用MySQL命令行界面或MySQL Workbench创建数据库。
使用MySQL命令行界面创建数据库:1. 打开命令行界面。
2. 输入以下命令:```mysql -u root -p```这将提示您输入MySQL的root用户密码。
3. 输入以下命令来创建一个名为“students”的数据库:```CREATE DATABASE students;```4. 您可以使用以下命令来确认数据库是否已创建:```SHOW DATABASES;```使用MySQL Workbench创建数据库:1. 打开MySQL Workbench。
2. 单击“新建连接”。
3. 输入MySQL的root用户密码。
4. 单击“测试连接”。
5. 单击“新建模式”。
6. 输入“students”作为模式名称。
7. 单击“应用”。
3. 创建学生表一旦您创建了数据库,您需要创建一个学生表来存储学生信息。
您可以使用MySQL命令行界面或MySQL Workbench创建学生表。
使用MySQL命令行界面创建学生表:1. 打开命令行界面。
2. 输入以下命令:```mysql -u root -p```这将提示您输入MySQL的root用户密码。
3. 输入以下命令来选择“students”数据库:```USE students;```4. 输入以下命令来创建一个名为“student_info”的表:```CREATE TABLE student_info (id INT(11) NOT NULL AUTO_INCREMENT,name VARCHAR(50) NOT NULL,age INT(11) NOT NULL,gender VARCHAR(10) NOT NULL,PRIMARY KEY (id));```使用MySQL Workbench创建学生表:1. 打开MySQL Workbench。
SQL语句 查询 统计
SQL语句查询统计悬赏分:100 - 解决时间:2008-6-18 17:591. 查询学生表中所有学生的详细信息;2. 查询所有学生的学号、姓名、年龄;3. 查询年龄在18岁至20岁之间(含18和20岁)的信息系(IS)学生的学号、姓名、年龄及系名;4. 查询所有姓王或姓李的学生的姓名、学号、年龄;5. 查询成绩不及格的学生学号(要求没有重复);6. 查询信息系(IS)或计算机系(CS)的学生姓名、年龄、系名,结果按系名升序,同一专业按姓名降序排序;7. 查询所有信息系学生的总人数;8. 查询选修了2号课程的学生人数、最高分、平均分;9. 查询各门课程的课程号、选课人数及平均分;10. 查询有1门以上不及格的学生学号和不及格课程门数;11. 统计各个课程的平均分12. 统计各个课程的平均分(按平均分降序排列)13. 统计每个学生的选课数量14. 统计每个学生的选课数量(按选课数量升序排列)15. 统计各个课程的平均分(显示课程名称和平均分)16. 统计各个课程的平均分(显示课程编号、名称和平均分)17. 统计平均分在70分以上的所有课程的平均分(显示课程名称和平均分)18. 统计每个学生的选课数量(显示学生姓名和选课数量)19. 统计每个学生的选课数量(显示学生学号、姓名和选课数量)20. 统计至少选了4门课的所有学生的选课数量(显示学生姓名和选课数量)1.select * from 学生表2.select 学号,姓名,年龄from 学生表3.select 学号,姓名,年龄from 学生表where 年龄between 18 and 20 and 系别=‘IS’4.select 学号,姓名,年龄from 学生表where 姓名like '李%' or 姓名like '李%'5 select distinct 学号from 学生表where 成绩<606. select 姓名,年龄,系名from 学生表where 系in ('IS','CS') order by 系名ASC,姓名desc7 select count(*) from 学生表where 系= 'IS'8 select count(*) ,max(分数),min(分数)from 学生表9 select 课程号,count(*),avg(分数)from 学生表group by课程号10 select 学号,count(*)from 学生表11 select avg(分数),课程号from 学生表group by 课程号12 select avg(分数),课程号from 学生表group by 课程号order by avg(分数)13 select count(*),学号from 学生表group by 学号14 select count(*)a,学号from 学生表group by 学号order by a15 select 课程名称,avg(分数)from 学生表group by 课程名16 select 课程标号,课程名称,avg(分数)from 学生表group by 课程号,课程名17 select 课程名称,avg(分数)a from 学生表where a >7018 select 姓名,count(*) a from 学生表group by 姓名19 select 学号,姓名,count(*) a from 学生表group by 学号,姓名20select 学生姓名,count(*) a from 学生表where a> 4 group by 学生姓名三、论述题1、现有关系数据库如下:学生(学号,姓名,性别,专业)课程(课程号,课程名,学分)学习(学号,课程号,分数)分别用SQL语句实现下列小题1.检索所有选修了课程号为“C112”的课程的学生的学号和分数;2.检索“英语”专业学生所学课程的信息,包括学号、姓名、课程名和分数;3.检索“数据库原理”课程成绩高于90分的所有学生的学号、姓名、专业和分数;4.检索没学过课程号为“C135”课程的学生信息,包括学号,姓名和专业;5.检索至少学过课程号为“C135”和“C219”的课程的学生的信息,包括学号、姓名和2. SELECT xsb.xh,xm,kcm,fs FROM xsb,kcb,xxb WHERE xsb.xh=xxb.xh AND kcb.kch=xxb.kch AND zy='外国语'3. select xsb.xh,xm,zy,fs FROM xsb,kcb,xxb where xsb.xh=xxb.xh and kcm='大学英语' and fs>904. select xsb.xh,xm,zy FROM xsb,kcb,xxb where xsb.xh=xxb.xh and xsb.xh not in(1,5)SELECT xh,xm,zy FROM xsb WHERE xh NOT IN (SELECT xh FROM xxb WHERE kch='C135')5. SELECT xsb.xh,xm,zy FROM xsb WHERE xsb.xh IN (SELECT xsb.xh FROM xxb X1,xxb X2 WHERE X1.xh=X2.xh AND X1.kch='C135' AND X2.kch='C219')2、已知三个表,其表名和字段如下:S(学号,姓名,性别),C(课程编号,课程名称,学时),SC(学号,课程编号,分数)。
《大学计算机基础》35 - 数据库技术应用基础:数据库概述测试题含答案
《大学计算机基础》35 - 数据库技术应用基础:数据库概述测试题含答案您的姓名: [填空题] *_________________________________一、选择题1、下面关于数据描述中错误的是()。
[单选题] *A、数据和它的语义是不可分的B、数据就是数字(正确答案)C、数据是数据库中存储的基本对象D、数据是描述事物的符号记录2、数据库管理系统的目标是()地共享数据。
[单选题] *A、简单B、安全C、高效D、以上所有(正确答案)3、定义了物理存储中数据是怎样在哪里组织的模式是()。
[单选题] *A、外模式B、内模式(正确答案)C、模式D、以上都不对4、内模式的改变不会影响到(外)模式,这称为()。
[单选题] *A、物理独立性(正确答案)B、逻辑独立性C、内部独立性D、外部独立性5、模式的改变不会影响到外模式(或应用程序),这称为()。
[单选题] *A、物理独立性B、逻辑独立性(正确答案)C、共享独立性D、内外独立性6、数据库系统的多级结构中,不包含()。
[单选题] *A、模式B、外模式C、中模式(正确答案)D、内模式7、下列选项中,不属于数据库技术管理数据特点的是()。
[单选题] *A、数据独立性强B、集中控制数据C、提供数据安全保障D、数据冗余很高(正确答案)8、MySQL是一个()。
[单选题] *A、数据库B、数据库管理系统(正确答案)C、数据库系统D、硬件9、数据库管理系统是一种()。
[单选题] *A、采用数据库技术的计算机系统B、包括数据库管理员、计算机软硬件以及数据库系统C、位于用户和操作系统之间的一种数据管理软件(正确答案)D、包括操作系统在内的数据管理软件系统10、数据库系统的核心是()。
[单选题] *A、数据库B、数据库管理系统(正确答案)C、数据模型D、应用程序11、DBS是指()。
[单选题] *A、数据B、数据库C、数据库系统(正确答案)D、数据库管理系统12、DBA是指()。
sql查询实验报告
sql查询实验报告SQL查询实验报告一、引言SQL(Structured Query Language)是一种用于管理和操作关系型数据库的语言。
在数据库管理系统中,SQL查询是一项重要的操作,通过使用SQL查询语句可以从数据库中检索所需的数据。
本实验旨在通过实际操作,掌握SQL查询的基本语法和常用技巧。
二、实验目的1. 熟悉SQL查询语句的基本结构和语法;2. 掌握SQL查询中的条件筛选、排序和聚合等操作;3. 学会使用SQL查询语句从数据库中检索所需的数据。
三、实验环境本次实验使用MySQL数据库管理系统,通过MySQL Workbench进行操作。
四、实验步骤1. 连接数据库:打开MySQL Workbench,点击“新建连接”,输入数据库连接信息,成功连接到目标数据库。
2. 创建测试表:创建一个名为“students”的表,包含字段“id”(学生编号)、“name”(学生姓名)、“gender”(学生性别)、“age”(学生年龄)和“score”(学生成绩)。
3. 插入测试数据:向“students”表中插入若干测试数据,包括学生的编号、姓名、性别、年龄和成绩。
4. 执行SQL查询语句:使用SQL查询语句从“students”表中检索所需的数据。
五、实验结果与分析1. 查询所有学生的信息:SELECT * FROM students;通过执行以上查询语句,可以获取到“students”表中所有学生的信息,包括学生的编号、姓名、性别、年龄和成绩。
2. 查询成绩大于80分的学生信息:SELECT * FROM students WHERE score > 80;以上查询语句中的WHERE子句用于筛选成绩大于80分的学生信息,通过执行该语句,可以获取到符合条件的学生的信息。
3. 查询男生的平均成绩:SELECT AVG(score) FROM students WHERE gender = '男';以上查询语句中的AVG函数用于计算符合条件的学生的平均成绩,通过执行该语句,可以获取到男生的平均成绩。
数据查询
数据查询实验【1】在XS表中查询学生的学号及姓名。
【2】查询KC表信息。
【3】查询XSGL数据库的KC表,列出表中的所有记录,每个记录名称依次为课程编号,课程名称,课程学分及课程时数。
【4】查询所有学生的学号,姓名及年龄。
【5】查询XS表中所有学生专业。
【6】查询XS表中的学生所在专业有哪些。
(重复专业只显示一次)。
【7】查询XS表中前5条记录【8】查询XS表中前面10%行记录【9】创建一个和XS表结构相同的XSNEW表。
【10】查询所有女生的信息并将结果保存名为[女生表]的数据表。
【11】查询年龄在28岁以下的学生。
【12】查询年龄为28岁且性别为‘女’的学生。
【13】查询年龄在28到30之间的女学生的学号,姓名,年龄。
【14】查询选修了“a003”和“j003”的学生的学号。
【15】查询查询姓张学生的学号及姓名。
【16】查询选修了课程却没有成绩的学生的学号。
【17】按年龄从小到大的顺序显示女学生的姓名,性别及出生时间。
【18】查询学生总人数【19】查询选修了a003课程的学生人数。
【20】查询选修了a001号课程的学生最高分数。
【21】在XS表中分专业统计出男生和女生的平均年龄及人数,结果按性别排序。
【22】查询CJ表中平均成绩大于80分的学生的学号、平均分,并按分数【23】在CJ表中求每门课程成绩大于90分的人数,并显示统计的明细。
【24】在XS表中查询和“程明”在同一专业的所有男同学信息。
(分别用自连接和嵌套查询完成)【25】求选修了哲学课程的学生的学号及姓名及专业。
(分别用内连接和嵌套查询完成)【26】求选修了学分为5分的课程的学生的学号及姓名。
【27】在KC表中查询学分大于最小学分的课程信息。
【28】查询所有没选修a001课程的学生学号及姓名。
【29】通过子查询语句将男生表一次添加到XSNEW表中。
T-SQL编程实验【1】如果“A001”号课的平均成绩高于80分,则显示“平均成绩还不错”,否则显示“平均成绩一般”。
数据库原理与应用教程第四版 第四章答案
免责声明:私人学习之余整理,如有错漏,概不负责1.查询学生选课表中的全部数据SELECT *FROM SC2.查询计算机系的学生的姓名、年龄SELECT Sname,SageFROM StudentWHERE Sdept = '计算机系'3.查询成绩在70到80分之间的学生的学号课程号和成绩SELECT *FROM SCWHERE Grade BETWEEN 70 AND 804.查询计算机系年龄在18-20岁之间且性别为男的学生的姓名和年龄SELECT Sname,SageFROM StudentWHERE Sage BETWEEN 18 AND 20AND Sdept = '计算机系'AND Ssex = '男'5.查询课程号为‘c001’的课程的最高的分数SELECT MAX(Grade)FROM SCWHERE Cno = 'c001'6.查询计算机系学生的最大年龄和最小年龄SELECT MAX(Sage),MIN(Sage)FROM StudentWHERE Sdept = '计算机系'7.统计每个系的学生人数SELECT Sdept,COUNT(*) AS 学生人数FROM StudentGROUP BY Sdept8.统计每门课程的选课人数和考试最高分SELECT Cno,COUNT(*) AS 选课人数,MAX(Grade)FROM SCGROUP BY Cno9.统计每个学生的选课门数和考试总成绩,并按照选课门数升序显示结果SELECT Sno,COUNT(*) AS 选课门数,SUM(Grade) AS 总成绩FROM SCGROUP BY SnoORDER BY COUNT(*) ASC10.查询总成绩超过200分的学生的学号和总成绩SELECT Sno,SUM(Grade) AS 总成绩FROM SCGROUP BY SnoHAVING SUM(Grade) >20011.查询选修了'c002'号课程的学生的姓名和所在系SELECT Sname,SdeptFROM Student INNER JOIN SC ON Student.Sno = SC.SnoWHERE Cno = 'C002'12.查询成绩80分以上的学生的姓名、课程号和成绩,按成绩降序排列SELECT Sname,Cno,GradeFROM Student INNER JOIN SC ON Student.Sno = SC.SnoWHERE Grade > 80ORDER BY Grade DESC13.查询那些学生没有选修课,列出学号、姓名和所在系SELECT Student.Sno,Sname,Sdept,CnoFROM Student LEFT OUTER JOIN SC ON Student.Sno = SC.SnoWHERE Cno IS NULL14.查询与java在同一学期开设的课程的课程名和开课学期SELECT ame,c2.SemesterFROM Course c1 JOIN Course c2 ON c1.Semester = c2.SemesterWHERE ame = 'Java'-- 注意select的列与where的列应该不同15.查询与李勇年龄相同的学生的姓名、所在系和年龄SELECT s1.Sname,s1.Sdept,s1.SageFROM Student s1 JOIN Student s2 ON s1.Sage = S2.SageWHERE s2.Sname = '李勇'16.用子查询实现如下查询1)查询选修了'c001'号课程的学生的姓名和所在系SELECT Sname,SdeptFROM StudentWHERE Sno IN (SELECT Sno FROM SC WHERE Cno = 'c001')2)查询数学系成绩在80分以上的学生的学号、姓名、课程号和成绩SELECT s.Sno,Sname,Cno,GradeFROM Student s INNER JOIN SC ON s.Sno = SC.SnoWHERE Grade > 80 ANDs.Sno IN (SELECT Sno FROM SC WHERE Sdept = '数学系')3)查询计算机系考试成绩最高的学生的姓名SELECT SnameFROM Student s INNER JOIN SC ON s.Sno = SC.SnoWHERE Sdept = '计算机系' ANDgrade = (SELECT MAX(Grade) FROM SC INNER JOIN Student ON SC.Sno = Student.Sno)-- 不用子查询SELECT SnameFROM Student s INNER JOIN SC ON s.Sno = SC.SnoWHERE Sdept = '计算机系'GROUP BY Grade DESC LIMIT 1-- mysql没有top n 可以用limit替代4)查询数据结构考试成绩最高的学生的姓名、所在系、性别和成绩SELECT Sname,Sdept,Ssex,GradeFROM SC INNER JOIN Student s ON SC.Sno = s.SnoWHERE Grade = (SELECT MAX(Grade) FROM SC INNER JOIN Course c ON o = o WHERE Cname = '数据结构')AND Cno = (SELECT Cno FROM Course WHERE Cname = '数据结构')-- 使用排序SELECT Sname,Sdept,Ssex,GradeFROM Student s INNER JOIN SC ON s.Sno = SC.SnoWHERE Cno = (SELECT Cno FROM Course WHERE Cname = '数据结构')GROUP BY Grade DESC LIMIT 1-- mysql没有top n 可以用limit替代17.查询没有选修java课程的学生的姓名和所在系-- 子查询SELECT Sname,SdeptFROM StudentWHERE Sno NOT IN (SELECT Sno FROM SCWHERE Cno = (SELECT Cno FROM Course WHERE Cname = 'Java'))18.查询计算机系没有选课的学生的姓名和性别SELECT Sname,SsexFROM StudentWHERE Sno NOT IN (SELECT Sno FROM SC)19.创建一个新表,表明test_t........CREATE TABLE test_t(COL1 INT,COL2 CHAR(10) NOT NULL,COL3 CHAR(10))INSERT INTO test_t VALUE(NULL,'B1',NULL),(1,'B2','C2'),(2,'B3',NULL)20.删除考试成绩低于50分的学生的选课记录DELETE FROM SCWHERE Grade < 5021.删除没有人选的课程记录DELETE FROM CourseWHERE Cno NOT IN (SELECT Cno FROM SC)22.删除计算机系java成绩不及格学生的java课程选课记录DELETE FROM SCWHERE Sno IN (SELECT Sno FROM Student WHERE Sdept = '计算机系')AND Cno = (SELECT Cno FROM Course WHERE Cname = 'Java')AND Grade < 6023.将第二学期开设的所有课程的学分增加2分UPDATE Course SET Credit = Credit + 2WHERE Semester = 224.将java课程的学分改为3分UPDATE Course SET Credit = 3WHERE Cname = 'Java'25.将计算机系的学生的年龄增加一岁UPDATE Student SET Sage = Sage + 1WHERE Sdept = '计算机系'26.将信息系学生的计算机文化学课程的考试成绩加5分UPDATE SC SET Grade = Grade + 5WHERE Sno IN (SELECT Sno FROM Student WHERE Sdept = '信息系')AND Cno = (SELECT Cno FROM Course WHERE Cname = '计算机文化学')27.查询每个系年龄大于等于20的学生人数,并将结果保存到一个新永久标Dept_ageCREATE TABLE Dept_age (SELECT b.Sdept,IFNULL(人数,0) AS 人数FROM(SELECT Sdept,COUNT(*) AS 人数FROM Student WHERE Sage >= 20 GROUP BY Sdept) a RIGHT OUTER JOIN (SELECT DISTINCT Sdept FROM Student) b ON a.Sdept = b.Sdept)SELECT * FROM Dept_age-- mysql不支持select into from28.查询计算机系每个学生的java考试情况,列出学号、姓名、成绩和成绩情况>=90(好)80-89(较好)70-79(一般)60-69(较差)<60(差)SELECT s.Sno,Sname,Grade,CASEWHEN Grade >= 90 THEN '优'WHEN Grade BETWEEN 80 AND 89 THEN '较好'WHEN Grade BETWEEN 70 AND 79 THEN '一般'WHEN Grade BETWEEN 60 AND 69 THEN '较差'WHEN Grade < 60 THEN '差'END AS 成绩情况FROM Student s INNER JOIN SC ON s.Sno = SC.SnoWHERE Cno = (SELECT Cno FROM Course WHERE Cname = 'Java')29.统计每个学生的选课门数(包括没有选课的人),列出学号、选课门数和选课情况>=6(多)3-5(一般)1-2(偏少)0(未选课)SELECT s.Sno,IFNULL(COUNT(*),0) AS 选课门数,CASEWHEN COUNT(*) >= 6 THEN '多'WHEN COUNT(*) BETWEEN 3 AND 5 THEN '一般'WHEN COUNT(*) BETWEEN 1 AND 2 THEN '偏少'WHEN COUNT(*) IS NULL THEN '未选课'END AS 选课情况FROM Student s LEFT OUTER JOIN SC ON s.Sno = SC.SnoGROUP BY Sno30.修改全部课程的学分,修改规则如下:1-2学期开设的课程加5分3-4学期开设的课程加3分5-6学期开设的课程加1分其余不变UPDATE Course SET Credit = Credit +CASEWHEN Semester BETWEEN 1 AND 2 THEN 5WHEN Semester BETWEEN 3 AND 4 THEN 3WHEN Semester BETWEEN 5 AND 6 THEN 5ELSE 0END31.查询李勇和王大力所选的全部课程,列出课程名、开课学期和学分,不包括重复结果SELECT Cname,Semester,CreditFROM CourseWHERE Cno IN (SELECT Cno FROM SC WHERE Sno IN (SELECT Sno FROM Student WHERE Sname = '李勇' OR Sname = '王大力'))-- 并运算SELECT Cname,Semester,Credit FROM CourseWHERE Cno IN (SELECT Cno FROM SC WHERE Sno = (SELECT Sno FROM Student WHERE Sname = '李勇'))UNIONSELECT Cname,Semester,Credit FROM CourseWHERE Cno IN (SELECT Cno FROM SC WHERE Sno = (SELECT Sno FROM Student WHERE Sname = '王大力'))32.查询第3学期开设的课程中,李勇选了但王大力没选的课程,列出课程名和学分SELECT Cname,CreditFROM CourseWHERE Semester = 3AND Cno IN (SELECT Cno FROM SC WHERE Sno = (SELECT Sno FROM Student WHERE Sname = '李勇'))AND Cno NOT IN (SELECT Cno FROM SC WHERE Sno = (SELECT Sno FROM Student WHERE Sname = '王大力'))-- 差运算mysql不支持EXCEPTSELECT Cname,CreditFROM CourseWHERE Semester = 3AND Cno IN (SELECT Cno FROM SC WHERE Sno = (SELECT Sno FROM Student WHERE Sname = '李勇'))EXCEPTSELECT Cname,CreditFROM CourseWHERE Semester = 3AND Cno IN (SELECT Cno FROM SC WHERE Sno = (SELECT Sno FROM Student WHERE Sname = '王大力'))33.查询学分大于3分的课程中,李勇和王大力所选的相同课程,列出课程名和学分SELECT Cname,CreditFROM CourseWHERE Credit > 3AND Cno IN (SELECT Cno FROM SC WHERE Sno = (SELECT Sno FROM Student WHERE Sname = '李勇'))AND Cno IN (SELECT Cno FROM SC WHERE Sno = (SELECT Sno FROM Student WHERE Sname = '王大力'))-- 交运算mysql不支持INTERSECTSELECT Cname,CreditFROM CourseWHERE Credit > 3AND Cno IN (SELECT Cno FROM SC WHERE Sno = (SELECT Sno FROM Student WHERE Sname = '李勇'))INTERSECTSELECT Cname,CreditFROM CourseWHERE Credit > 3AND Cno IN (SELECT Cno FROM SC WHERE Sno = (SELECT Sno FROM Student WHERE Sname = '王大力'))。
结构化查询语言答案
试验二结构化查询语句一、简单查询1.查询XS表中各个同学的所有信息。
Select * from xs2.查询XS表中各个同学的姓名、专业名和总学分。
select xm,zym,zxf from xs;3.查询XS表中所有同学的学号、姓名和总学分,结果中各列的标题分别指定为“学号”、“姓名”和“总学分”。
Select xh as 学号, xm as 姓名,zxf as 总学分 from xs;4.查询XS表中的学生数据来自哪些专业(使用DISTINCT子句消除结果集中的重复行)。
Select distinct zym from xs;5.查询XS表中每个学生的学号、姓名和年龄信息。
Select xh,xm,to_number(to_char(sysdate,'yyyy'))-to_number(to_char(cssj,'yyyy')) as nl from xs;6.查询XS表中专业为“计算机”的同学的情况。
Select * from xs where zym='计算机';7.查询XS表中1980年出生的学生姓名和专业情况。
Select xm,zym from xs where to_number(to_char(cssj,'yyyy'))=1980;8.查询XS表中专业名为“计算机”或“电子”或“应用数学”的学生的情况。
Select * from xsWhere zym in ( '计算机','电子','应用数学');9.查询XS表中姓“张”且单名的学生的情况。
Select * from xsWhere xm like '张_';10.查询XS表中总学分尚未确定的学生情况。
Select * from xsWhere zxf is null11.查询XS表中专业为“计算机”且总学分尚未确定的学生情况。
数据库第五六七章作业答案课件
24.查询1-5学期中选课人数最少的课程的课 程名、开课学期和学分
SELECT Cname, Semester, Credit FROM Course WHERE (Cno IN (SELECT TOP 1 WITH ties cno FROM sc GROUP BY cno ORDER BY COUNT(*) ASC)) AND (Semes
34.将选课人数最少的课程的学分降低1分 update course set credit=credit-1 where cno =
(select top 1 cno from sc group by cno order by count(*) asc)
15
第六章作业
9、 1)在student表上为sname列建立一个聚集索引, 索引
名为sldx create clustered index sldx on student(sname) 2)在course表上为cname列建立一个唯一的非聚集索 引, 索引名为cnidx create unique nonclustered index cnidx on course(cname) 3)在SC表上为SNO和CNO建立一个组合的聚集索引, 索引名为snocnoidx Create clustered index snocnoidx on sc(sno,cno) 4)删除SNAME列上建立的sldx 索引 Drop index sldx
升序显示结果 select sno,count(*),sum(grade) from sc
group by sno order by count(*) asc 10、查询总成绩超过200分的学生,要求列出学号、总成绩
select sno,sum(grade) from sc group by sno having sum(grade)>200
学生基本信息查询l例题
1.选取表中所有的列:查所有学生的所有信息select*from student2.选取表中所指定的列:查询学生表中所有学生的学号、姓名、入学成绩select sno,sname,sscorefrom student3.选取表中所指定的列和指定的行:查询学生表中…‟班的学生的学号、姓名、入学成绩use studentselect sno,sname,sscore,classnofrom studentwhere classno='07010111'4.查询学生表…‟班的男生信息select*from studentwhere classno='07010111'and ssex='男'5.查询出生日期在年到年间的教师信息use studentselect*from teacherwhere tbirthday>='1975-1-1'and tbirthday<='1980-12-31'6.查询职称为副教授的女教师信息use studentselect*from teacherwhere tsex='女'and title='副教授'7.查询年龄超过的职称为副教授的女教师信息use studentselect*from teacherwhere (title='副教授'and(year(getdate())-year(tbirthday))>=40 and tsex='女')8.查询选修了‘C001‟课程的前位学生的选课信息use studentselect top 3 *from choicewhere cno='c001'9.查询学生表‘’班和‘’班的学生信息use studentselect*from studentwhere classno in('07010111','07010111')10.查询全体学生信息,查询结果按班级编号降序排列,同一个班级的学生按学号升序排列select*from studentorder by classno desc,sno asc11.查询学生表中姓陈的学生信息select*from studentwhere sname like'陈%'12.查询学生表中姓陈的学生信息,查询结果按出生日期降序排序use studentselect*from studentwhere sname like'陈%'order by sbirthday desc2.查询orders表格中的订购日期,并且相同的订购日期只显示一次。
查询操作——精选推荐
查询操作1.使⽤SELECT⼦句选取字段(1)选择所有列【案例8-13】查询全体学⽣的学号、姓名、性别、出⽣⽇期、班级编号、电话、电⼦邮件和家庭地址。
select*from Student或select Student_No, Student_Name, Student_Sex,Student_Birthday,Student_ClassNo,Student_Telephone,Student_Email,Student_Addrexx,Student_Birthday from Student2)选择部分列【案例8-14】查询全体学⽣的学号、姓名、性别。
select Student_No,Student_Name,Student_Sexfrom Student(3)为结果集中的列指定别名为⽬标列取别名有下列3种⽅式:select Student_Name 学号,Student_Name AS姓名,性别=Student_Sexfrom Student(4)结果集为表达式【案例8-16】查询SelectCourse表中的所有信息,并将结果集中的SelectCourse_Score(成绩)统⼀增加5分。
select SelectCourse_StudentNo,SelectCourse_CourseNo,SelectCourse_Score=SelectCourse_Score+5from SelectCourse(5)消除重复⾏-DISTINCT关键字【实例8-17】查询Student表中的班级编号,查询结果中消除重复⾏。
先执⾏下列语句查看效果:select班级编号=Student_ClassNofrom Student使⽤DISTINCT关键字消除重复⾏:select distinct班级编号=Student_ClassNofrom Student【实例】查询已选修课程的学⽣学号(消除重复⾏)。