当前位置:文档之家› 数据库实验3 数据查询

数据库实验3 数据查询

实验三数据查询

[实验目的]

1.掌握SQL的单表查询操作

2.掌握SQL的连接查询操作

3.掌握SQL的嵌套查询操作

4.掌握SQL的集合查询操作

[实验时数] 2 学时

[实验内容]

本实验的主要内容是:

1.简单查询操作。包括投影、选择条件表达,数据排序,使用临时表等。

2.连接查询操作。包括等值连接、自然连接、求笛卡儿积、一般连接、外连接、内连接、左连接、右连接和自连接等。

3.在SQL Server查询分析器中,使用IN、比较符、ANY或ALL和EXISTS操作符进行嵌套查询操作。

4.组合查询与统计查询。

(1)分组查询实验。该实验包括分组条件表达、选择组条件的表达方法。

(2)使用函数查询的实验。该实验包括统计函数和分组统计函数的使用方法。

(3)组合查询实验。

(4)计算和分组计算查询的实验。

[实验方法]

1.将查询需求用Transact-SQL语言表示。

2.在SQL Server查询分析器的输入区中输入Transact-SQL查询语句。

3.设置查询分析器结果区为Standard Execute(标准执行)或Execute to Grid方式。

4.发布执行命令,查看查询结果;如果结果不正确,进行修改,直到正确为止。

5

查询分析器的主要作用是编辑Transact-SQL,将其发送到服务器,并将执行结果及分析显示出来(或进行存储)。查询分析功能主要是通过测试查询成本,判断该查询是否需要增加索引以提高查询速度,并可以实现自动建立索引的功能。

图5- 错误!未定义书签。SQL Server 2000查询分析器

查询分析器的界面如图5- 错误!未定义书签。所示。在查询生成器中的左边窗口是对象浏览器,其中按树结构列出了数据库对象;右上方是SQL代码区域,用于输入SQL的查询语句;右下方为结果区,用于显示查询结果和分析结果。对于TSQL语句的其执行结果,在结果区中可以有4种不同的输出形式:标准执行将结果直接显示的结果区;网格执行将结果以表格形式显示的结果区;计划执行显示执行计划;索引分析为在结果区中显示查询的索引情况。上述输出形式,可以通过菜单或按钮选择。

[实验步骤]

1.基本操作实验

(1)简单查询实验

1)Transact-SQL语句表示下列操作,在学生选课库中实现其数据查询操作:

求数学系学生的学号和姓名。

求选修了课程的学生学号。

求选修C1课程的学生学号和成绩,并要求对查询结果按成绩的降序排列,如果成绩相同则按学号的升序排列。

求选修课程C1且成绩在80~90分之间的学生学号和成绩,并将成绩乘以系数0.8输出。

求数学系或计算机系姓张的学生的信息。

求缺少了成绩的学生的学号和课程号。

2)在图书借阅库中实现其查询操作:将计算机类的书存人永久的计算机图书表,将借书日期在99年以前的借阅记录存人临时的超期借阅表。

(2)连接查询实验

用Transact-SQL语句表示,并在学生选课库中实现下列数据连接查询操作。

查询每个学生的情况以及他(她)所选修的课程。

求学生的学号、姓名、选修的课程名及成绩。

求选修C1课程且成绩为90分以上的学生学号、姓名及成绩。

查询每一门课的间接先行课(即先行课的先行课)。

(3)嵌套查询实验

Transact-SQL语句表示,在学生选课库中实现其数据嵌套查询操作。

求选修了高等数学的学生学号和姓名。

求C1课程的成绩高于张三的学生学号和成绩。

求其他系中比计算机系某一学生年龄小的学生(即求年龄小于计算机系年龄最大者的学生)。

求其他系中比计算机系学生年龄都小的学生。

求选修了髓课程的学生姓名。

求没有选修C2课程的学生姓名。

查询选修了全部课程的学生的姓名。

求至少选修了学号为“S2”的学生所选修的全部课程的学生学号和姓名。

(4)组合查询与统计查询实验

在图书借阅库中实现其查询操作。

查找这样的图书类别:要求类别中最高的图书定价不低于全部按类别分组的图书平均定价的2倍。

求机械工业出版社出版的各类图书的平均定价,用GROUP BY表示。

列出计算机类图书的书号、名称及价格,最后求出册数和总价格。

列出计算机类图书的书号、名称及价格,并求出各出版社这类书的总价格,最后求出全部册数和总价格。

查询计算机类和机械工业出版社出版的图书。

2.提高操作实验

(1)按下表的格式,建立职工部门库和职工、部门表,并向表中输入数据。

(2)Transact-SQL语句表示职工和部门之间的内连接、左外部连接和右外部连接,在职工部门库中实现其数据内连接和各种外查询操作。

(3) 将自设计的数据库应用项目中的分组、统计、计算和组合查询,用Transact-SQL 语句表示,并通过SQL Server查询分析器实现其查询操作。

[实验报告要求]

1.分别用SQL和Transact-SQL写出实验操作的查询语句,对两种语言进行比较。

2.实验步骤和实验结果。

3.实验中的问题和提高。

[注意事项]

1.查询结果的几种处理方式。

2.内连接、左外部连接和右外部连接的含义及表达方法。

3.输入SQL语句时应注意,语句中均使用西文操作符号。

4.子句WHERE<条件>表示元组筛选条件,子句HA VING<条件>表示组选择条件。

5.组合查询的子句间不能有语句结束符。

6.子句HA VING<条件>必须和GROUP BY<分组字段>子句配合使用。

[思考题]

1.如何提高数据查询和连接速度。

2.对于常用的查询形式或查询结果,怎样处理好?

3.组合查询语句是否可以用其他语句代替,有什么不同?

4.使用GROUP BY<分组条件>子句后,语句中的统计函数的运行结果有什么不同。

3数据库查询实验(1)

实验三数据库查询实验 (1)数据库的简单查询和连接查询实验 课时安排:2课时 一、实验目的和要求 使学生掌握SQL Server查询分析器的使用方法.加深对SQL和Transact-SQL语言的查询语句的理解。熟练掌握简单表的数据查询、数据排序和数据联结查询的操作方法。 二、实验内容 1 简单查询操作 该实验包括投影、选择条件表达、数据排序、使用临时表等。 2 连接查询操作 该实验包括等值连接、自然连接、求笛卡尔积、一般连接、外连接、内连接、左连接、右连接和自连接等。 三、实验方法 1 将查询需求用Transact-SQL语言表示。 2 在SQL Server查询分析器的输入区中Transact-SQL查询语句。 3 设置查询分析器结果区为Standard Execute(标准执行)或Execute to Grid方式。 4 发布执行命令,查看查询结果.如果结果不正确,进行修改.直到正确为止。 5 查询分析器及使用方法。 查询分析器是在开发数据库应用系统时使用最多的工具。查询分析器的主要作用是编辑Transact-SQL,将其发送到服务器,并将执行结果及分析显示出来(或进行存储).查询分析功能主要通过测试查询成本,判断该查询是否需要增加索引以提高查询速度,并可以实现自动建立索引的功能。 在查询生成器中的左边窗口是对象测览器,其中按树结构列出了数据库对象;右上方是SQL代码区域.用于输入SQL的查询语句;右下方为结果区,用于显示查询结果和分析结果、对于T-SQL语句的执行结果,在结果区中可以有4种不同的输出形式:标准执行将结果直接显示在结果区网格执行将结果以表格形式显示在结果区.计划执行显示执行计划;索引分析为在结果区中显示查询的索引情况。上述输出形式,可以通过菜单或按钮选择。 四、实验步骤 1 基本操作实验 (1)简单查询实验 l)用Transact-SQL语句表示下列操作.在学生选课库中实现其数据查询操作. ①求数学系学生的学号和姓名。 ②求选修了课程的学生学号。 ③求选修C1课程的学生学号和成绩,并要求对查询结果按成绩降序排列,如果成绩相同则按学号升序排列。 ④获选修课程C1且成绩在80~90分之间的学生学号和成绩,并将成绩乘以系数0.8输出。

实验三 数据库的查询和视图

实验三数据库的查询和视图 T4.1 数据库的查询 1、目的和要求 (1)掌握SELECT语句的基本语法。 (2)掌握子查询的表示。 (3)掌握连接查询的表示。 (4)掌握SELECT语句的GROUP BY子句的作用和使用方法。 (5)掌握SELECT语句的ORDER BY子句的作用和使用方法。 2、实验准备 (1)了解SELECT语句的基本语法格式。 (2)了解SELECT语句的执行方法。 (3)了解子查询的表示方法。 (4)了解连接查询的表示。 (5)了解SELECT语句的GROUP BY子句的作用和使用方法。 (6)了解SELECT语句的ORDER BY子句的作用。 3、实验内容 (1)SELECT语句的基本使用。 ①对于实验二给出的数据库表结构,查询每个雇员的所有数据。 新建一个查询,在“查询分析器”窗口中输入如下语句并执行。 单击右键空白处,选择执行,在下方会出现所有结果。 【思考与练习】 用SELECT语句查询Departments表和Salary表中所有信息。

新建一个查询,在“查询分析器”窗口中输入如下语句并执行。 单击右键空白处,选择执行,在下方会出现所有结果。 在“消息”中会发现总共有60行受影响。 ② 用SECECT语句查询Employees表中每个雇员的地址和电话号码。 新建一个查询,在“查询分析器”窗口中输入如下代码并执行。 单击右键空白处,选择执行,在下方会出现所有结果。 在“消息”中会发现有12行记录受影响 【思考与练习】 A、用SELECT语句查询Departments表和Salary表的一列或若干行。

利用SELECT语句查询Departments表和Salary表中EmployeeID为000001的记录,在“查询分析器”中输入以下代码。 执行后在下方会出现所有EmployeeID=000001的记录 B、查询Employees表中部门号和性别,要求使用DISTINCT消除重复行。 对表只选择某些行时,可能会出现重复行。此时就需要使用DISTINCT关键字消除结果中的重复行。此时使用DISTINCT消除在Employees中查询到的部门号和性别的重复行,具体代码如下。 上面代码分别是使用了DISTINCT和没有使用DISTINCT关键字,下面就是两种的结果的对比。 可以从上面的执行结果中看出使用了DISTINCT关键字,结果集中的重复行就被消除了。 ③查询EmployeeID为000001的雇员的地址和电话。

数据库原理实验报告(数据查询)

数据库原理实验报告 实验三数据查询 班级:××× 姓名:××× 学号:××× 数据查询 一、[实验目的] 1.掌握SQL的单表查询操作

2.掌握SQL的连接查询操作 3.掌握SQL的嵌套查询操作 4.掌握SQL的集合查询操作 二、[实验内容] 本实验的主要内容是: 1.简单查询操作。包括投影、选择条件表达,数据排序,使用临时表等。 2.连接查询操作。包括等值连接、自然连接、求笛卡儿积、一般连接、外连接、内连接、左连接、右连接和自连接等。 3.在SQL Server查询分析器中,使用IN、比较符、ANY或ALL和EXISTS操作符进行嵌套查询操作。 4.组合查询与统计查询。 (1)分组查询实验。该实验包括分组条件表达、选择组条件的表达方法。 (2)使用函数查询的实验。该实验包括统计函数和分组统计函数的使用方法。 (3)组合查询实验。 (4)计算和分组计算查询的实验。 三、[实验方法] 1.将查询需求用Transact-SQL语言表示。 2.在SQL Server查询分析器的输入区中输入Transact-SQL查询语句。 3.设置查询分析器结果区为Standard Execute(标准执行)或Execute to Grid方式。 4.发布执行命令,查看查询结果;如果结果不正确,进行修改,直到正确为止。 5 查询分析器的主要作用是编辑Transact-SQL,将其发送到服务器,并将执行结果及分析显示出来(或进行存储)。查询分析功能主要是通过测试查询成本,判断该查询是否需要增加索引以提高查询速度,并可以实现自动建立索引的功能。 图5- 错误!未定义书签。SQL Server 2000查询分析器 查询分析器的界面如图5- 错误!未定义书签。所示。在查询生成器中的左边窗口是对象浏览器,其中按树结构列出了数据库对象;右上方是SQL代码区域,用于输入SQL的查

实验三数据库的基本查询

嘉应学院计算机学院 一、实验目的: 通过该实验掌握应用SQL 查询数据库的基本方法,包括单表、多表查询。 二、实验原理 数据库查询是数据库的核心操作。SQL语言提供了SELECT语句进行数据库的查询。 SELECT[ALL|DISTINCT]<目标列表达式〉[,<目标列表达式〉]... FROM<表名或视图名〉[,<表名或视图名〉]... [WHERE<条件表达式>] [GROUP BY<列名1〉[HA VING<条件表达式>]] [ORDERBY<列名2〉[ASC|DESC]] 三、实验内容和方法 实验用的数据库:用实验三建立的数据库:School 1. 投影查询 (1) 查询SC表的sno的不重复记录。 (2) 改变查询结果的标题名:sno为学号,sname为姓名,ssex 为性别,sdept 为系名。

(3) 查询STUDENT表的前3条记录(top 3)。 3. 选择查询 (1) 查询成绩在60-80之间的姓名、系名和成绩。 (2) 查询信息系和计算机系的姓名和成绩。 (3) 查询计算机系或女同学的记录。

(4) 查询李姓同学的记录。 (5) 查询计算机系女同学的记录。 4. 排序查询 (1)查询STUDENT表的所有字段和记录按年龄由大到小排序。 (2)查询STUDENT表的所有字段和记录按年龄由小到大排序。

5. 结合统计函数 (1) 查询SC表的最高分。 (2) 统计SC表95001学生的平均分。 (3)统计SC表各课程的最低分。 (4)查询超过平均分的学生姓名和系名。

(5)查询低于平均分的学生姓名、系名和课程名。 6.其他 (1)查询其他系中比计算机系某一学生小的学生姓名和年龄。 (2)查询其他系中比计算机系所有学生年龄都小的学生姓名和年龄。

数据库实验报告(实验三)

沈阳工程学院 学生实验报告 (课程名称:数据库系统原理) 实验题目:数据查询(一) 班级学号姓名 日期201年月日地点指导教师

一、实验目的 掌握SQL查询命令:主要针对单表查询。 二、实验环境 Oracle10g数据库系统。 三、实验内容与要求 使用Select命令完成下列数据查询。 简单查询: ⑴查询全体顾客的编号和姓名。 ⑵查询全部商品的详细记录。 ⑶查询顾客的姓名和出生年份。 ⑷查询购买了商品的顾客的编号。 ⑸查询职业(g_work)为“教师”的顾客的姓名。 ⑹查询“沈阳市”年龄在20岁以下的顾客的编号和年龄。 ⑺查询年龄在20—22岁的顾客的编号。 ⑻查询“沈阳”、“大连”、“北京”的顾客信息。 ⑼查询姓"王"的顾客的信息。 ⑽查询购买商品编号为“02”的顾客的编号和购买数量,结果按顾客编号升序,购买数量降序排列。 ⑾查询顾客总人数。 ⑿查询购买商品编号为“02”的一次最高购买量。 ⒀查询购买2次和2次以上商品的顾客编号。 四、实验过程及结果分析 ⑴查询全体顾客的编号和姓名,如图1所示。 select guestid,guestname from guest;

图1 ⑵查询全部商品的详细记录,如图2所示。 select * from goods;

图2 ⑶查询顾客的姓名和出生年份,如图3所示。 Select guestname,2016-g_age from guest;

图3 ⑷查询购买了商品的顾客的编号,如图4所示。Select distinct guestid From purchase;

图4 ⑸查询职业(g_work)为“教师”的顾客的姓名,如图5所示。 Select guestname From guest Where g_work='教师'; 图5 ⑹查询“沈阳市”年龄在20岁以下的顾客的编号和年龄,如图6所示。Select guestid,g_age From guest Where g_age<20 and g_addr='沈阳';

数据库实验三_查询

南昌大学实验报告 ---实验三查询 学生姓名:丁金芝学号:6100511080 专业班级:管理科学与工程类112班实验类型:■验证□综合□设计□创新实验日期:实验成绩:一、实验目的 1.掌握select语句的基本语法 2.了解select语句中各子句的作用和特点 3.掌握select语句的统计函数的作用和用法 4.掌握子查询的用法 5.掌握连接查询的用法 二、实验内容与结果 (一).简单查询 1.select 选择列 --1、选择所有列(*),查询学生表中的所有纪录。 --2、选择特定列,查询学生表中全体学生的学号,姓名,性别。

--3、计算列,查询选课表中给每个学生加了20分后的所有课号和成绩 末分数显示出来。

重复。 --6、限制返回行数 --top n 关键字;只显示表中前面n条记录。 --top n percent 关键字;只显示前n%条记录。 --显示学生表中的前3条记录。

--显示学生表中的前3%条记录 2 .where 子句 --1、比较运算符:(1)查询分数<80分学生的学号、成绩、课号。 (2)查询学号001学生的情况。 --2、范围运算符:查询学生分数在70-80之间的学生的学号、课号。(包括70分、80分)

--3、列表运算符: (1)查询学号为'001' 、'005'、'007' 、'008'的学生学号。 (2)查询学生成绩不在60-70之间的学生的学号、课号、成绩。

--4、匹配运算符: (1)查询姓刘学生的信息。 (2)查询姓刘单名的学生信息。 (3)查询01-03年级学生的信息。

数据库实验卡3-数据库多表连接查询

天津师范大学软件学院数据库原理实践课程实验卡 实验序号: 3 实验室名称:计信学院实验室 实验名称数据库的连接查询 实验类型验证计划学时 2 人组数 1 首开日期 面向专业(逐个填写) 主要配置仪器设备名称设备规格型号每组台件数 1.计算机 1 2.投影仪 1 消耗材料名称每组消耗量消耗材料名称每组消耗量 实验项目简介 实验目的: 通过上机实验验证数据库的多表的连接查询。 实验内容: 1、将students数据库还原。 2、在students数据库中,完成以下查询操作,将查询窗口中的命令保存为实验三.sql。 (1)查询计算机系学生的修课情况,要求列出学生的名字、所修课的课程号和成绩,查询结果存入新表t1。 (2)查询“信息管理系”修了“计算机文化学”的学生姓名和成绩,查询结果存入新表t2。 (3)查询所有选修了Java课程的学生情况,列出学生姓名和所在系,查询结果存入新表t3。 (4)统计每个系的学生的考试平均成绩,查询结果存入新表t4。 (5)统计计算机系学生每门课程的选课人数、平均成绩、最高成绩和最低成绩,查询结果存入新表t5。 (6)查询与刘晨在同一个系学习的学生的姓名和所在的系,查询结果存入新表t6。 (7)查询与“数据结构”在同一个学期开设的课程的课程名和开课学期,查询结果存入新表t7。 (8)查询至少被两个学生选的课程的课程号,查询结果存入新表t8。 (9)查询全体学生的选课情况,包括选修了课程的学生和没有选修课程的学生,查询结果存入新表t9。 (10)查询没人选的课程的课程名,查询结果存入新表t10。 (11)查询计算机系没有选课的学生,列出学生姓名和性别,查询结果存入新表t11。 (12)统计计算机系每个学生的选课门数,包括没有选课的学生,查询结果存入新表t12。 (13)查询信息管理系选课门数少于3门的学生的学号和选课门数,包括没有选课的学生。查询结果按选课门数递增排序,查询结果存入新表t13。 (14)查询考试成绩最高的三个成绩,列出学号、课程号和成绩,查询结果存入新表t14。 (15) 查询Java考试成绩最高的前三名的学生的姓名、所在系和Java考试成绩,查询结果存

实验三查询数据库原理实验

实验报告日期2013 年11月12日 1. 实验目的 1) 熟悉SQL Server 查询分析器环境。 2) 掌握基本的SELEC 查询及其相关子句的使用。 3) 掌握复杂的SELEC 查询,如多表查询、子查询、连接和联合查询。 2. 实验内容 1) 启动SQL Server 查询分析器环境。 2) 简单查询操作。该实验包括投影、选择条件表达,数据排序,使用临时表 等。具体完成以下题目,将它们转换为 SQL 语句表示,在XSCJ 数据库中实现 其数据查询操作。 a ) 查询计算机系学生的学号和姓名 b ) 查询选修了课程的学生学号 c ) 查询选修课程号为‘101’的学号和成绩,并要求对查询结果按成绩的 降序排列,如果成绩相同按学号的升序排列。 d ) 查询选修课程号为‘101 '且成绩在80~90之间的学生学号和成绩,并 成绩乘以输出。 e ) 查询水利系或计算机系姓陈的学生的信息。 f ) 查询缺少了成绩的学生的学号和课程号 g ) 在KC 表中查询学分低于3的课程信息,并按课程号升序排列。 h ) 查询全体学生的姓名,出生年份,和所在系 i ) 查询 计算机,经济系的所有学生的姓名和性别 j ) 查询没有先行课的课程的课程号和课程名 3) 连接查询操作。该实验包括等值连接、自然连接、求笛卡儿积、一般连接、 外连接、内连接、左连接、右连接和自连接等。 a ) 查询107号课程不及格的学生信息(学号,姓名,联系电话)。 b ) 查询学生的学号、姓名、选修的课程号及成绩 c ) 查询选修课程号为‘101 '且成绩在90以上的学生学号、姓名和成绩 d ) 查询每一门课程的间接先修课(即先修课的先修课) SELEC ■课程名 FROM xs_kc A JOIN xs_kc B Where A.先修课程=B.课程名 and 先修课程is notnull e ) 用连接查询在XSQK 表中查询住在同一寝室的学生,即其联系电话相同 SELECT A 学号,A.姓名,A.联系电话 FROM XSQK A JOIN XSQK B ON A.联系 电话=B.联系电话 WHERE A.学号!=B.学号 4) 嵌套查询 a )查询与’杨颖’在同一个系学习的学生的信息 select * from XSQK where 所在系 in (select 所在系 from XSQK where 课程 数据库原理与应用 实验名称查询数据库 院系— 计算机―专业班级_姓名__学 号 0202 实验日期2013 年11 月5 日 10 月29日 1 1 月12日

实验3 SQL的简单查询功能

实验3 SQL的简单查询功能 实验目的 学会使用MS SQL SERVER 2000的查询分析器完成SQL的简单查询功能,主要包括单表查询的选择、投影、排序、聚集函数、分组等。 知识点拨: 1.查询语句基本格式: 2.单表查询; 3.选择 4.投影 5.排序 6.聚集函数 7.分组查询 1.分组查询与选择的比较: 实验内容 1.掌握SQL查询语句的一般格式; 2.学会包括选择、投影、排序、聚集函数、分组等的单表查询; 实验步骤 1.选择数据库JX; 2.以下查询操作使用查询分析器完成: (1)查询所有教师的教工号、姓名和电话号码信息,查询结果列项是中文名;MODIFY PROJECT f:\shuju库原理\项目1.pjx set default to F:\shuju库原理 select tno 教师编号,tname 教师姓名 ,photo 教师电话号码; from teacher

(2)查询‘计算机’系的所有副教授的基本信息; from teacher list select *; from teacher; where porf='副教授' (3)查询所有女同学的姓名及所在的系,显示结果不允许重复出现; select distinct sname,sdept; from Student; where sex='女 ' (4)查询各教师的姓名、教工号及工资按95%发放的信息,并将按95%发放的工资列改名为‘预发95%工资’; alter table teacher;

add 工资按95发放 char(20) 列名更改以后: 代码: alter table teacher rename 工资按95发放 to 预发百分之95工资 list select * from teacher (5)检索计算机系总学分在50~100的学生信息,并按学号降序排列;select * from student,score; where student.sno=score.sno and sdept='计算机'and degree成绩>=50 and degree成绩<= 100; order by student.sno desc

数据库原理与应用实验作业参考答案

数据库原理与应用实验报告参考答案 实验1 数据库的建立修改与删除 实验2 表结构的建立修改删除及完整性约束条件定义 实验3 数据查询与更新 完成以下实验报告: 《数据库原理与应用》实验报告 一、实验题目 实验3 数据查询与更新 二、实验环境 操作系统:Windows XP。 数据库管理系统:MS SQL Server 2000或MS SQL Server 2008。 三、实验目的 1.掌握SELECT语句的语法、语义及语用。 2.掌握基于单表的查询方法。 3.掌握基于多表的查询方法。 4.掌握相关与不相关的嵌套查询。 5.掌握集合查询。 6.掌握插入(INSERT)、修改(UPDATE)和删除(DELETE)语句的使用。 四、实验内容 (一) 规定内容 1. 单表查询 USE ST --[3_1]查询全体学生的详细记录。 select * from student --[3_2]查询选修了课程的学生学号。 SELECT DISTINCT sno FROM sc --[3_3]将“学生”表中的sno、sname这2列合并为1列snosname输出(不改变表中存储的内容),其余列不变。 select sno+sname snosname,ssex,sage,sdept from student --[3_4]查询年龄不在20~23岁之间的学生姓名、系别和年龄。 方法1: SELECT sname,sdept,sage FROM student

WHERE sage NOT BETWEEN 20 AND 23; 方法2: SELECT sname,sdept,sage FROM student WHERE sage<20 or sage>23; --[3_5] 查询计算机科学系(cs)、数学系(ma)和信息系(is)学生的姓名和性别。 SELECT sname,ssex FROM student WHERE sdept IN ( 'cs','ma','is' ); --[3_6]查询所有姓“刘”学生的姓名、学号和性别。 SELECT sname,sno,ssex FROM student WHERE sname LIKE '刘%'; --[3_7]查询名字中第2个字为"阳"字的学生的姓名和学号。 SELECT sname,sno FROM student WHERE sname LIKE '_阳%'; --[3_8]某些学生选修课程后没有参加考试,所以有选课记录,但没有考试成绩。 --查询缺少成绩的学生的学号和相应的课程号。 SELECT sno,cno FROM sc WHERE grade IS NULL; --[3_9]查询计算机系年龄在20岁以下的学生姓名。 SELECT sname FROM student WHERE sdept='cs' AND sage<20; --[3_10]查询选修了3号课程的学生的学号及其成绩,查询结果按分数降序排列。 SELECT sno,grade FROM sc WHERE cno='3' ORDER BY grade DESC; --[3_11]查询全体学生情况,查询结果按所在系升序排列,同一系中的学生按性别降序排列。 SELECT * FROM student ORDER BY sdept,sage DESC; --使用集函数 --[3_12]查询学生总人数。 SELECT COUNT(*) 学生总人数 FROM student; --[3_13]查询选修了课程的学生人数。 SELECT COUNT(DISTINCT sno) 选课人数 --注:用DISTINCT以避免重复计算学生人数FROM sc; --[3_14]计算1号课程的最高、最低及平均成绩。 SELECT MAX(grade) '1号课程最高分', MAX(grade) '1号课程最低分', AVG(grade) '1号课程平均成绩'

实验三数据查询

实验三数据查询 《实验三数据查询》实验说明 一、适用专业和课程:计算机专业《数据库》实验学时:2 二、实验目的: (1) 熟悉SQL Server 2005的交互式SQL工具; (2) 掌握SELECT语句,能够运用SELECT语句进行数据查询。 三、实验内容: 完成各类查询操作,包括单表查询,连接查询,嵌套查询,集合查询等。 四、实验要求: (1) 熟练掌握单表的各种查询操作,包括比较、确定范围、确定集合、字符匹配、 多重条件(逻辑运算)等谓词的用法; (2) 掌握别名的概念、掌握DISTINCT、ALL的使用; (3) 掌握空值的概念及查询判断条件的表达,了解查询时系统对NULL值的处理; (4) 掌握使用GROUP BY子句、HAVING子句、ORDER BY子句对查询结果进行排 序和分组; (5) 掌握SUM、A VG、COUNT、MAX、MIN等集合函数的用法; (6) 熟练掌握连接查询(自然连接、表内自连接、复合条件连接、多表连接); (7) 熟练掌握嵌套查询 通过实验验证在子查询的SELECT语句中不能使用ORDER BY子句; 体会相关与不相关子查询的不同; 掌握几类谓词的用法:IN,NOT IN 、带有比较运算符的子查询、带有ANY (SOME)或ALL谓词的查询、带有EXISTS 谓词的查询; (8) 熟练掌握集合查询;

(9) 保存上机过程中的所有SQL操作,SQL文件命名:姓名学号后四位-3.sql,如 xukai3112-3.sql; (10) 使用实验二建立的数据库完成上机练习题。 五、实验环境和仪器(软件、硬件): (1) 硬件环境:普通联网的PC机; (2) 操作系统:Windows 2000或者Windows XP; (3) 数据库管理系统:MS SQL Server 2005。 六、实验步骤(程序,流程等):(包含实验记录,提供的数据、图表等资料内容) (一)针对学生课程数据库查询 (1)查询全体学生的学号与姓名。 (2)查询全体学生的姓名、学号、所在系。 (3)查询全体学生的详细记录。 (4)查全体学生的姓名及其出生年份。 (5)查询全体学生的姓名、出生年份和所有系,要求用小写字母表示所有系名。 (6)使用列别名改变查询结果的列标题 (7)查询选修了课程的学生学号。 (8)查询所有年龄在20岁以下的学生姓名及其年龄。 (9)查询年龄在20~23岁(包括20岁和23岁)之间的学生的姓名、系别和年龄。 (10)查询年龄不在20~23岁之间的学生姓名、系别和年龄。 (11)查询信息系(IS)、数学系(MA)和计算机科学系(CS)学生的姓名和性别。 (12)查询既不是信息系、数学系,也不是计算机科学系的学生的姓名和性别。 (13)查询所有姓刘学生的姓名、学号和性别。 (14)查询学号为20080711的学生的详细情况。(具体的学号值根据表中数据确定)

实验三表数据的简单查询

实验三表数据的简单查询 实验学时: 2 学时 实验类型:设计 实验要求:必做 一、实验目的 掌握 SELECT 语句的基本用法。掌握计算列的用法。掌握 WHERE 子句中各类查询条件的写法。 二、实验内容 1 、在连接“ MySQL57 ” 中新建数据库“ world ” , 并将数据库文件 world.sql 导入到该数据库之中。 2 、查询country 表中的国名( Name )、洲名( Continent )和地区( Region )。 SELECT Name,Continent,Region from country; 3 、使用WHERE 子句,查询country 表中政体( GovernmentForm )属于共和国( Republic )的国家的 NAME 和Population 、 GovernmentForm 。 SELECT Name,Population,GovernmentForm from country where GovernmentForm='Republic';

4 、使用 WHERE 子句,从country 表中检索出所有领土面积(Surface Area)超过一百万平方公里的国家名称( Name )、洲名( Continent )以及领土面积( SurfaceArea )。 SELECT Name,Continent,SurfaceArea from country where SurfaceArea>1000000; 5 、从country 表中查询领土面积不介于一百万和五百万平方公里之间的中国国家的名称(NAME)和领土面积(领土面积除以一万显示)。 SELECT Name,SurfaceArea/1000000 from country where name="China" and SurfaceArea not BETWEEN 1000000 and 5000000; 6、将city表中的ID改为char类型。 ALTER TABLE city MODIFY ID char(20); 7、在city表中查询国家代码CountryCode为ARG的名称Name 和人口Population。 SELECT Name,Population from city WHERE CountryCode="ARG"; 8 、 country 表中查询独立年份(IndepYear)为空的国家的名称、独立年份。

实验三、数据库单表查询

实验三单表查询 一、实验目的 掌握简单SQL查询语句的应用,包括like 、top 、order by 、compute 和聚集函数的应用。 二、实验内容 1、基本查询 (1)查询Student 表中全体学生的全部信息 select * from Student (2)查询全体学生的学号、姓名select Sno, Sname from Student 2、查询时改编列标题的显示、 查询全体学生的学号、姓名、家庭地址信息,兵分别加上“学生“、“学号”、“家庭地址”的别名信息 select Sno 学号, Sname 姓名, Home_addr 家庭住址信息 from Student 3、条件查询 (1)、查询成绩大于80 分的学生的学号及课程号、成绩select Sno, Cno, Grade from SC where Grade>80 (2)查询成绩在75~80 分的学生的学号及课程号、成绩select Sno, Cno, Grade from SC where Grade between 75 and 80 3)查询选秀了课程号为“ 002”且成绩大于80 分的学生的学号 select Sno from SC where Cno=002 and Grade>80 (4)某些学生选秀某们课程后没有参加考试,所以有选课记录,但没有考

试成绩,请查询缺少成绩单额学生的学号和相应的课程号 select Sno, Cno from SC where Grade=null 4、基于IN 子句的数据查询 从Course 表中查询出”高数”、“ C 语言程序设计”的所有信息 select * from Course where Cname in( ' 高数' , 'C 语言程序设计' ) 5、基于between⋯and 子句的数据查询查询所有成绩在70~80 分之间的学生选课信息select Sno, Cno, Grade from SC where Grade between 70 and 80 6、基于like 子句的查询 (1)从Student 表中分别检索出姓“张”的所有同学的资料 select * from Student where Sname like ' 张%' (2)检索名字的第二个字是“红”或“虹”的所有同学的资料 select * from Student where Sname like '_ 红%' or Sname like '_ 虹%' 3)查询课程名为Visual_Basic 的课程的学分 select Credit from Course where Cname='Visual_Basic' 7、使用top 关键字查询 (1)从选课表中检索出前3 个课程信息 select top 3 * from SC

实验三 数据库的查询

实验三数据库的查询 一、目的与要求 1、掌握数据库对象的操作过程,包括创建、修改、删除 2、熟悉表的各种操作,包括插入、修改、删除、查询 3、熟练掌握常用SQL 语句的基本语法,加深对SQL和Transact-SQL语言的查询语句的理解。 二、实验设备与环境 使用SQL Server 数据库管理系统提供的SSMS 和查询编辑器。 三、实验内容 1、创建教材P82中的学生-课程数据库,并创建相应的数据表及完整性约束。(需要在表中添加相应的记录(10条以上),请自行设计) 2、在定义的“学生-课程数据库”中,使用T-SQL语句完成以下查询: (1)求计算机系(CS)学生的学号和姓名。 (2)求选修了数学的学生学号、姓名和成绩。 (3)求选修1号课程的学生学号和成绩,并要求对查询结果按成绩降序排列,如果成绩相同则按学号升序排列。 (4)查找选修课程的平均成绩位于前三名的学生的学号。 (5)查询计算机系的姓刘且单名的学生的信息。 (6)查询至少选修两门课程的学生学号。 (7)查询学生的学号、课程号以及对应成绩与所有学生所有课程的最高成绩的百分比。 (8)查询选修“数据库”课程,且成绩在80分以上的学生的学号和成绩。(9)查询所有姓“王”的同学没有选修的课程名。(请分别用exists和in完成该查询) (10)查询选修了全部课程的学生的姓名。(请至少写出两种查询语句)(11)求选修了学生“200215121”所选修的全部课程的学生学号和姓名。(12)查询每一门课的间接先修课。

(13)列出所有学生所有可能的选课情况。 (14)列出每个学生的学号及选修课程号,没有选修的学生的学号也一并列出。(15)输出与“张立”同性别并位于同一个系的所有同学的姓名。(请至少写出两种查询语句) (16)查询至少被两名男生选修的课程名。 (17)对被两名以上学生所选修的课程统计每门课的选课人数。要求输出课程号和选修人数,查询结果按人数降序排列;若人数相同,按课程号升序排列。(18)列出选修课程超过3门的学生姓名及选修门数。 (19)检索至少选修课程号为1号和3号的学生姓名。 (20)检索至少选修课程“数学”和“操作系统”的学生学号。 (21)查询‘操作系统’课程的最高分的学生的姓名、性别、所在系。 (22)查询数据结构的成绩低于操作系统的成绩的学生姓名及该生的这两门课的成绩。 (23)所有成绩都在70分以上的学生姓名及所在系。 四、实验报告要求 1、写出与上述查询任务相对应的SQL查询语句。 2、记录在实验过程中遇到的问题、解决办法及心得体会。

实验三SQL(二)SQL语言进行简单查询实验报告范文

实验三SQL(二)SQL语言进行简单查询实验报告范文 实验目的: 1.掌握SQL查询语句的一般格式 2.掌握简单数据查询操作。 3.熟练 掌握各种查询条件的表示。 4.掌握排序和分组操作在SQL语句中的实现。 5.掌握集函数的使用。 实验内容; 1.创建学生表tudent、课程表coure和选课表SC,并输入数据(注意 数据的完整性。);(可以使用实验一中已经建立的表和数据)2.对各表 中的数据进行不同条件的查询;1)查询全体学生的学号和姓名2)3)4)5)6)7)8)9) 查询全体学生的详细记录 查询所有选修过课程的学生学号 查询考试有不及格的学生学号查询不是信息系(IS)、计算机系(CS)的学生性别、年龄、系别查询选修了4号课的学生学号和成绩,结果按成 绩降序排列查询每个课程号和相应的选课人数 查询计算机系(CS)的学生姓名、年龄、系别 查询年龄18-20岁的学生学号、姓名、系别、年龄; 10)查询姓刘的学生情况 11)查询既选修1号课程,又选修2号课程的学生学号12)查询 学生的姓名和出生年份(今年2003年)13)查询没有成绩的学生学号

和课程号14)查询总成绩大于200分的学生学号15)查询每门课程不 及格学生人数 16)查询不及格课程超过3门的学生学号 17)查询年龄在10到19岁之间的学生信息 18)查询全体学生情况,按所在系升序排列,同一个系的学生按年 龄降序排列19)查询选了1号课程的学生平均成绩20)查询选了3号 课程的学生的最高分21)查询每个同学的总成绩 实验步骤与过程: 1.创建学生表tudent、课程表coure和选课表SC,使用实验一中已经 建立的表和数据。2.并输入数据,设置主键。 3.建立索引及三表之间关系。 4.按照SQL语句格式及题目要求输入语句进行以下查询: 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、查询全体学生情况,按所在

SQL数据的查询和更新实验报告报告

SQL数据的查询和更新实验报告报告 实验三、SQL的数据查询 1、实验目的 熟悉SQL语句的数据查询语言,能够SQL语句对数据库进行单表查询、连接查询、嵌套查询、集合查询和统计查询。 2、实验内容 实验内容主要是对数据库进行查询操作,包括如下四类查询方式:单表查询 查询的目标表达式为所有列、指定的列或指定的列的运算三种不同。使用DISTINCT保留字消除重复行。对查询结果排序和分组。 集合分组使用集函数进行各项统计。连接查询 笛卡儿连接和等值连接。自连接。外连接 复合条件连接。多表连接。嵌套查询 通过实验验证对子查询的两个限制条件。体会相关子查询和不相关子查询的不同。考察四类谓词的用法,包括:第一类,IN、NOT IN; 第二类,带有比较运算符的子查询;第三类,SOME、ANY或ALL谓词的子查询,查询最大值和最小值;第四类,带有EXISTS谓词的子查询,实现“所有”等情况 集合运算

使用保留字UNION进行集合或运算。 采用逻辑运算符AND或OR来实现集合交和减运算。 3、实验步骤 以University_Mis数据库为例,该数据库中有四张如实验一,其中Score是每门课的考试成绩,Scredit是学生所有考试合格课程所获得的积分总数,Ccredit每门课程的学分数。在数据库中,存在这样的联系:学生可以选择课程,一个课程对应一个教师。在表Reports中保存学生的选课记录和考试成绩。 1 请先输入如下元组,再对数据库进行有关的查询操作:图、Students表 图、Teachers表 图、Courses表 图、Reports表 2 查询性别为“男”的所有学生的名称并按学号升序排列。 查询学生的选课成绩合格的课程成绩,并把成绩换算为积分。积分 的计算公式为:[1+(考试成绩-60)*]*Ccredit。考试成绩>=60。 查询学分是3或4的课程的名称。

数据库实验 数据查询

内容一 一.实验目的 简单 SELECT 语句 观察查询结果 体味 语句实际应用; 要求学生能够在查询分析器中使用 语句进行简单查询。 熟练掌握简单表的数据查询、数据排序和数据连接查询的操作方法。 二.实验内容 简单查询操作 数据库实现以下查询: 求计算机系的学生学号和姓名 求选修了课程的学生学号; 求选修 课程的学生学号和成绩, 并要求对查询结果按成绩降序序罗列, 如果成绩相同则按学号 的升序罗列; 求选修课程 且成绩在 - 之间的学生学号和成绩,并将成绩乘以系数 输出; 求计算机系和数学系的姓张的学生的信息 求缺少了成绩的学生的学号和课程号。 将 以后的成绩大于 分的学生成绩存入永久成绩表; 将 年以前的成绩存入暂时成绩表 中 连接查询操作 ( ) 查询每一个学生的情况以及他(她)所选修的课程; ( ) 求学生的学号、姓名、选修的课程名及成绩; ( ) 求选修 课程且成绩在 分以上的学生学号、姓名及成绩; ( ) 查询每一门课的间接先行课。 三.实验步骤 (详细) ((( ( ((( 对 ) ) ) ) ) ) )

简单查询操作 此部份查询包括投影、选择条件表达、数据排序、使用暂时表等。 ① 求计算机系的学生学号和姓名; , ’计算机’ ①求选修了课程的学生学号; 代码: ③求选修课程的学生学号和成绩,并要求对查询结果按成绩的降序罗列,如果成绩相同则按学号的升序罗列;

④ 求选修课程且成绩在-之间的学生学号和成绩,并将成绩 乘以系数输出; ⑤求计算机系和数学系的姓张的学生的信息 ⑥求缺少了成绩的学生的学号和课程号。 ⑦将以后的成绩大于分的学生成绩存入永久成绩表;将年以前的成绩存入暂时成绩表中。 连接查询操作 对数据库实现以下查询: ①查询每一个学生的情况以及他(她)所选修的课程; ② 求生的学号、姓名、选修的课程名及成绩; ③ 选修课程且成绩在分以上的学生学号、姓名及成绩; ④询每一门课的间接先行课。

相关主题
文本预览
相关文档 最新文档