数据库实验四:SQL数据查询

合集下载

数据库实验四

数据库实验四

数据库实验四在学习数据库的过程中,实验是帮助我们深入理解和掌握相关知识的重要环节。

本次数据库实验四主要围绕着数据库的查询、更新以及数据完整性等方面展开。

实验的目的是让我们通过实际操作,更加熟练地运用 SQL 语句来处理数据库中的数据,同时加深对数据库原理和概念的理解。

在实验开始之前,我们首先需要准备好相关的数据库环境。

这包括安装数据库管理系统,如 MySQL 或 SQL Server 等,并创建好实验所需的数据库和数据表。

本次实验中,我们创建了一个名为“students”的数据库表,用于存储学生的基本信息,如学号、姓名、年龄、性别和所在班级等。

同时,还创建了一个名为“courses”的表,用于存储课程的信息,包括课程编号、课程名称和授课教师等。

接下来,就是实验的核心部分——数据查询操作。

通过使用 SQL 的 SELECT 语句,我们可以从数据库中获取所需的数据。

例如,要查询所有年龄大于 20 岁的学生信息,可以使用以下语句:```sqlSELECT FROM students WHERE age > 20;```除了简单的条件查询,我们还学习了如何进行多表连接查询。

比如,要获取同时选修了“数据库原理”和“操作系统”两门课程的学生信息,就需要将“students”表、“courses”表以及选课关系表进行连接查询。

数据更新操作也是实验中的重要内容。

通过使用 UPDATE 语句,我们可以对数据库中的数据进行修改。

但在进行数据更新时,一定要谨慎操作,确保更新的结果符合预期,避免造成数据的错误或丢失。

例如,如果要将某个学生的年龄增加一岁,可以使用以下语句:```sqlUPDATE students SET age = age + 1 WHERE student_id ='_____';```在实验过程中,数据完整性的维护也是至关重要的。

我们通过设置主键、外键以及各种约束条件,来确保数据的准确性和一致性。

实验4:数据库的高级查询操作

实验4:数据库的高级查询操作

实验4:数据库的高级查询操作实验四:数据库的各类数据查询操作一、实验目的掌握SQL程序设计基本规范,熟练运用SQL语言实现数据的各种查询和设计,包括连接查询、嵌套查询、集合查询等。

二、实验内容和要求针对KingbaseES数据库设计单个表针对自身的连接查询,设计多个表的连接查询;设计各种嵌套查询和集合查询。

了解和掌握SQL查询语句各个子句的特点和作用,按照SQL程序设计规范写出具体的SQL查询语句,并调试通过。

三、实验步骤连接查询1. 查询每个学生及其选修课程的情况:select student.*, sc.* from student, sc where student.sno=sc.sno比较: 笛卡尔集: select student.*, sc.* from student, sc自然连接: select student.sno, sname, ssex, sdept, cno, grade from student, sc where student.sno=sc.sno2. 查询每一门课程的间接先行课(只求两层即先行课的先行课):select /doc/3d4429586.html,o, Second.pcno 间接先行课from course First, course Second where First.pcno=/doc/3d4429586.html,o比较:select /doc/3d4429586.html,o, Second.pcno 间接先行课from course First, course Second where First.pcno=/doc/3d4429586.html,o and Second.pcno is not null3. 列出所有学生的基本情况和选课情况, 若没有选课,则只列出基本情况信息:SQL Server 中: select s.sno, sname, ssex,sdept, cno, grade from student s, sc sc where s.sno*=sc.sno4. 查询每个学生的学号, 姓名, 选修的课程名和成绩:select S.sno, sname, cname, grade from student S, course C, sc SC where S.sno=SC.sno and /doc/3d4429586.html,o=/doc/ 3d4429586.html,o5. 查询平均成绩在80分以上的学生姓名Select sname from student,sc where student.sno=sc.sno GROUP BY sc.snoHAVING AVG(sc.grade)>80;高级查询使用带IN谓词的子查询1.查询与’刘晨’在同一个系学习的学生的信息:select * from student where sdept in(select sdept from student where sname='刘晨')比较: select * from student where sdept =(select sdept from student where sname='刘晨') 的异同比较: select * from student where sdept =(select sdept from student where sname='刘晨') and sname<>'刘晨' 比较: select S1.* from student S1, student S2 where S1.sdept=S2.sdept and S2.sname='刘晨'2.查询选修了课程名为’信息系统’的学生的学号和姓名:SQL Server中: select sno, sname from student where sno in (select sno from sc where cno in(select cno from course where cname='信息系统'))3.查询选修了课程’1’和课程’2’的学生的学号:select sno from student where sno in (select sno from sc where cno='1')and sno in (select sno from sc where cno='2') 比较: 查询选修了课程’1’或课程’2’的学生的sno:select sno from sc where cno='1' or cno='2'比较连接查询:select A.sno from sc A, sc B where A.sno=B.sno and /doc/3d4429586.html,o='1' and/doc/3d4429586.html,o='2'使用带比较运算的子查询1.查询比’刘晨’年龄小的所有学生的信息:select * from student where sage<(select sage from student where sname='刘晨')使用带Any, All谓词的子查询2.查询其他系中比信息系(IS)某一学生年龄小的学生姓名和年龄;select sname, sage from student where sage <any< p=""> (select sage from student where sdept='IS')and sdept<>'IS'3.查询其他系中比信息系(IS)学生年龄都小的学生姓名和年龄:select sname, sage from student where sage <all< p="">(select sage from student where sdept='IS')and sdept<>'IS'4.查询与计算机系(CS)系所有学生的年龄均不同的学生学号, 姓名和年龄:select sno,sname,sage from student where sage<>all(select sage from student where sdept='CS')使用带Exists谓词的子查询和相关子查询5.查询与其他所有学生年龄均不同的学生学号, 姓名和年龄:select sno,sname,sage from student A where not exists(select * from student B where A.sage=B.sage andA.sno<>B.sno)6.查询所有选修了1号课程的学生姓名:select sname from student where exists(select * from sc where sno=student.sno and cno='1')7.查询没有选修了1号课程的学生姓名:select sname from student where not exists(select * from sc where sno=student.sno and cno='1')8.查询选修了全部课程的学生姓名:select sname from student where not exists(select * from course where not exists( select * from sc where sno=student.sno and cno=/doc/3d4429586.html,o))12. 查询至少选修了学生95002选修的全部课程的学生的学号:select distinct sno from sc A where not exists(select * from sc B where sno='95002'and not exists(select * from sc C where sno=A.sno and cno=/doc/3d4429586.html,o))13. 求没有人选修的课程号cno和cnamecname:select cno,cname from course C where not exists(select * from sc where /doc/3d4429586.html,o=/doc/ 3d4429586.html,o )14. 查询满足条件的(sno,cno)对, 其中该学号的学生没有选修该课程号cno 的课程select sno,cno from student,course where not exists(select * from sc where cno=/doc/3d4429586.html,o and sno=student.sno)15. 查询每个学生的课程成绩最高的成绩信息(sno,cno,grade):select * from sc A where grade=(select max(grade) from sc where sno=A.sno )集合查询1. 查询数学系和信息系的学生的信息;select * from student where sdept='MA' union select * from student where sdept='IS'2. 查询选修了1号课程或2号课程的学生的学号:select sno from sc where cno='1'Unionselect sno from sc where cno='2'思考:1. 连接查询速度是影响关系数据库性能的关键因素。

SQL数据库实验报告数据查询

SQL数据库实验报告数据查询

SQL数据库实验报告数据查询南京信息工程大学实验(实习)报告实验(实习)名称数据查询实验(实习)日期11.25 得分指导教师系计算机系专业网络工程年级班次姓名学号一.实验目的1. 观察查询结果, 体会S ELECT 语句实际应用;2. 要求学生能够在查询分析器中使用S ELECT 语句进行简单查询。

3. 熟练掌握简单表的数据查询、数据排序和数据连接查询的操作方法。

二.实验内容1. 简单查询操作2. 连接查询操作三.实验步骤原始数据图学生表:课程表:选课表① 求计算机系的学生学号和姓名;② 求选修了课程的学生学号;③ 求选修C1 课程的学生学号和成绩,并要求对查询结果按成绩的降序排列,如果成绩相同则按学号的升序排列④ 求选修课程C1 且成绩在80-90 之间的学生学号和成绩,并将成绩乘以系数0.75 输出;⑤求计算机系和数学系的姓张的学生的信息;⑥求缺少了成绩的学生的学号和课程号。

查询每个学生的情况以及他(她)所选修的课程;求生的学号、姓名、选修的课程名及成绩选修C1 课程且成绩在90 分以上的学生学号、姓名及成绩;查询每一门课的间接先行课。

内容二一.实验目的1.掌握子查询的表示。

2.进一步掌握S QL Server 查询分析器的使用方法,加深对S QL 语言的嵌套查询语句的理解二.实验内容1)求选修了高等数学的学生学号和姓名;2)求C1 课程的成绩高于张三的学生学号和成绩3)求其他系中比计算机系某一学生年龄小的学生信息(即求其它系中年龄小于计算机系年龄最大者的学生))求其他系中比计算机系学生年龄都小的学生信5)求选修了C2 课程的学生姓名;6)求没有选修C2 课程的学生姓名;7)查询选修了全部课程的学生的姓名)求至少选修了学号为“S2”的学生所选修的全部课程的学生学号和姓名。

2.提高操作实验1) 求供应项目j4 红色零件的供应商号及名称2) 求没有上海供应商生成的零件的项目号3)至少使用了供应商S5 所供应全部零件的项目号内容三:一.实验目的1. 熟练掌握数据查询中的分组、统计、计算和组合的操作方法。

实验四 SQL语言之数据查询基础

实验四 SQL语言之数据查询基础

实验四数据查询基础姓名:学号:专业:班级:同组人:实验日期:2009.09.27【实验目的与要求】1、熟练掌握SELECT 语句的基本语法格式;2、熟练掌握使用SQL语句进行单表查询,掌握GROUP BY子句、HA VING 子句和集函数;3、熟练掌握使用SQL标准语句和T-SQL扩展语句进行连接查询。

【实验准备】1.准备好测试数据2.了解用SQL查询基本语法。

【实验内容】4.0实验准备1、启动企业管理器,创建产品销售数据库CPXS:数据文件初始大小为5MB,最大大小50MB,增长方式按10%比例增长;日志文件初始为2MB,最大可增长到10MB,按2MB增长;其余参数取默认值。

2、在CPXS数据库中创建如下三个表:CP(产品编号,产品名称,价格,库存量);XSS(客户编号,客户名称,地区,负责人,电话);CPXSB(产品编号,客户编号,销售日期,数量,销售额);表结构如图4.1~图4.3所示,请写出创建以上三个表的T-SQL语句:use cpxscreate table cp(产品编号char(6) not null,产品名称char(3)not null,价格float(8),库存量int)create table xss(客户编号char(6) not null,客户名称char(30) not null,地区char(18),负责人char(18),电话char(12))create table cpxsb(产品编号char(6) not null,客户编号char(6) not null,销售日期datetime not null,数量int not null,销售额float(8) not null)并在查询分析器中运行。

图4.1 CP表结构图4.2 XSS表结构图4.3 CPXSB表结构4、在企业管理器中输入如图4.4~图4.6的CP表、XSS表和CPXSB表的样本数据。

图4.4 CP表的样本数据图4.5 XSS表的样本数据图4.6 CPXSB表的样本数据4.1 单表查询1、简单查询查询各种产品的产品编号、产品名称和价格。

数据库实训课程学习总结实践SQL查询与数据库管理

数据库实训课程学习总结实践SQL查询与数据库管理

数据库实训课程学习总结实践SQL查询与数据库管理在数据库实训课程的学习过程中,我深入了解了SQL查询与数据库管理的基本原理和操作技巧。

通过实践操作,我逐渐掌握了SQL语言的基本语法和常用命令,熟悉了数据库的创建、备份与恢复、索引优化等管理技术。

本文将对我在数据库实训课程中的学习经历与心得进行总结,提供给同学们参考与交流。

1. 实践SQL查询在数据库实训课程中,我首先学习了SQL语言的基本语法和常用命令,了解了如何使用SELECT、INSERT、UPDATE和DELETE等命令进行数据的查询、插入、更新和删除。

在实践过程中,我发现了一些查询优化的技巧。

首先,合理选择WHERE子句中的条件和逻辑运算符。

我通过分析查询需求,尽量减少WHERE子句中的条件数量,避免不必要的逻辑运算符。

此外,我还学会了使用索引来加速查询操作,提高查询性能。

其次,合理使用JOIN操作连接多个数据表。

在实践过程中,我遇到了需要连接两个或多个数据表的情况。

通过学习JOIN操作,我可以根据不同的连接关系选择适合的JOIN类型,并且编写出高效的JOIN查询语句。

最后,学会使用子查询进行复杂查询。

子查询是SQL语言的一个重要特性,通过嵌套查询语句,我可以从多个数据表中获取需要的数据,并且可以进行更复杂的条件筛选和排序。

通过实践操作,我逐渐掌握了子查询的使用技巧,提升了查询的灵活性。

2. 数据库管理操作除了SQL查询,数据库实训课程还涉及到了数据库的管理操作。

在实践过程中,我学习了如何创建数据库、备份和恢复数据库、以及优化数据库的性能。

首先,我学会了使用CREATE DATABASE语句创建数据库。

通过指定数据库的名称、字符集和校对规则等参数,我可以在数据库管理系统中创建一个新的数据库。

其次,我了解了数据库备份和恢复的操作。

通过学习备份和恢复的基本原理和方法,我可以对数据库进行定期备份,以防止数据丢失。

同时,当数据库发生故障时,我也可以通过恢复操作将数据库恢复到正常状态。

实验四 在SQL Server中进行数据查询

实验四 在SQL Server中进行数据查询

实验四在SQL Server中进行数据查询一、实验目的1.掌握SELECT语句的基本语法。

2.掌握子查询的应用。

3.掌握连接查询的应用。

4.掌握SELECT语句的统计函数的作用和使用方法。

5.掌握SELECT语句的GROUPBY和ORDERBY子句的作用和使用方法。

二、实验要求1.了解SELECT语句的基本语法格式。

2.了解SELECT语句的执行方法。

3.了解子查询的表示方法。

4.了解SELECT语句的统计函数的作用。

5.了解SELECT语句的GROUP BY和ORDER BY子句的作用。

三、实验内容:使用的数据库实验二、实验三、实验四录入数据的学生情况表Student 课程名称表Course教师授课表Teach 成绩表Score等四张基本表。

(一)基本查询:1.(选择表中的若干列) 求全体学生的学号、姓名、性别和年龄。

2.(不选择重复行) 求选修了课程的学生学号。

3.(使用表达式) 求全体学生的学号、姓名和出生年份。

(二)条件查询:4.(比较大小条件) 求年龄大于19岁的学生的姓名和年龄。

5.(确定范围条件) 求年龄在19岁与22岁(含20岁和22岁)之间的学生的学号和年龄。

6.(确定集合条件) 求在下列各系的学生信息:数学系、计算机系。

7.(匹配查询) 求选修课程001或002或003,成绩在70至85之间,学号为04xxx 的学生的学号、课程号和成绩。

8.(涉及空值查询) 求缺少学习成绩的学生的学号和课程号。

(三)聚合函数查询:9.(组函数) 求学生总人数。

10.(组函数) 求选修了课程的学生人数。

11.(组函数) 求选修了课程001的最高、最低与平均成绩。

12.(分组查询) 求各系、各班级的人数和平均年龄。

四、实验编程结果或过程(用截图方式或SQL语句表示,语句用蓝色字体标出)(一)基本查询:1.(选择表中的若干列) 求全体学生的学号、姓名、性别和年龄。

Select SNO,SNAME,SSEX,SAGEFrom student2.(不选择重复行) 求选修了课程的学生学号。

数据库实验4 数据查询

数据库实验4 数据查询

实验4:数据查询1.实验目的:熟练掌握SQL SELECT语句,能够运用该语句完成各种查询。

2.实验要求:熟练掌握SQL SELECT语句,完成各个实验的内容,能够举一反三,灵活运用,能够通过本章介绍的一些基本语句,构造各种各样的查询。

3.实验环境与实验器材:实验环境:计算机,网络环境,投影设备。

实验相关软件:Window XP、SQL Server 2000。

4. 实验内容与步骤本实验通过使用Transact-SQL语句,对已经建立的数据库进行查询操作。

4.1 查询指定字段编写select语句,显示“学生档案表”中的学号、姓名、籍贯、专业以及班级字段。

第一步:打开“SQL查询分析器”,在界面上方选中“教学管理”数据库,在查询窗口编写如下语句:select 学号,姓名,籍贯,专业,班级from 学生档案表如图:第二步:单击“SQL查询分析器”界面上部的绿色三角形“执行查询”按钮,查询对话框下半部分显示查询结果,如图:4.2 通配符“*”的使用编写select语句,显示“学生选课表”中的所有字段。

第一步:打开“SQL查询分析器”,在界面上方选中“教学管理”数据库,在查询窗口编写如下语句:select * from 学生选课表如图:查询对话框下半部分显示查询结果,如图:4.3 基于字段的表达式在学生档案表中,按“XXXX年XX月XX日”的格式显示出生日期。

使用year 函数从“出生日期”字段中取得年份数据,再使用str函数将数值型的年份数据转换成字符型,最后使用“+”将字符串拼接起来。

第一步:打开“SQL查询分析器”,在界面上方选中“教学管理”数据库,在查询窗口编写如下语句:select 学号,姓名,性别,str(year(出生日期),4)+'年'+str(month(出生日期),2)+'月'+str(day(出生日期),2)+'日' as 出生日期from 学生档案表如图:查询对话框下半部分显示查询结果,如图:4.4 用WHERE子句过滤记录在学生档案表中查询所有出生日期在“1983-01-01”至“1984-12-31”之间的所有学生的信息。

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

数据库实验报告-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 查询没有考试成绩的学生学号和课程号16 查询全体学生的姓名、选修的课程名及成绩17 查询每个学生及其选修课程情况的所有信息(用*表示字段18 查询某门课程考试成绩相同的学生学号和课程名,并为各个表取别名19 查询与“张三”在一个系学习的学生(IN)20 查询选修了“数据结构”的学生学号和姓名五、实验总结列名写错:修改列名:心得体会:通过实验,了解了一些基本的查询操作,会一些的基本操作。

sql查询实验报告

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函数用于计算符合条件的学生的平均成绩,通过执行该语句,可以获取到男生的平均成绩。

SQL server数据库实验报告-数据查询(全)

SQL server数据库实验报告-数据查询(全)

XXX大学实验报告
课程名称数据库管理系统
实验名称数据的查询
专业班级
姓名
学号
实验日期
实验地点
2012—2013学年度第一学期
五、实验结果及总结
1、查询TchInfo 表中教师的工号TID、姓名TName 和职称Title,要求查询结果列将TID、
TName 和Title 字段分别显示为工号、姓名和职称。

查询TchInfo 表中教师的全部信息。

结果如图:
2、查询TchInfo 表前6 行记录。

查询TchInfo 表中前50%的数据。

结果如下图:
3、在表StuInfo 中查询05 级、计算机系的学生姓名、性别和所在系。

查询StuInfo 中出生年月介于1984 年9 月1 日到1985 年8 月31 日的学生信息。

4、查询职称为副教授和教授的教师的信息。

在表StuInfo 中查询所有学号为“05”开头学生的姓名SName 和专业Major。

5、查询表ScoreInfo中选修了“00000001”课程的学生的学号和学生成绩。

通过表TchInfo 查询各院系的讲师数。

6、查询选修了高等数学课程且成绩在70 分以上的所有学生的姓名、成绩。

7、查询与张小红同学在同一个班同一个年级的学生姓名。

七、实验小结:
虽然在课上没有做完,但利用空余时间把实验做完,熟悉和基本掌握了利用T_SQL语句对SQL数据库进行查询操作,理解和掌握了部分通配符的使用,我想仅仅靠两节课的时间进行学习是不够的,还需要在空闲时间进行大量的实践操作才能很好的掌握并进行运用。

sql实验4数据查询

sql实验4数据查询

实验4数据查询一、实验目的1.掌握使用Transact-SQL的SELECT语句进行基本查询的方法。

2.掌握使用SELECT语句进行条件查询的方法。

3.掌握嵌套查询的方法。

4.掌握多表查询的方法。

5.掌握SELECT语句的GROUP BY和ORDER BY子句的作业和使用方法。

6.掌握联合查询的操作方法。

7.掌握数据更新语句INSERT INTO、UPDATE、DELETE的使用方法。

二、实验准备1.了解SELECT语句的基本语法格式和执行方法。

2.了解嵌套查询的表示方法。

3.了解UNION运算符的用法。

4.了解SELECT语句的GROUP BY和ORDER BY子句的作用。

5.了解IN、JOIN等子查询的格式。

6.了解INSERT INTO、UPDATE、DELETE的格式与作用。

三、实验内容及步骤0. 创建studentsdb数据库及其相应表,并录入数据。

启动查询分析器,运行下面链接的代码即可。

创建数据库代码1.在studentsdb数据库中,使用下列SQL语句将输出什么?(1)SELECT COUNT(*) FROM grade(2)SELECT SUBSTRING(姓名,1,2) FROM student_info(3)SELECT UPPER('kelly')(4)SELECT Replicate('kelly',3)(5)SELECT SQRT(分数) FROM grade WHERE 分数>=85(6)SELECT 2,3,POWER(2,3)(7)SELECT YEAR(GETDATE),MONTH(GETDATE),DAY(GETDATE)2.在studentsdb数据库中使用SELECT语句进行基本查询。

(1)在student_info表中,查询每个学生的学号、姓名、出生日期信息。

SELECT*FROMstudent_info(2)查询学号为0002的学生的姓名和家庭住址。

数据库实验SQL 语言 SQL 语言的简单查询、连接查询

数据库实验SQL 语言 SQL 语言的简单查询、连接查询
计算机引论
空值(NULL)
C2
C语言
C1
C3
数据结构
C2
8.用INSERT语句向Choose表中插入7个元组
SNO
CourseID
Score
S00001
C1
95
S00001
C2
80
S00001
C3
84
S00002
C1
80
S00002
C2
85
S00003
C1
78
S00003
C3
70
9.用SELECT语句,查询计算机学院学生的学号和姓名关系代数及代码:
13.用SELECT语句对空值(NULL)的判断条件,查询Course表中先修课称编号为空值的课程编号和课程名称。
14.用SELECT语句的连接查询,查询学生的学号、姓名、选修的课程名及成绩
四、实验实习过程或算法(源程序、代码)
1.用Create Table建立Student表代码:
CREATE TABLE Student
运行结果:
9用SELECT语句的COUNT()聚集函数,统计Student表中学生总人数代码及运行结果
代码:SELECT COUNT(*) FROM Student;
运行结果:
10.分别用SELECT语句的max()、min()、sum()、avg()四个聚集函数,计算Choose表中C1课程的最高分、最低分、总分、平均分。代码及运行结果
[^...]负值字符集合表示匹配未包含的任意字符;
如:sysabc:均不匹配而sabcys: NOT LIKE‘sys%’可以匹配
可以用逻辑学的方法来理解,前者可以看成s^y^s^即(s+y+s)^,后者看成(sys)^。

SQL数据库实验四_复杂查询(1)解答

SQL数据库实验四_复杂查询(1)解答

实验四复杂查询(1)解答实验结果1. 查询没有订购商品的且在北京地区的客户编号、客户名称和邮政编码,并按邮政编码降序排序。

SQL语句:SELECT customerNo,customerName,zipFROM CustomerWHERE address LIKE'%北京%'and customerNo NOT IN(SELECT customerNoFROM OrderMaster)ORDER BY zip DESC查询结果:问题:SELECT customerNo,customerName,zipFROM CustomerWHERE address='北京市'AND customerNo not in(select customerNo from OrderMaster)ORDer by zip DESC2.查询订购了“32M DRAM”商品的订单编号、订货数量和订货单价。

SQL语句:SELECT orderNo,quantity,priceFROM OrderDetailWHERE productNo IN(SELECT productNoFROM ProductWHERE productName='32M DRAM')查询结果:3.查询与员工编号E2008005在同一个部门的员工编号、姓名、性别、所属部门。

SQL语句:SELECT employeeNo,employeeName,sex,departmentFROM EmployeeWHERE department IN(SELECT departmentFROM EmployeeWHERE employeeNo='E2008005')查询结果:不包括员工‘E2008005’:SELECT employeeNo,employeeName,sex,departmentFROM EmployeeWHERE department IN(SELECT departmentFROM EmployeeWHERE employeeNo='E2008005')AND employeeNo!='E2008005'4.查询既订购了P2*******商品,又订购了P2*******的商品的客户编号、订单编号和订单总额。

实验四SQL语言——SELECT查询操作

实验四SQL语言——SELECT查询操作
实验内容
1、在SQL Server Management Studio的查询子窗口中创建数据库jxgl;
2、选择jxgl数据库,在SQL操作窗口中,创建Student、SC、Course、Teacher四表及表记录;
3、基于数据库jxgl,使用SQL的查询语句完成查询要求。
1.实验结果
完成查询要求
2.疑难与需解决的问题
怎么检索全部学生都选修的课程号
3.实验体会
多表查询比较复杂
教师评语及成绩
实验预备知识sql是一种被称为结构化查询语言的通用数据库数据操作语言tsql是唯一可以和sqlserver的数据库管理系统进行交互的语言
数据库*实验报告
实验项目名称:SQL语言——SELECT查询操作
成绩:
信息技术学院软件技术与数据库教研室
实验概述:对数据库进行查询操作
1.实验目的
了解查询的概念和方法;掌握SQL Server集成管理器查询子窗口中执行SELECT操作的方法;掌握SELECT语句在单表查询中得应用;掌握SELECT语句在多表查询中得应用;掌握SELECT语句基于数据库jxgl,使用SQL的查询语句。
3.实验预备知识
SQL是一种被称为结构化查询语言的通用数据库数据操作语言,T-SQL是唯一可以和SQL Server的数据库管理系统进行交互的语言。SELECT语句是DML中也是T-SQL中最重要的一条命令,是从数据库中获取信息的一个基本的语句。简单查询包括:1、SELECT语句的使用形式;2、WHERE子句的用法;3、GROUP BY与HAVING的使用;4、用ORDER子句为结果排序等。

实验四 SQL Server 数据查询操作 实验报告

实验四 SQL Server 数据查询操作 实验报告

实验四SQL Server 数据查询操作实验内容1.列出不及格记录的学生名单select sname from student,scwhere student.snum=sc.snum and score<602.列出选修了计算机系课程的学生姓名和年龄select distinct sname as 姓名,datediff(year,birthday,getdate()) as 年龄from student,sc,section,coursewhere student.snum=sc.snum and sc.secnum=section.secnum and um=um and course.dept='计算机系'3.检索选修了数据库技术课程的学生姓名和系别select distinct sname as 姓名,student.dept as 系别from student,sc,course,sectionwhere student.snum=sc.snum and sc.secnum=section.secnum and um=um and ame='数据库技术'4.列出选修了所有课程的学生名单select distinct sname as 姓名from student,sc,sectionwhere student.snum=sc.snum and sc.secnum=section.secnumgroup by snamehaving count(um)=(select count(*) from course)5.检索每门课程成绩都在80分以上的学生名单select sname as 姓名from student,scwhere student.snum=sc.snumgroup by snamehaving min(score)>=806.检索获奖学金的学生名单(每门课程在80分以上,平均成绩在90分以上)select sname as 姓名from student,scwhere student.snum=sc.snumgroup by snamehaving min(score)>=80 and avg(score)>=907.检索选修了大学英语的学生名单和成绩,并按成绩从高到低排列select sname as 姓名,score as 成绩from student,sc,section,coursewhere student.snum=sc.snum and sc.secnum=section.secnum and um=um and cname='大学英语'order by sc.score desc8.统计每门课程的选修人数,输出列名为课程号、人数select cnum as 课程号,count(snum) as 人数from sc,sectionwhere sc.secnum=section.secnumgroup by cnum9.查询选修了数据库技术、没有选修高等数学的学生姓名和系别select sname as姓名,student.dept as系别from student,sc,section,course where student.snum=sc.snum and sc.secnum=section.secnum andum=um and cname='数据库技术'and sname not in(select sname from student,sc,section,course where student.snum=sc.snum and sc.secnum=section.secnum and um=um and cname='高等数学')10.检索使用高等教育出版社出版的教材的课程名select cname from coursewhere textbook like'%高等教育出版社'11.统计所有课程的最高成绩、最低成绩和平均成绩select cname,max(score)as最高成绩,min(score)as最低成绩,avg(score)as 平均成绩from student,sc,section,coursewhere student.snum=sc.snum and sc.secnum=section.secnum andum=umgroup by cname12.统计每门课程的选课人数及不及格人数select cname as课程,count(sname)as选课人数,sum(case when score<60 then 1 else 0 end)as不及格人数from student,sc,section,coursewhere student.snum=sc.snum and sc.secnum=section.secnum andum=umgroup by cname。

数据库实验4表的查询操作(4学时)

数据库实验4表的查询操作(4学时)

1 实验四表的查询操作(4学时)【实验目的】了解SQL 语言的使用,进一步理解关系运算,巩固数据库的基础知识。

【实验要求】掌握利用Select 语句进行各种查询操作:单表查询、多表连接及查询、嵌套查询、集合查询等。

【实验内容】在实验三创建并插入数据的表(Student ,Course ,SC ,Teacher ,TC )的基础上,完成以下操作。

1.对实验步骤中所给示例进行验证。

2.参考所给示例,完成下列各种查询操作。

(1)将教师‘罗莉’的名字改为‘罗莉莉’。

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

该题用以验证、理解和掌握关系模型的完整性规则;(3)求每门课的平均成绩,并把结果存入average 表(自行设计并创建);(4)将学生“马丽”的年龄改为2424;;(5)将所有学生的zipcode 属性列值填补上;(6)将average 表中的所有课程的平均成绩置零;(7)删除average 表中的课程号为‘表中的课程号为‘c007c007c007’的平均成绩记录;’的平均成绩记录;(8)删除所有average 表中平均成绩记录;(9)建立一个临时学生信息表()建立一个临时学生信息表(tstudent tstudent tstudent)),删除该表中的学号含‘101’的所有学生记录。

(1010)查询全体学生的学号与姓名;)查询全体学生的学号与姓名;(1111)查询全体学生的学号、姓名、所属系;)查询全体学生的学号、姓名、所属系;(1212)查询全体学生的详细记录;)查询全体学生的详细记录;(1313)查询全体学生的姓名及其年龄;)查询全体学生的姓名及其年龄;(1414)查询全体学生的姓名、出生年份;)查询全体学生的姓名、出生年份;(1515)查询所有修过课的学生的学号;)查询所有修过课的学生的学号;(1616)查询“计算机系”班全体学生名单;)查询“计算机系”班全体学生名单;(1717)查询查询所有年龄在)查询查询所有年龄在23岁以下的学生姓名及其年龄;(1818)查询考试成绩有不及格的学生的学号;)查询考试成绩有不及格的学生的学号;(1919)查询年龄在)查询年龄在20至22岁之间的学生姓名、系和年龄;(2020)查询年龄不在)查询年龄不在20至22岁之间的学生姓名、系和年龄;(2121)查询“)查询“计算机系”和“电商系”的学生的姓名;(2222)查询既不是“计)查询既不是“计1111”也不是“计”也不是“计6161”班的学生的姓名和班级信息;”班的学生的姓名和班级信息;(2323)查询学号为“)查询学号为“04262002”的学生的详细情况;(2424)查询学号以“)查询学号以“04262”打头的学生信息;(2525)查询所有姓“张”学生的学号、姓名、性别、年龄;)查询所有姓“张”学生的学号、姓名、性别、年龄;(2626)查询名字中第二个字有“海”字的学生的学号、姓名、性别、年龄;)查询名字中第二个字有“海”字的学生的学号、姓名、性别、年龄;(2727)查询所有不姓“刘”学生的姓名;)查询所有不姓“刘”学生的姓名;(2828)查询课程号以“)查询课程号以“C ”开头的最后两个字母为“”开头的最后两个字母为“050505”的课程号和课程名;”的课程号和课程名;(2929)某些学生选修某门课程后没有参加考试,所以有选修课记录,但没有考试成绩,)某些学生选修某门课程后没有参加考试,所以有选修课记录,但没有考试成绩,试查找缺少考试成绩的学生和相应的课程号;(3030)查找全部有成绩记录的学生学号、课程号;)查找全部有成绩记录的学生学号、课程号;(3131)查找“计算机系”年龄在)查找“计算机系”年龄在22岁以下的学生学号、姓名;(3232)查找选修了“)查找选修了“)查找选修了“C001C001C001”号课程的学生学号及其成绩,查询结果按分数降序排序;”号课程的学生学号及其成绩,查询结果按分数降序排序;(3333))查询全体学生情况,查询全体学生情况,查询结果按所在系升序排列,查询结果按所在系升序排列,查询结果按所在系升序排列,对同一系中的学生按年龄降序对同一系中的学生按年龄降序排列;(3434)查询学生总人数;)查询学生总人数;)查询学生总人数;(3535)查询选修了课程的学生人数;)查询选修了课程的学生人数;)查询选修了课程的学生人数;(3636)在所有课程中查询最高分的学生学号和成绩;)在所有课程中查询最高分的学生学号和成绩;)在所有课程中查询最高分的学生学号和成绩;(3737)查询学习“)查询学习“)查询学习“C001C001C001”课程的学生最高分数;”课程的学生最高分数;”课程的学生最高分数;(3838)计算各个课程号与相应的选课人数;)计算各个课程号与相应的选课人数;)计算各个课程号与相应的选课人数;(3939)查询“计算机系”选修了两门课程以上的学生学号、姓名;)查询“计算机系”选修了两门课程以上的学生学号、姓名;)查询“计算机系”选修了两门课程以上的学生学号、姓名;(4040)自然连接)自然连接student 和score 表;表; (4141)使用自身连接查询每一门课程的间接先行课(即先行课的先行课))使用自身连接查询每一门课程的间接先行课(即先行课的先行课))使用自身连接查询每一门课程的间接先行课(即先行课的先行课)(4242)使用复合条件连接查询选修“)使用复合条件连接查询选修“)使用复合条件连接查询选修“c001c001c001”号课程且成绩在”号课程且成绩在90分以上的所有同学;分以上的所有同学;(4343)使用复合条件连接查询每个学生选修的课程名及其成绩;)使用复合条件连接查询每个学生选修的课程名及其成绩;)使用复合条件连接查询每个学生选修的课程名及其成绩;(4444)查询选修了全部课程的学生;)查询选修了全部课程的学生;)查询选修了全部课程的学生;(4545)查询所有选修了)查询所有选修了C001号课程的学生学号、姓名;号课程的学生学号、姓名;(4646)查询选修了课程)查询选修了课程C001或c007的学生学号、姓名;的学生学号、姓名;(4747)查询“计算机系”的学生及年龄不大于)查询“计算机系”的学生及年龄不大于23岁的学生;岁的学生;(4848)查询既选修了课程)查询既选修了课程C001又选修了课程c007的所有学生学号、姓名;的所有学生学号、姓名;(4949)查询选修了课程名为“数据库原理”的学生的学号、姓名、性别、年龄;)查询选修了课程名为“数据库原理”的学生的学号、姓名、性别、年龄;)查询选修了课程名为“数据库原理”的学生的学号、姓名、性别、年龄;(5050)查询其他班中比“计算机系”所有学生年龄都小的学生名单;)查询其他班中比“计算机系”所有学生年龄都小的学生名单;)查询其他班中比“计算机系”所有学生年龄都小的学生名单;(5151)查询与“夏天”在同一个系学习的学生学号、姓名、性别、年龄;)查询与“夏天”在同一个系学习的学生学号、姓名、性别、年龄;)查询与“夏天”在同一个系学习的学生学号、姓名、性别、年龄;(5252)建立“计算机系”学生的视图)建立“计算机系”学生的视图1;(5353)建立“计算机系”学生的视图)建立“计算机系”学生的视图2,并要求进行修改与插入时,仍须保证该视图只有“计算机系”班学生;有“计算机系”班学生;(54)建立“计算机系”选修了“C001”课程的学生的视图,定义视图名为“v_cs_C001_student1v_cs_C001_student1””; (5555)建立“计算机系”班选修了“)建立“计算机系”班选修了“)建立“计算机系”班选修了“C001C001C001”课程且成绩在”课程且成绩在90分以上的学生的视图,定义视图名为“义视图名为“cs_c001_student2cs_c001_student2cs_c001_student2””; (5656)定义一个反映学生年龄的视图,定义视图名为“)定义一个反映学生年龄的视图,定义视图名为“)定义一个反映学生年龄的视图,定义视图名为“v_birth_student v_birth_student v_birth_student””; (5757)将学生表中所有女生记录定义为一个视图,视图名为“)将学生表中所有女生记录定义为一个视图,视图名为“)将学生表中所有女生记录定义为一个视图,视图名为“v_female_student v_female_student v_female_student””; (5858)将学生的学号及其平均成绩定义为一个视图,视图名为“)将学生的学号及其平均成绩定义为一个视图,视图名为“)将学生的学号及其平均成绩定义为一个视图,视图名为“v_average_student v_average_student v_average_student””; (5959)在“计算机系”学生视图中找出年龄小于)在“计算机系”学生视图中找出年龄小于22岁的学生;岁的学生;(6060)利用视图查询“计算机系”选修了“)利用视图查询“计算机系”选修了“)利用视图查询“计算机系”选修了“C001C001C001”课程的学生;”课程的学生;”课程的学生;(6161)通过()通过()通过(525252)中的“计算机系”视图修改某个学生的名字;)中的“计算机系”视图修改某个学生的名字;)中的“计算机系”视图修改某个学生的名字;(6262)通过()通过()通过(535353)中的“计算机系”视图,插入一个新学生记录。

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

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

`数据库系统原理实验报告:xxx学号 :xxxxxxxx专业: xxxxx日期 :xxxxx`Lab2一、实验目的进一步熟悉关系数据库标准语言SQL。

二、实验环境1)Windows 102)SQL Server 2017三、实验容给定如学生表、课程表和学生作业表所示的信息。

表 1 学生表学号性别专业班级0433 艳女生物 04 0496 越男电子 04 0529 欣男会计 05 0531 志国男生物 05 0538 于兰兰女生物 05 0591 王丽丽女电子 05 0592 王海强男电子 05表 2 课程表课程号课程名学分数K001 计算机图形学 2.5K002 计算机应用基础 3K006 数据结构 4M001 政治经济学 4S001 高等数学 3表 3学生作业表课程号学号作业1成绩出生日期1986-9-131984-2-231984-1-271986-9-101984-2-201984-3-201986-11-1学时数4048646448作业 2成绩联系1381290 ××××1350222 ××××1331256 ××××1331200 ××××1332080 ××××任课教师胡晶晶任泉马跃先孔繁新晓尘作业 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.查询数据库中有哪些专业班级。

数据库实验四:SQL数据查询

数据库实验四:SQL数据查询

数据库实验四:SQL数据查询一、实验目的与要求:1.实验目的熟练掌握SQL SELECT语句,能运用查询语句完成各种查询。

实验内容:在实验三和实验四的基础上完成查询操作,将题目中的x, y等具体化:1、一般简单查询(1)不带条件的查询指定字段(考虑去掉和不去掉重复值两种情况)。

(2)查询某个表中的所有记录。

(3)使用单个条件的简单查询。

(4)使用多个条件(AND关系)的查询。

(5)使用多个条件(OR关系)的查询。

(6)使用多个条件(混合AND和OR关系)的查询。

(7)使用带NOT运算的查询。

(8)使用BETWEEN···AND···的查询。

(9)使用NOT···BETWEEN···AND···的查询。

(10)使用LIKE运算符的字符串匹配查询。

(11)使用LIKE运算符的模板匹配查询。

(12)查询空值和非空值的查询(13)结果要求排序的查询(14)查询结果按多列排序,并分别要求升序和降序的查询。

(15)使用TOP显示前若干记录的查询。

(16)使用TOP显示前若干记录的查询,如果有满足条件的并列记录一并显示。

2、连接查询(17)两个关系的连接查询。

(18)带其他查询条件的两个关系的连接查询。

(19)多个关系(三个以上)的连接查询。

(20)两个关系的广义笛卡尔积运算结果。

(21)根据两个关系的广义笛卡尔积运算结果得到两个关系进行自然连接的结果。

(22)查询教师-课程信息,查询结果中包括教师姓名、职称、课程名称和课程性质等4个字段。

(23)查询教师-课程信息,查询结果中包括教师姓名、职称、课程名称和课程性质等4个字段,要求结果中列出所有教师信息(即包括不是任何课程责任教师的教师信息)。

(24)查询教师-课程信息,查询结果中包括教师姓名、职称、课程名称和课程性质等4个字段,要求结果中能够反映目前没有确定责任教师的课程信息。

数据库SQL的数据查询

数据库SQL的数据查询

数据库原理及应用实验报告实验2、SQL的数据查询2.1实验目的熟悉SQL语句的数据查询语言,能够SQL语句对数据库进行单表查询、连接查询、嵌套查询、集合查询和统计查询。

2.2实验内容实验内容主要是对数据库进行查询操作,包括如下四类查询方式:(1)单表查询●查询的目标表达式为所有列、指定的列或指定的列的运算三种不同。

●使用DISTINCT保留字消除重复行。

●对查询结果排序和分组。

●集合分组使用集函数进行各项统计。

(2)连接查询●笛卡儿连接和等值连接。

●自连接。

●外连接●复合条件连接。

●多表连接。

(3)嵌套查询●通过实验验证对子查询的两个限制条件。

●体会相关子查询和不相关子查询的不同。

●考察四类谓词的用法,包括:第一类,IN、NOT IN;第二类,带有比较运算符的子查询;第三类,SOME、ANY或ALL谓词的子查询,查询最大值和最小值;第四类,带有EXISTS谓词的子查询,实现“所有”等情况(如王宏的“所有”课程,“所有”女生选修的课程)(4)集合运算●使用保留字UNION进行集合或运算。

●采用逻辑运算符AND或OR来实现集合交和减运算。

1.3实验步骤以University_Mis数据库为例,该数据库中有四张如实验1,其中Score是每门课的考试成绩,Scredit是学生所有考试合格课程所获得的积分总数,Ccredit每门课程的学分数。

在数据库中,存在这样的联系:学生可以选择课程,一个课程对应一个教师。

在表Reports中保存学生的选课记录和考试成绩。

1.4 实验结果(1)查询学生的选课成绩合格的课程成绩,并把成绩换算为积分。

积分的计算公式为:[1+(考试成绩-60)*0.1]*Ccredit。

考试成绩>=60 否则=0(2)查询所有教师的编号及选修其课程的学生的平均成绩,按平均成绩降序排列。

(3)查询所有选了“数据库原理及其应用”课程的学生编号和姓名。

(4)求出选择了同一个课程的学生对。

(5)查询学号S52的学生的姓名和选修的课程名称及成绩。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数据库实验四:SQL数据查询一、实验目的与要求:1.实验目的熟练掌握SQL SELECT语句,能运用查询语句完成各种查询。

实验内容:在实验三和实验四的基础上完成查询操作,将题目中的x, y等具体化:1、一般简单查询(1)不带条件的查询指定字段(考虑去掉和不去掉重复值两种情况)。

(2)查询某个表中的所有记录。

(3)使用单个条件的简单查询。

(4)使用多个条件(AND关系)的查询。

(5)使用多个条件(OR关系)的查询。

(6)使用多个条件(混合AND和OR关系)的查询。

(7)使用带NOT运算的查询。

(8)使用BETWEEN···AND···的查询。

(9)使用NOT···BETWEEN···AND···的查询。

(10)使用LIKE运算符的字符串匹配查询。

(11)使用LIKE运算符的模板匹配查询。

(12)查询空值和非空值的查询(13)结果要求排序的查询(14)查询结果按多列排序,并分别要求升序和降序的查询。

(15)使用TOP显示前若干记录的查询。

(16)使用TOP显示前若干记录的查询,如果有满足条件的并列记录一并显示。

2、连接查询(17)两个关系的连接查询。

(18)带其他查询条件的两个关系的连接查询。

(19)多个关系(三个以上)的连接查询。

(20)两个关系的广义笛卡尔积运算结果。

(21)根据两个关系的广义笛卡尔积运算结果得到两个关系进行自然连接的结果。

(22)查询教师-课程信息,查询结果中包括教师姓名、职称、课程名称和课程性质等4个字段。

(23)查询教师-课程信息,查询结果中包括教师姓名、职称、课程名称和课程性质等4个字段,要求结果中列出所有教师信息(即包括不是任何课程责任教师的教师信息)。

(24)查询教师-课程信息,查询结果中包括教师姓名、职称、课程名称和课程性质等4个字段,要求结果中能够反映目前没有确定责任教师的课程信息。

(25)查询教师-课程信息,查询结果中包括教师姓名、职称、课程名称和课程性质等4个字段,要求结果中既能够反映目前不是责任教师的教师信息,又能反映目前没有确定责任教师的课程信息。

提示:(22)~(25)分别用内连接、左连接、右连接完成,分析它们的效果。

3、嵌套查询(注意使用ANY、ALL和EXISTS)(26)使用IN运算的简单嵌套查询。

(27)使用NOT IN运算的简单嵌套查询。

(28)使用关系运算(如等于)的简单嵌套查询。

(29)使用ANY或SOME的简单嵌套查询。

(30)使用ALL的简单嵌套查询。

(31)查询院系名称含“计算机”、职称为教授、所负责教程为必修课的教师姓名、职称、课程名称和课程学时等信息(分别用嵌套查询和连接查询完成,分析各自的效率)。

(32)设计两个内外层互相关的嵌套查询。

(33)使用EXISTS的嵌套查询。

(34)使用NOT EXISTS的嵌套查询。

4、汇总和分组查询(35)使用COUNT统计数目的查询。

(36)使用SUM计算合计的查询。

(37)一次完成求和、计数、计算平均值的查询。

(38)查询所有课程的成绩都大于60分的学生的平均分最高的学生信息。

(39)查询数据库课程的成绩大于70分的、所有课程平均分最高的学生信息。

(40)查询每个学生的平均成绩。

(41)查询每个学生的所有成绩的最高成绩、最低成绩、平均成绩和所考课程的门数。

(42)查询至少有10门必修课程考试成绩的每个学生的平均成绩。

(43)设计2个使用COMPUTE···BY和COMPUTE的查询。

(44)设计1个使用COMPUTE的查询。

(45)设计1个使用COMPUTE···BY的查询。

二、实验内容1、实验原理SQL SELECT查询语句的一般格式是:SELECT [ALL | DISTINCT] < 表达式>[, <表达式>…]FROM <表名>[,<表名>…][WHERE <逻辑表达式>][GROUP BY <列名>[, <列名>…][HAVING<谓词>]][ORDER BY <列名> [ASC | DESC], [ <列名> [ASC | DESC]] …]2、实验步骤与结果(1)调出SQL Server2005软件的用户界面,进入SQL Server ManagementStudio。

(2)输入自己编好的程序。

(3)检查已输入的程序正确与否。

(4)运行程序,并分析运行结果是否合理和正确。

在运行时要注意当输入不同的数据时所得到的结果是否正确。

(5)输出程序清单和运行结果。

实验过程及相关程序:1、一般简单查询(1)不带条件的查询指定字段(考虑去掉和不去掉重复值两种情况)。

select distinct 学号 from 选课select 学号 from 选课(2)查询某个表中的所有记录查询教师表中的所有记录(3)使用单个条件的简单查询查询成绩大于50的学生的学号select 学号 from 选课where 成绩>50(4)使用多个条件(AND关系)的查询select工资from教师where工资>200 and工资<500(5)使用多个条件(OR关系)的查询select工资from教师where工资<200 or工资>500(6)使用多个条件(混合AND和OR关系)的查询select*from学生where (院系='2'and生源='淮南')or(院系='6'and生源='淮北')(7)使用带NOT运算的查询select * from 学生where not (生源='合肥')(8)使用BETWEEN•••AND•••的查询select * from 选课where 成绩 between 86 and 93(9)使用NOT•••BETWEEN•••AND•••的查询select * from 选课where 成绩 not between 76 and93(10)使用LIKE运算符的字符串匹配查询。

select * from 课程where 课程性质 like '专业__'(11)使用LIKE运算符的模板匹配查询。

select*from院系where办公地点like'4_1'(12)查询空值和非空值的select * from 教师where 工资 is nullselect * from 教师where 工资 is not null(13)结果要求排序的查询select * from 选课 --升序order by 成绩select * from 选课 --降序order by 成绩 desc(14)查询结果按多列排序,并分别要求升序和降序的查询。

select * from 选课order by 学号, 成绩select * from 选课order by 学号, 成绩 desc(15)使用TOP显示前若干记录的查询select top 3 * from 学生(16)使用TOP显示前若干记录的查询,如果有满足条件的并列记录一并显示select top 3 * from 学生where 生源='淮南'(17)两个关系的连接查询。

select * from 学生 cross join 选课(18)带其他查询条件的两个关系的连接查询select 学生.学号,院系,姓名,性别,生源,课程编号,成绩from 学生 join 选课on 选课.学号= 学生.学号(19)多个关系(三个以上)的连接查询select * from 学生,课程,选课where 学生.学号= 选课.学号and 课程.课程编号= 选课.课程编号(20)两个关系的广义笛卡尔积运算结果。

select * from 学生 cross join 选课(21)根据两个关系的广义笛卡尔积运算结果得到两个关系进行自连接的结果select e.学号,院系,姓名,性别,生源,课程编号,成绩from 学生 e join 选课 won e.学号= w.学号(22)查询教师-课程信息,查询结果中包括教师姓名、职称、课程名称和课程性质等个字段select 姓名,职称,课程名称,课程性质from 教师 inner join 课程on 教师.教师编号=课程.责任教师(23)查询教师-课程信息,查询结果中包括教师姓名、职称、课程名称和课程性质等个字段,要求结果中列出所有教师信息(即包括不是任何课程责任教师的教师信息)select 姓名,职称,课程名称,课程性质from 教师 left join 课程on 教师.教师编号=课程.责任教师(24)查询教师-课程信息,查询结果中包括教师姓名、职称、课程名称和课程性质等个字段,要求结果中能够反映目前没有确定责任教师的课程信息。

select 姓名,职称,课程名称,课程性质from 教师 right join 课程on 教师.教师编号=课程.责任教师(25)查询教师-课程信息,查询结果中包括教师姓名、职称、课程名称和课程性质等4个字段,要求结果中既能够反映目前不是责任教师的教师信息,又能反映目前没有确定责任教师的课程信息select姓名,职称,课程名称,课程性质from教师full join课程on课程.责任教师=教师.教师编号(26)使用IN运算的简单嵌套查询。

select 教师.姓名from 教师where 教师.教师编号 in (select 课程.责任教师from 课程where 课程性质='专业基础')(27)使用NOT IN运算的简单嵌套查询select 教师.姓名from 教师where 教师.教师编号 not in (select 课程.责任教师from 课程where 课程性质='专业基础')(28)使用关系运算(如等于)的简单嵌套查询select 教师.姓名from 教师where 教师.教师编号=(select 课程.责任教师from 课程where 课程编号='02')(29)使用ANY或SOME的简单嵌套查询select姓名from教师where工资>=any(select工资from教师where教师编号=20118)select*from教师(30)使用ALL的简单嵌套查询。

select 姓名from 教师where 工资>= all(select 工资from 教师where 教师编号=20115)(31)查询院系名称含“计科系”、职称为教授、所负责教程为专业基础的教师姓名、职称、课程名称和课程学时等信息(分别用嵌套查询和连接查询完成,分析各自的效率)select姓名,课程名称,学时from教师join课程on责任教师=教师编号join院系on院系.编号=教师.院系where名称='计科系'and职称='教授'(32)设计两个内外层互相关的嵌套查询。

相关文档
最新文档