文档库 最新最全的文档下载
当前位置:文档库 › 2数据的查询

2数据的查询

2数据的查询
2数据的查询

二:数据的查询

1、本次预计讲解的知识点

1、SQL语法的基本格式及简单的查询、限定查询、分组统计的使用;

2、scott用户下的主要表的结构,需要记下;

3、单行函数的使用;

2、具体内容

2.1、scott用户的表结构(重点、背)

在oracle的学习之中,重点使用的是SQL语句,而所有的SQL语句都要在scott用户下完成,这个用户下一共有四张表,可以使用:

Select * from tab;

查看所有的数据表名称,如果现在要想知道每张表的结构,则可以采用一些命令完成:

Desc 表名称;

1、部门表:dept

No 名称类型描述

1 DEPTNO NUMBER(2) 表示部门编号,有两位数字所组成

2 DNAME V ARCHAR2(14) 部门名称,最多由14个字符所组成

3 LOC V ARCHAR2(13) 部门所在的位置

2、雇员表:emp

No 名称类型描述

1 EMPNO NUMBER(4) 雇员的编号,由4位数字组成

2 ENAME V ARCHAR2(10) 雇员的姓名,由10位字符组成

3 JOB V ARCHAR2(9) 雇员的职位

4 MGR NUMBER(4) 雇员对应的领导编号,领导也是雇员

5 HIREDATE DATE 雇员的雇佣日期

6 SAL NUMBER(7,2) 基本工资,其中有两位小数,五位整数,一共七

7 COMM NUMBER(7,2) 奖金,佣金

8 DEPTNO NUMBER(2) 雇员所在的部门编号

No 名称类型描述

1 GRADE NUMBER 工资的等级

2 LOSAL NUMBER 此等级的最低工资

3 HISAL NUMBER 此等级的最高工资

4、工资表:bonus

No 名称类型描述

1 ENAME V ARCHAR2(10) 雇员姓名

2 JOB V ARCHAR2(9) 雇员职位

3 SAL NUMBER 雇员的工资

4 COMM NUMBER 雇员的奖金

工资表暂时是使用不到的,但是以上所给出的四张表的表结构应该记下来。

2.2简单查询(重点)

Select * FROM emp;

这种查询语句的结构主要指的是从emp表中查询出所需要的指令,但是这个是属于SQL语句的范畴;

SQL(structured query language,结构化查询语句)是一个分成强大的数据库语言。SQL通常用于与数据库的通讯。ANSI(美国国家标准学会)声称,SQL是关系数据库管理系统最标准的语言、Oracle数据库之所以发展的很好,主要也是因为oracle是全世界最早采用SQL语句的数据库产品。SQL功能强大,可以分成以下几组:

DML(data manipulation language,数据操作语言)-----用于检索或者修改数据;

DDL(data definition language,数据定义语言)------用于定义数据的结果,创建、修改或者删除数据库对象

DCL(data control language,数据控制语言)-----用于定义数据库用户的权限

SELECT [DISTINCT] * |字段[别名] [,字段[别名]]

FROM 表名称[别名]

范例:查询dept表的全部记录

SELECT * FROM dept;

范例:查询出每个雇员的编号、姓名、基本工资

SELECT empno,ename,sal FROM emp;

范例:查询出每个雇员的职位

SELECT job FROM emp;

这个时候发现查询出来的job内容出现了重复数据,而之所以数据会重复,主要的原因是现在没有消除掉重复的记录,可以使用DISTINCT消除所有重复的内容

SELECT DISTINCT job FROM emp;

但是,对于重复数据,指的是一行中的每个列的记录都重复,才叫重复。

范例:查询出每个雇员的姓名、职位

在进行监督查询的操作中,也可以使用各个属性的四则运算符。

范例:要求显示每一个雇员的姓名、职位、基本年薪

但是这个时候显示列上出现了一个“SAL*12”,这个肯定是显示的查询列,但该列名称不方便浏览,所以此时可以起一个别名

但是对于别名,建议不要使用中文,只要是程序的开发,都要回避中文,这不是中国的“易语言”。范例:由于公司的福利很高,每个月都有200元的饭补以及100元车费补助,这个时候的年薪

范例:公司每年的年薪都会多发一个月的基本工资,此时的年薪为:

在简单查询之中也可以使用“||”连接查询的字段。

范例:观察“||”的使用

由于“,”属于原样输出的字符串,所以必须用“‘’”括起来,即:在SQL语句种子,“‘’”表示的是字符串。

范例:要求限制的数据按照如下的格式显示:

雇员编号是:7369的雇员的姓名是:SMITH,基本工资:800,职位是:CLERK!

一定要记住,别名上的内容不要使用“‘’”括起来,而只有在SELECT子句(SELECT后的语句是SELECT子句,FROME之后的语句叫FROM子句)之中出现的内容使用“‘’”。

2.3、限定查询(重点)

在之前的简单查询之中,是将所有的记录进行显示,但是现在可以对显示的记录进行过滤式的操作,而这就属于限定查询的工作了,限定查询就是在之前的语法基础之上增加了一个WHERE子句,用于指定限定条件,此时语法如下:

在WHERE子句之后可以增加多个条件,最常见的条件就是基本的关系运算:>、>=、<、<=、!=(<>)、BETWEN...AND、AND、OR、LIKE、IS(NOT) NULL、NOT、IN;

1、关系运算

范例:要求查询出基本工资高于1500的所有雇员的信息。

范例:查询出所有职位是办事员的雇员信息

以上只是操作了一个条件,现在也可以操作多个条件,而这多个条件之间可以使用AND或OR进行连接操作。

范例:查询工资在1500-3000之间的全部雇员的信息

范例:查询出职位是办事员,或者是销售人员的全部信息

范例:查询所有不是办事员的雇员信息

2、范围操作:BETWEEN....AND...

“BETWEEN 最小值AND 最大值”,表示的是一个范围间的判断过程。

范例:要求查询出基本工资在1500-3000的雇员信息

范例:也可以对BETWEEN AND操作求反

可是“BETWEEN AND”操作符不光只对数字有用,对于日期也同样有用

范例:要求查询出在1981年雇佣的全部雇员的信息

时间范围:1981-01-01--1981-12-31,使用”hiredate”字段表示雇员日期;

Hiredate字段上的内容可以使用字符串表示:'01-1月-1981'-'31-12月-1981'

3、判断是否为空:IS(NOT)NULL

使用此语法可以判断某一字段上的内容是否是‘null’,但是null和数字0以及空字符串是两个概念。范例:查询出所有领取奖金的雇员信息

范例:查询出不领取奖金的雇员

4、指定范围的判断:IN操作符

IN操作符表示的是指定一个查询范围,例如,现有一个查询要求如下:

范例:查询出雇员编号是7369,7566,7799的雇员的信息

如果按照最早的做法,使用OR操作符完成:

如果现在使用了新的操作符IN的话,则代码简单了:

注意点:关于NOT IN 的问题

如果现在使用了IN操作符,查询范围之中存在了null,不影响查询

如果现在使用的是NOT IN操作符,如果查询范围之中有了null。则不会有任何查询结果返回;

果NOT IN中出现了null则表示的就是查询全部数据;

5、模糊查询:LIKE子句

LIKE子句的功能是提供了模糊查找的操作,例如:某些程序上出现的搜索操作,都属于LIKE子句的事项,但是必须提醒的,搜索引擎的查询可不是LIKE;

但是要想使用LIKE子句则必须认识两个匹配符号:

●匹配单个字符:_;-->1个

●匹配任意多个字符:%;-->0个,1个,多个

范例:要求查询雇员姓名中以A开头的全部雇员信息

范例:要求查询出雇员姓名的第二个字母是A的全部信息

范例:要求查询出雇员的姓名中带有A的雇员

现在也可以使用NOT操作,对操作进行求反的功能:

但是对于LIKE子句,不一定只能在字符串数据上表示,可以在任意的数据上表示

说明:关于LIKE子句的使用

在开发之中,数据库的模糊查询可以使用LIKE子句,但是在使用LIKE子句的时候有一个最大的注意点:如果在模糊查询上不设置任何的查询关键字的话(‘%%’)则表示查询全部记录:

这一个特点可以帮助用户节约很多的代码,所以一定要记住。

2.4、数据的排序(重点)

当数据返回查询结果之后,所有的数据默认情况下是按照雇员编号排序的,当然,现在

‘ORDER BY’自己是协助所有的SQL语句最后的内容,而且对于排序有以下几点说明:排序的时候可以制定多个排序的字段;

排序的方式有两种:

升序(ASC):默认,不写也是升序;

降序(DESC):用户需要指定,由大到小的排序;

范例:查询所有雇员的信息,要求按照工资排序:

范例:进行降序排列

此时肯定需要两个字段排序:工资(DESC),雇佣日期(ASC);

对于排序操作,一般只需要在需要的地方使用。而且一定要记住的是,ORDER BY子句是协助所有的SQL语句最后的部分。

2.5、单行函数(重点)

虽然各个数据库都是支持SQL语句的,但是每一个数据库也有每一个数据库自己所支持的操作函数,这些就是单行函数,而如果要想进行数据库开发的话,除了要会使用SQL之外,就是要多学习函数。

单行函数主要分为以下五类:字符函数、数字函数、日期函数、转换函数、通用函数;

2.5.1、字符函数

字符函数的主要功能是进行字符串数据的操作,下面给出几个字符函数:

UPPER(字符串|列):将输入的字符串变为大写返回;

LOWER(字符串|列):将输入的字符串变为小写返回;

INITCAP(字符串|列):开头字母大写;

LENGTH(字符串|列):求出字符串的长度;

SUBSTR(字符串|列,开始点[,结束点]):字符串截取

REPLACE(字符串|列,’被替换的字母’,’取代旧字母的新字母’)

Oracle 之中有一点比较麻烦,即使要验证字符串,也必须编写完整的SQL 语句,所以在oracle 数据库之中为了用户的查询方便,专门提供了一个“dual ”虚拟表。

范例:观察转大写的函数

SELECT UPPER('hello') FROM dual;

大写转换的用处:在一般的使用之中,用户输入数据的时候去关心数据本身存放的大写还是小写吗? SELECT * FROM emp WHERE ename='&str';

此时如果输入的是小写,则肯定无法查询出数据,所以这个时候不能要求用户这么多,所以这个时候只能由程序自己去适应,加入一个函数:

SELECT * FROM emp WHERE ename=UPPER('&str');

当然意思的“&”的操作属于替代变量的内容,此部分内容不做重点。

No. 函数名称

描述

1 UPPER( 列 | 字符串) 将字符串的内容全部转大写

2 LOWER( 列 | 字符串) 将字符串的内容全部转小写

3 INITCAP( 列 | 字符串)

将字符串的开头首字母大写 4 REPLACE(列 | 字符串, 新的字符串) 使用新的字符串替换旧的字符串 5 LENGTH(列 | 字符串)

求出字符串长度 6 SUBSTR(列 | 字符串, 开始点 [, 长度]) 字符串截取

7 ASCII(字符) 返回与指定字符对应的十进制数字 8 CHR(数字)

给出一个整数,并返回与之对应的字符 9 RPAD(列 | 字符串 , 长度 , 填充字符) LPAD(列 | 字符串 , 长度 , 填充字符) 在右或左填充指定长度字符串 10 LTRIM(字符串)、RTRIM (字符串) 去掉左或右空格 11 TRIM(列 | 字符串)

去掉左右空格

12

INSTR(列 | 字符串, 要查找的字符串 , 开始位置 , 出现位置)

查找一个子字符串是否在指定的位置上出现

范例:观察转小写的操作,将所有雇员的姓名按照小写字母返回

SELECT LOWER(ename) FROM emp;

范例:将每一个雇员姓名的开头首字母大写

SELECT INITCAP(ename) FROM emp;

范例:查询出每个雇员的姓名的长度

SELECT ename ,LENGTH(ename) FROM emp;

范例:查询出姓名长度正好是5的雇员信息

SELECT ename ,LENGTH(ename) FROM emp

WHERE LENGTH(ename)=5;

范例:使用字母“_”替换姓名中的所有字母“A”

SELECT REPLACE(ename,'A','_') FROM emp;

字符串截取操作有两种语法:

语法一:SUBSTR(字符串|列,开始点),表示从开始点一直截取到结尾;

SELECT ename,SUBSTR(ename,3) FROM emp;

语法二:SUBSTR(字符串|列,开始点,结束点),表示从开始点截取到结束点,截取部分内容;SELECT ename,SUBSTR(ename,0,3) FROM emp;

SELECT ename,SUBSTR(ename,1,3) FROM emp;

发现0和1是一样的效果;

范例:要求截取每个雇员姓名的后三个字母:

正常思路:通过长度-2确定开始点

SELECT ename,SUBSTR(ename,LENGTH(ename)-2) FROM emp;

新思路:设置负数,表示从后指定截取位置;

SELECT ename,SUBSTR(ename,-3) FROM emp;

面试题:请问SUBSTR()函数截取的时候下标是从0开始还是从1开始?

答:在Oracle数据库之中,SUBSTR()函数从0或1开始都是一样的;

SUBSTR()也可以设置为负数,表示由后自动截取的开始点;2.5.2、数字函数

数字函数一共有三个:

ROUND(数字|列[保留小数的位数]):四舍五入的操作;

TRUNC(数字|列[保留小数的位数]):舍弃指定位置的内容;

数据库2

一、题型 简答题、选择题、填空题、设计题、操作题、命令题。 二、考核范围 第1、2、3、4、5、11、12章 第1章 信息是对现实世界中事物的存在特征、运动形态以及不同事物间的相互联系等多种属性的描述,通过抽象形成概念。信息是关于事物以及事物间联系的知识。 信息一般分三类:事物的静态属性信息、动态属性信息、事物间的内在联系信息。 表达信息的符号记录就是数据。数据是信息的载体,信息是数据的内涵。 计算机是处理数据的。作为数据的符号在计算机中都转换成二进制符号“0”和“1”保存和处理。 数据处理指对数据收集、整理、组织、存储、维护、加工、查询和传输的过程。 为实现特定数据处理目标所需要的所有各种资源的总和称为数据处理系统。一般情况下,主要指硬件设备、软件环境与开发工具、应用程序、数据集合、相关文档等 数据库指长期存储在计算机存储设备上结构化、可共享、相关联的数据集合。 数据库系统是指在计算机中引入数据库后的系统构成,由计算机软硬件、数据库、DBMS、应用程序以及数据库管理员(DBA)和数据库用户构成。核心是数据库和DBMS 数据库管理系统 是专门处理数据库的软件,数据库的所有工作,包括数据库的定义、数据的录入、查询、输出,及数据库的维护和安全保护,都通过DBMS 完成,是数据库系统的核心。 数据库设计的定义:对于给定的应用环境,设计构造最优的数据库结构,建立数据库及其应用系统,使之能有效地存储数据,对数据进行操作和管理,以满足用户各种需求的过程。 数据库设计采用的基本方法是结构化设计方法,这种方法将开发过程看成一个生命周期,也称为生命周期法。其核心思想是将开发设计过程分成若干个步骤,主要包括:系统需求调查与分析、概念设计、逻辑设计、物理设计、实施与测试、运行维护等几个阶段。 数据模型,是对客观世界的事物以及事物之间联系的形式化描述,有层次模型、网状模型、关系模型三种。 概念模型面向用户,使用用户易于理解的概念、符号、表达方式来描述事物及其联系,它与任何实际DBMS都没有关联;同时,概念模型又易于向DBMS支持的数据模型转化。 关系模型,关系数据理论的核心,是对一个数据处理系统中所有数据对象的数据结构的形式化描述。将一个系统中所有不同的关系模式描述出来,就建立了该系统的关系模型。 关系数据库,是依据关系模型建立的数据库,是目前各类数据处理系统中最普遍采用的数据库类型。依照关系理论设计的DBMS,称为关系DBMS 关系由行和列组成的二维表 元组是由相关联的属性值组成的一组数据。

课下实验2-数据查询

课后实验、查询数据库学生选课系统 一、导入学生选课系统数据库() 二、数据库介绍 ●(, ) 该表是学生基本信息表其中:-学号,-姓名,-班级,-性别, -出生日期,-籍贯,-入学成绩,-照片,-身份证号码, -总学分 ●() 该表是课程情况表其中:-课程号,-课程名称,-先修课程号,—学分 ●() 该表是学生选课成绩表其中:-学期,-学号,-课程号,-成绩,-绩点 ●() 该表是教师上课情况表其中:—序号,-学期;-班级;-课程号;-教师编号; -学时 ●() 该表是教师基本情况表:其中-教师编号;-教师姓名;-职称;-入校日期;-系别;-工资;-婚否;—联系电话;-简历 三、在数据库中完成以下查询。 ()查询物流学生的详细信息 ()查询“入学成绩”在到分之间的学生的姓名和班级 ()查询表中现有的班级(要求查询结果中班级名称不要重复) ()查询具有“教授”或“副教授”职称的教师的教师编号和姓名 ()查询姓“陈”,且籍贯是“宁波”的学生的姓名,出生日期,入学成绩 ()查询表中“级”的学生信息 ()查询姓名中包含“菲”字的学生的学号、姓名、性别、班级 ()查询教师上课情况表中还没有安排好上课教师的班级和对应的课程号 ()查询全体学生情况,查询结果按所在班级名升序排列,同一班级中的学生按出生日期降序排列 ()统计物流班学生“入学成绩”的平均分、最高分、最低分 ()统计表中的学生人数 ()统计各个班级的学生人数,按统计结果做降序排列 ()统计各门课程的平均成绩,结果显示课程号和平均成绩 ()查询平均成绩以上的课程编号

()查询平均成绩分以上的学生的学号 ()查询教师人数在人以上的学院,查询结果显示学院名称和教师人数,查询结果按教师人数作降序排列 ()查询选修了课程学生的学号、姓名、所选课程号、课程名称以及取得的成绩()查询选修了‘计算机基础’这门课程的学生的学号、姓名、班级、成绩()查询和“刘涛”在一个班级的学生的信息 思考:可以用什么方法完成本次查询? ()查询没有选修过任何课程的学生的信息(学号、姓名、班级) 思考:还可以用什么方法完成本次查询? ()查询教师“姚明”给哪些班级上课? ()查询教师“姚明”上哪些课程,要求查询结果包含课程编号和课程名称?()查询学号为“”学生选修所有课程的平均分和总学分 ()查询其他班中比“计算应用”所有学生入学成绩高的学生的姓名和入学成绩()查询选课门数等于或大于门的学生的平均成绩和选课门数 ()查询“计算机基础”这门课程的平均成绩 ()查询选修了“”课程,且成绩高于此课程平均成绩的学生的学号和获得的成绩 ()查询既选修了“计算机基础”或者选修了“语言基础”的学生的学号 ()查询既选修了“计算机基础”又选修了“语言基础”的学生的学号 ()查询“计算机基础”课程成绩最高的学生的信息

MySQL数据库高级查询和多表查询二

机试测试试卷 (MySQL数据库应用与开发) 注意:考试结束试卷必须交Array 回,不交回试卷者成绩无效题目:MySQL 数据库高级查询和多表查询 一、语言和环境 A、实现技术 SQL 语句练习 B、环境要求 Mysql5.7+Navicat 二、实验要求 1、创建名为 s_t 的数据库,参数全部使用 UTF-8 实验目的: 通过上机实验验证数据库的多表的高级查询操作。 实验内容:

1、将s_t数据库还原。 2、在s_t数据库中,完成以下多表连接查询的操作。 (1)查询计算机系学生的修课情况,要求列出学生的名字、所修课的课程号和成绩。 (2)查询“信息管理系”修了“计算机文化学”的学生姓名和成绩。 (3)查询所有选修了Java课程的学生情况,列出学生姓名和所在系。 (4)统计每个系的学生的考试平均成绩。 (5)统计计算机系学生每门课程的选课人数、平均成绩、最高成绩和最低成绩。 (6)查询与刘晨在同一个系学习的学生的姓名和所在的系。 (7)查询与“数据结构”在同一个学期开设的课程的课程名和开课学期。 (8)查询至少被两个学生选的课程的课程号。 (9)查询全体学生的选课情况,包括选修了课程的学生和没有选修课程的学生。 (10)查询没人选的课程的课程名。 (11)查询计算机系没有选课的学生,列出学生姓名和性别。 (12)统计计算机系每个学生的选课门数,包括没有选课的学生。 (13)查询信息管理系选课门数少于3门的学生的学号和选课门数,包括没有选课的学生。查询结果按选课门数递增排序。 (14)查询考试成绩最高的三个成绩,列出学号、课程号和成绩。 (15) 查询Java考试成绩最高的前三名的学生的姓名、所在系和VB考试成绩。 (16)查询选课人数最少的两门课程(不包括没有人选的课程),列出课程号和选课人数。 (17)查询计算机系选课门数超过2门的学生中,考试平均成绩最高的前2名(包括并列的情况)学生的学号、选课门数和平均成绩。 (18)将计算机系的学生信息保存到#ComputerStudent局部临时表中。 (19)将选了Java课程的学生的学号及成绩存入永久表Java_Grade中。 (20)统计每个学期开设的课程总门数,将结果保存到永久表Cno_Count表中 (21)利用例19题生成的新表,查询第2学期开设的课程名、学分和课程总门数。 3、在s_t数据库中,完成以下多表的高级查询操作。 (1)查询选了Java课程的学生的学号、姓名、所在系和成绩,并对所在系进行如下处理:“计算机系”:显示“CS”;“信息管理系”:显示“IM”;“通信工程系”:显示“COM”。(2)查询“C001”课程的考试情况,列出学号和成绩,对成绩进行如下处理:如果成绩大于等于90,则在查询结果中显示“优”;如果成绩在80到89分之间,则在查询结果中显示“良”;如果成绩在70到79分之间,则在查询结果中显示“中”;如果成绩在60到69分之间,则在查询结果中显示“及格”;如果成绩小于60分,则在查询结果中显示“不及格”。 (3)统计每个学生的考试平均成绩,列出学号、考试平均成绩和考试情况,其中考

实验二数据查询

实验二数据查询 实验目的: 1.通过本实验能够掌握投影、选择条件表达、排序、分组的sql语句表达。 2.通过本实验能够熟练应用sql语言进行查询,具体包括单表查询,多表连 接查询。 实验要求: 1.在进行本实验之前,应熟练课程内容,在上机之前做好实验计划,编写 好相应的代码。 2.认真填写实验报告,记录所有实验用例。 实验内容: (一)包括排序、分组的单表查询 1.求数学系学生的学号和姓名 2.求选修了课程的学生学号。 3.求选修课程号为‘2’的学生号和成绩,并要求对查询结果按成绩的降 序排列,如果成绩相同按学号的升序排列。 4.求选修课程号为’2’且成绩在80~90之间的学生学号和成绩,并将成绩乘 以0.8输出。 5.求数学系或计算机系姓张的学生的信息。 6.求缺少了成绩的学生的学号和课程号。 7.查询各个课程号与相应的选课人数。 (二)多表连接查询 1.查询每个学生的情况以及他所选修的课程。 2.求学生的学号、姓名、选修的课程及成绩。 3.求选修课程号为‘1’且成绩在90分以上的学生学号、姓名和成绩。 4.查询每一门课程的间接先行课。 5.查询与’刘晨’在同一个系学习的学生。 6.查询选修了课程名为‘信息系统‘的学生学号和姓名。 7.查询平均成绩在80分以上的学生学号和平均成绩。 8.查询选修了1门以上课程的学生的学号。

(三)嵌套查询 8.求选修了信息系统的学号和姓名。 9.查询与刘晨在同一个系学习的学生。 10.求选修1号课程的成绩高于刘晨的成绩(指刘晨选修的所有的课程 的成绩)的学生学号及成绩。 11.求其他系中比计算机系某一学生年龄小的学生(即年龄小于计算机 系年龄最大者的学生)。 12.求其他系中比计算机系学生年龄都小的学生姓名及年龄。 13.求没有选修3号课程的学生姓名。 14.查询选修了全部课程的学生姓名。 SQL语言中没有全称量词∨(,all)。但是可以把带有全称量词的谓词转换为等价的带有存在量词的谓词。(∨x)P≡∟(exists x(∟P)) 试做:查询所有学生都选修的课程名 15.求至少选修了学号为“20021522”的学生所选修全部课程的学生学号和姓名。 16.求选修课程超过2门的学生的学号和姓名。 (四)视图 1. 创建数学系学生视图,带有检查约束。 2. 向创建的视图中插入一条记录。 3. 修改视图。 (五)思考题: 1.Where子句中能否用聚集函数作为条件表达式。 2.多表连接查询中如果显示的某一属性不止一个表中出现,应如何处理。(例:(二)多表连接查询中的第2题)。

实验2 数据管理与查询(一)

南京财经大学 数据结构与数据库系统 实验报告书 实验2 SQL 语言——数据定义、管理与查询(一) 专业:统计学 学号:1102110220 姓名:王靓雅 任课老师:戴华 学院:经济学院 2012年11 月 1 日

一实验目的 1 熟悉SQL语言的数据定义、管理和查询 二实验平台 1 操作系统:Windows XP 2 数据库管理系统:Access 和SQL Server 2000 三实验内容及要求 1 在SQL Server中,创建数据库“School”,在School数据库中利用Create语句创建教科书P82页中给出的Student、Course和SC表(注意保持关系表之间 的外码依赖关系)。 2 利用Insert语句在Student、Course和SC表中插入P82页中给出三个表的所有元组。 3 完成如下查询: (1) 查询计算机系(CS)中所有男生的姓名和学号,并按学号降序排列 (2) 查询“信息系统”课程的先行课程的学分 (3) 查询姓“刘”的学生的学号、姓名、性别和专业信息 (4) 查询2号课程成绩为优秀(≥90)的学号和成绩 (5) 查询2002级学生的总人数信息 (6) 分组查询各系的学生总人数,输出系名和总人数 (7) 分组查询各课程的平均成绩,输出课程号和平均成绩 (8) 查询计算机系学生的姓名和各课程的成绩 (9) 查询至少有2门课程的成绩为良好(≥80并且<90)的学生的学号 四实验过程和结果 (注:对于实验内容中的9个查询,请写出对应的关系代数表达式、SQL查询语句和查询结果) 首先用creat语句创建student,course,sc表 use school

数据库实验 数据的查询(二)

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

一、实验目的 掌握SQL查询命令:包括连接查询、嵌套查询和集合查询。 二、实验环境 Oracle10g数据库系统。 三、实验内容与要求 使用Select命令完成下列数据查询。 一、连接查询 ⑴查询每个学生及其选修课程的情况。 ⑵查询男学生选修课成绩不及格的情况。 ⑶查询计算机系学生选修课成绩不为空的情况。 ⑷查询选修2号课程且分数在90分以上的所有学生。 ⑸查询每个学生的学号,姓名,选课名及成绩。 ⑹查询选修了课程,但没有参加考试(成绩为空)的学生学号,姓名,选课名及成绩。 二、嵌套查询 ⑴查询与"张三"在同一系的学生。 ⑵查询选修了课程名为"数据库"的学生学号和姓名。 三、EXISTS查询 ⑴查询没有选修1号课程的学生的姓名。 ⑵查询选修了所有课程的学生的姓名。 四、实验过程及结果分析 一、连接查询 ⑴查询每个学生及其选修课程的情况: select student.sno,https://www.wendangku.net/doc/dc11901926.html,o from student,sc where student.sno=sc.sno;

⑵查询男学生选修课成绩不及格的情况: select student.sno,sname,ssex,https://www.wendangku.net/doc/dc11901926.html,o,grade from student,sc where student.sno=sc.sno and ssex='男' and grade<60; ⑶查询计算机系学生选修课成绩不为空的情况: select student.sno,sdept,https://www.wendangku.net/doc/dc11901926.html,o,grade from student,sc where student.sno=sc.sno and sdept='dS' and grade<60; ⑷查询选修2号课程且分数在90分以上的所有学生: select student.sno,sname from student,sc where student.sno=sc.sno and sc.sno='2' and sc.grade>90; ⑸查询每个学生的学号,姓名,选课名及成绩: select student.sno,sname,cname,grade from student,sc,course where student.sno=sc.sno and https://www.wendangku.net/doc/dc11901926.html,o=https://www.wendangku.net/doc/dc11901926.html,o; ⑹查询选修了课程,但没有参加考试(成绩为空)的学生学号,姓名,选课名及成绩: select student.sno,sname,cname,grade from student,sc,course where student.sno=sc.sno and grade is null; 二、嵌套查询 (1)查询与"张三"在同一系的学生。 select sno,sname,sdept

数据库sql查询语句练习2_习题_结果(单世民)

现在有一教学管理系统,具体的关系模式如下:Student (no, name, sex, birthday, class) Teacher (no, name, sex, birthday, prof, depart) Course (cno, cname, tno) Score (no, cno, degree) 其中表中包含如下数据: Course表: Score表: Student表:

Teacher表: 根据上面描述完成下面问题: (注意:注意保存脚本,尤其是DDL和DML,以便进行数据还原)DDL 1.写出上述表的建表语句。 2.给出相应的INSERT语句来完成题中给出数据的插入。 单表查询 3.以class降序输出student的所有记录(student表全部属性) 命令:select*from Student order by class desc;

4.列出教师所在的单位depart(不重复)。 命令:select distinct depart from Teacher; 5.列出student表中所有记录的name、sex和class列 命令:select name,sex,class from Student; 6.输出student中不姓王的同学的姓名。 命令:select name from Student except select name from Student where name like'王%';或

select name from Student where name not like'王%'; 7.输出成绩为85或86或88或在60-80之间的记录(no,cno,degree) 命令:select no,cno,DEGREE from Score where degree=85 or degree=86 or degree=88 or degree between 60 and 80; 8.输出班级为95001或性别为‘女’的同学(student表全部属性) 命令:select*from Student where class=95001 or sex='女';

实验2-数据查询的简单操作

实验2数据库的简单查询 一、实验目的 掌握单表查询中各个子句(Select、From、Where、Group、Having、Order)的用法,特别要掌握比较运算符和逻辑运算符的使用。 二、实验环境 Windows XP操作系统,SQL Server 2005软件。 三、实验课时 2课时。 四、实验内容 在已建立的数据库和数据表的基础上,用Select语句完成下列查询操作。 1、查询全体学生的学号和姓名。 SELECT sno,sname FROM student; 2、查询全体学生的所有基本信息(仅针对Student表)。 SELECT* FROM student; 3、对SC表查询全体学生的选课记录,在显示结果中为“Grade”列增加5分。SELECT sno,cno,grade=grade+5 FROM sc; 4、查询全体学生的学号和姓名,将原来的英文列名设置中文别名。 SELECT sno AS学号,sname AS姓名 FROM student; 5、显示所有选课学生的学号,去掉重复结果。 SELECT DISTINCT sno FROM sc; 6、查询成绩在80分以上的学生选课记录。 SELECT* FROM sc WHERE grade>80;

7、查询经济系所有学生的学号和姓名。 SELECT sno,sname FROM student WHERE sdept='经济'; 8、查询成绩在80~90分的学生选课记录。 SELECT* FROM sc WHERE grade BETWEEN 80 AND 90; 9、查询年龄不在22~25的学生记录。 SELECT* FROM student WHERE sage NOT BETWEEN 22 AND 25; 10、查询所有姓“刘”的学生记录。 SELECT* FROM student WHERE sname LIKE'刘%'; 11、查询无考试成绩(成绩为空值)的学号、课程号。SELECT sno,cno FROM sc WHERE grade IS NULL; 12、查询考试成绩非空值的学号、课程号。 SELECT sno,cno FROM sc WHERE grade IS NOT NULL; 13、查询数学系年龄小于20岁的学生记录。 SELECT* FROM student WHERE sdept='数学'AND sage<20; 14、查询选修了“101”或“102”课程的选课记录。SELECT* FROM sc WHERE cno in('101','102');

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

课程名称数据库原理 实验序号 2 实验项目数据查询 实验地点 实验学时实验类型验证性 指导教师实验员 专业班级 学号姓名 年月日 成绩:A 教师该学生本次实验的内容丰富,完成的操作步骤详细具体,实验结果正确,在实验报告的填写中态度十分严谨,对数据分析有自己的见解。

四、实验过程(实验步骤、记录、数据、分析) 实验准备:在实验一的基础上(包括数据库的建立、定义表和添加表内容)进行实验,下面分别为depts表、students表、courses表、reports表。 一、简单的选择与投影查询 1、无条件查询 1.1查询全体学生的详细记录。这是一个无条件的选 择查询,其命令为: 其命令为: select * from students 运行结果如右图,显示整张表的内容。 1.2查询全体学生的姓名(Sname)、学号(Sno)、所在系 (dno)。这是一个无条件的投影查询,其命令为: select sname,ssex from students 运行结果如右图,显示了表中的三列。 1.3查询全体学生的姓名(Sname)、出生年份及学号 (Sno)。其命令为: select sno,sname,2017-sage as birth from students 运行结果如右图,显示了三列内容。

1.4查询全体学生的姓名、出生年份和学号,要求用小写 字母表示学号中的字母。其命令为: select sname,'birth:' title,YEAR(GETDATE())-sage birthyear,LOWER(sno) lsno from students 运行结果如右图,显示了四列内容。 1.5查询选修了课程的学生学号。其命令为: select distinct sno from reports 运行结果如右图,distinct短语是为了消去查询结果中的重复值。 2、条件查询 (1)比较条件 1.1查询d03系全体学生的学号(Sno)和姓名(Sname)。其命令为: select sno,sname from students where dno='d03' 运行结果如右图,显示了d03系的全体学生姓名与学号。 1.2查询所有年龄在18~22岁(包括18岁和22岁)之间的学生姓名(Sname)及年龄(Sage)。其命令为: select sno,sage from students where sage >= 18 and sage <=20 运行结果如右图,共有5名在18岁到20岁的学生。 (2)谓语条件 2.1查询年龄在18~22岁(包括18岁和22岁)之间的学生姓名(Sname)及年龄(Sage)。其命令为: select sno,sage from students where sage between 18 and 20 运行结果如右图,结果与比较条件的结果一样。 2.2查询年龄不在18-22岁之间的学生姓名(Sname)及年龄(Sage)。其 命令为: select sno,sage from students

实验2 T-SQL简单数据库查询

河南工业大学实验报告 课程数据库原理及应用_ 实验名称 T-SQL简单数据库查询 系别 ____信息科学与工程学院计算机科学系 _______________ 专业班级 ___ 计科 10 级 04 班 ____ __ 实验报告日期 2012-09-25 姓名___ _______ 学号____20104683_______ 教师审批签字 1.实验目的 1.牢记SELECT 语句的基本语法格式; 2.掌握利用SQL语句进行多表内/外连接查询和嵌套查询的方法; 3.掌握GROUP BY子句、HA VING子句、ORDER BY子句的用法; 4.掌握(NOT)IN、(NOT)EXISTS等谓词的用法; 5.掌握SUM、A VG、COUNT、MAX、MIN等集合函数的用法; 2.实验内容及要求 对CPXS数据库,完成如下查询任务: 根据上述情况完成: 1.查询地区在“郑州”的客户编号和客户名称,结果中各列的标题分别指定为: CustomerID和CustomerName。 2.查询价格在1000-2000之间的产品信息。 3.查询产品名称含有“变频”字样的产品情况。 4.按商品编号统计各种产品在国庆黄金周期间的销售单数(记录数)、总销量和销售总 额,并对统计结果按照销售总额降序排序。 5.列出购买2种以上产品的客户编号。 6.(结合上题)列出购买2种以上产品的客户编号、客户名称、地区、负责人和电话。 7.统计每个客户在国庆黄金周期间的购物情况(客户编号、名称、消费总金额和最近 消费日期),即使某些客户没有消费记录,也要包括其信息。 8.查询在国庆黄金周期间没有任何销售记录的产品编号、名称及库存量。 3.实验过程及结果 (说明:要写出相关SQL语句,实验结果可以是运行画面的抓屏,抓屏图片要尽可能的小。)查询地区在“郑州”的客户编号和客户名称T-SQL语言如下 use CPXS select 客户编号as CustomerID,客户名称as CustomerName from 客户 where 地区='郑州市'运行结果如图1 地区在“郑州”的客户编号和客户名称

课下实验2-数据查询

课下实验2-数据查询

课后实验2、查询数据库-学生选课系统 一、导入学生选课系统数据库JXGL(jxgl.sql) 二、JXGL数据库介绍 ●Students(sno, sname,class,ssex,bday,bplace,mgrade,photo,sfzh,zxf) 该表是学生基本信息表其中:sno-学号,sname-姓名,class-班级,ssex-性别, bday-出生日期,bplace-籍贯,mgrade-入学成绩,photo-照片,sfzh-身份证号码,zxf-总学分 ●Course(cno,cname,cpno,credit) 该表是课程情况表其中:cno-课程号,cname-课程名称,cpno-先修课程号,credit—学分 ●SC(term,sno,cno,grade,point) 该表是学生选课成绩表其中:term-学期,sno-学号,cno-课程号,grade-成绩,point-绩点 ●TC(term,class,cno,tno,period) 该表是教师上课情况表其中:list—序号,term-学期;class-班级;cno-课程号;tno-教师编号;period-学时 ●Teachers (tno,tname,ps,wday,dept,pay,marry,tel,resume) 该表是教师基本情况表:其中t no-教师编号;tname-教师姓名;ps-职称;wday-入校日期;dept-系别;pay-工资;marry-婚否;tel—联系电话;resume-简历 三、在JXGL数据库中完成以下查询。

(1)查询03物流1学生的详细信息 (2)查询“入学成绩”在350到400分之间的学生的姓名和班级 (3)查询students表中现有的班级(要求查询结果中班级名称不要重复)(4)查询具有“教授”或“副教授”职称的教师的教师编号和姓名 (5)查询姓“陈”,且籍贯是“宁波”的学生的姓名,出生日期,入学成绩(6)查询students表中“09级”的学生信息 (7)查询姓名中包含“菲”字的学生的学号、姓名、性别、班级 (8)查询教师上课情况表中还没有安排好上课教师的班级和对应的课程号(9)查询全体学生情况,查询结果按所在班级名升序排列,同一班级中的学生按出生日期降序排列 (10)统计03物流1班学生“入学成绩”的平均分、最高分、最低分 (11)统计students表中的学生人数 (12)统计各个班级的学生人数,按统计结果做降序排列 (13)统计各门课程的平均成绩,结果显示课程号和平均成绩 (14)查询平均成绩80以上的课程编号 (15)查询平均成绩75分以上的学生的学号 (16)查询教师人数在5人以上的学院,查询结果显示学院名称和教师人数,查询结果按教师人数作降序排列 (17)查询选修了课程学生的学号、姓名、所选课程号、课程名称以及取得的成绩 (18)查询选修了‘计算机基础’这门课程的学生的学号、姓名、班级、成绩(19)查询和“刘涛”在一个班级的学生的信息 思考:可以用什么方法完成本次查询? (20)查询没有选修过任何课程的学生的信息(学号、姓名、班级) 思考:还可以用什么方法完成本次查询? (21)查询教师“姚明”给哪些班级上课? (22)查询教师“姚明”上哪些课程,要求查询结果包含课程编号和课程名称?(23)查询学号为“0311102”学生选修所有课程的平均分和总学分 (24)查询其他班中比“03计算应用1”所有学生入学成绩高的学生的姓名和入学成绩 (25)查询选课门数等于或大于2门的学生的平均成绩和选课门数 (26)查询“计算机基础”这门课程的平均成绩

实验5 数据查询(2)

实验5 数据查询(2) 实验目的: 掌握数据查询SQL命令 实验要求: 掌握数据查询SELECT语句的语法格式 实验内容: SELECT语句的使用 实验步骤: 说明:按实验步骤对数据库YGGL中的三个表进行数据查询,三个表结构如下(具体参看实验2): Departments (DepartmentID,DepartmentName,Note) Employees (EmployeeID,Name,Sex,Birthday,Education,WorkYear,Address,PhoneNumber,Department ID) Salary(SalaryID,InCome,OutCome,Time, EmployeeID) 要求:写出正确SQL语句。 (1)查询每个雇员的所有信息 (2) 查询每个部门的部门号和部门名

(3) 查询每个雇员的学历,消除重复行。 (4)查询员工号为000001的员工的地址和电话 (5)查询月收入高于2000元员工号。

(6)查询1970年以后出生的员工姓名和地址。 (7)查询女员工的地址和电话,并使用AS子句将结果中各列的标题分别指定为地址、电话。 (8)查询男员工的姓名和出生日期,并使用AS子句将结果中各列的标题分别指定为姓名、出生日期。

(9)查询员工的姓名和性别,要求Sex值为1时显示“男”,值为0时显示为“女”。 (10)查询员工2012年12月的薪水号和收入水平,收入为2000元以下显示为低收入,2000-3000元显示为中等收入,3000元以上显示为高收入。

(11)查询所有姓“王”员工的部门号及姓名。 (12)找出其地址中不含有“中山”两字的员工的号码、部门号和地址。

数据库实验二-简单查询和连接查询

实验二:简单查询和连接查询 (一)实验目的:熟练掌握用SQL语句实现数据库和基本表的创建、数据 的更新。 (二)实验内容: ①查询所有“天津”的供应商明细; ②查询所有“红色”的14公斤以上的零件。 ③查询工程名称中含有“厂”字的工程明细。 (一)完成下面的连接查询: ①等值连接:求s表和j表的相同城市的等值连接。 ②自然连接:查询所有的供应明细,要求显示供应商、零件和工程 的名称,并按照供应、工程、零件排序。 ③笛卡尔积:求s和p表的笛卡尔积 ④左连接:求j表和spj表的左连接。 ⑤右连接:求spj表和j表的右连接。 (三)完成情况(附上设计的SQL语句),语句与查询结果: ①查询所有“天津”的供应商明细; Select * From S Where CITY=‘天津’

②查询所有“红色”的14公斤以上的零件。Select * From P Where COLOR=‘红’and WEIGHT>14 ③查询工程名称中含有“厂”字的工程明细。 Select * From J Where JNAME NOT IN(‘三建’,‘一汽’)

(二)完成下面的连接查询: ①等值连接:求s表和j表的相同城市的等值连接。 Select S.*,J.* From S,J Where S.CITY=J.CITY ②自然连接:查询所有的供应明细,要求显示供应商、零件和工程 的名称,并按照供应、工程、零件排序。 Select SNAME,JNAME,PNAME From S,J,P,SPJ Where SPJ.SNO=S.SNO and SPJ.JNO=J.JNO and SPJ.PNO=P.PNO

MySQL数据库高级查询和多表查询(二)

机试测试试卷(MySQL数据库应用与开发) 注意:考试结束试卷必须交回,不交回试卷者成绩无效

题目:MySQL 数据库高级查询和多表查询 一、语言和环境 A、实现技术 SQL 语句练习 B、环境要求 Mysql5.7+Navicat 二、实验要求 1、创建名为 s_t 的数据库,参数全部使用 UTF-8 实验目的: 通过上机实验验证数据库的多表的高级查询操作。 实验内容: 1、将s_t数据库还原。 2、在s_t数据库中,完成以下多表连接查询的操作。 (1)查询计算机系学生的修课情况,要求列出学生的名字、所修课的课程号和成绩。 (2)查询“信息管理系”修了“计算机文化学”的学生姓名和成绩。 (3)查询所有选修了Java课程的学生情况,列出学生姓名和所在系。 (4)统计每个系的学生的考试平均成绩。 (5)统计计算机系学生每门课程的选课人数、平均成绩、最高成绩和最低成绩。 (6)查询与刘晨在同一个系学习的学生的姓名和所在的系。 (7)查询与“数据结构”在同一个学期开设的课程的课程名和开课学期。 (8)查询至少被两个学生选的课程的课程号。 (9)查询全体学生的选课情况,包括选修了课程的学生和没有选修课程的学生。 (10)查询没人选的课程的课程名。 (11)查询计算机系没有选课的学生,列出学生姓名和性别。 (12)统计计算机系每个学生的选课门数,包括没有选课的学生。 (13)查询信息管理系选课门数少于3门的学生的学号和选课门数,包括没有选课的学生。查询结果按选课门数递增排序。 (14)查询考试成绩最高的三个成绩,列出学号、课程号和成绩。 (15) 查询Java考试成绩最高的前三名的学生的姓名、所在系和VB考试

实验二数据查询

实验二数据查询(4学时) 实验目的: (1)掌握SQL语言的数据查询语句 实验内容: (1)将学生成绩数据库(XSCJ)导入SQL SERVER 2008,并做如下查询。 (注:数据文件和日志文件从服务器上下载直接导入)) 1)查询选修了课程的学生的学号; 2)查询全体学生的姓名和出生年份,并将列别名改为XM和CSNF; 3)查询年龄在18到20(包括18岁和20岁)之间学生的学号、姓名和系。 4)查询信息系(IS)、数学系(MA)和计算机科学系(CS)学生的姓名和性别。 5)用LIKE查询课程名为DB_S程的课程号和学分。 6)查所有有成绩的学生学号和课程号。 7)查询全体学生情况,查询结果按所在系的系号升序排列,同一系中的学生按年龄 升序排列 8)查询选修了课程的学生人数。 9)计算1号课程的学生平均成绩。 10)查询有3人以上(含3人)同学选修课程的课程号。 11)查询1号课程的间接先修课。 12)查询每个学生的学号、姓名、选修的课程名及成绩。 13)找出每个学生等于他选修课程平均成绩的课程号。

(2)将以下数据录入上次实验建立的BSXT 数据库,并完成以下查询。 Student(学生表) Teacher (教师表) Topic (选题情况表) 1) 查询全体学生的学号和姓名和电话。 2) 查询全体学生的基本情况。 3) 查询带了毕业生的老师的教师号。 4) 查询教师“朱龙”基本情况。 5) 查询所有姓“王”同学的基本情况。 6) 统计每种学历老师的人数。 7) 查询1组老师所带毕业生的基本情况(包括学号,姓名,教师号,教师姓名,毕业设计题目)(注:1组老师只能带1组的学生) 8) 查询所有学生的选题情况(包括没有选题的学生),包括学号,姓名,题目名称,教 师名称。(注:要求老师的组号和学生的组号相一致.)

第2讲 数据查询

第2讲数据查询 SQL: 1)DML(data manipulation language):select, insert, update, delete, merge 2)DDL(data definition language): create, alter, drop, rename, truncate 3)DCL(data control language): grant, revoke ●熟悉EMP、DEPT、SALGRADE结构,讲解数据类型。(书P10) 使用DESC显示表结构 ●简单查询 1)查询emp表的所有数据 2)查询emp表中的姓名、雇员号,工资。 3)改进第二小题,增加一列显示行号。(rownum列) 注意:每个表都有一个虚拟列rownum,代表查询结果中记录的行号,实际在数据库中记录是没有行号的。 4)显示emp表的雇员名称、工资及工资与津贴之和(使用计算列)。 练习:查询显示每个雇员的姓名,工资,及全年工资(即工资*12)。 5) 显示雇员工资上浮20%的结果。 6) 使用列别名显示 字段名和列别名之间用as或空格隔开,如果列别名含空格、特殊字符等,as 后列别名用“”。 7)使用列别名显示雇员姓名和年薪加8000元奖金 8)连接运算符为“||” select ename||job as “name&job” from emp; 10)在雇员和职务中间加空格 select ename||?…||job as “name&job” from emp; 注意:字符串和日期常量用单引号‘’引起,而列别名用“”,注意分别。 练习:显示的DEPT表的内容,按以下的形式显示: Department ACCOUNTING City is NEW YORK Department SALES City is CHICAGO 练习:按以下形式显示emp表的相关信息 SMITH Job Date:17-12月-80,Manager No:7902

数据库查询2

数据查询(二) 1.查询平均成绩大于70分的学生的学号、姓名、平均分,并按 分数由高到低排序。 select student.学号,姓名,avg(成绩) as 平均分from student,score where student.学号=score.学号group by student.学号,姓名 having avg(成绩)>70 order by avg(成绩) desc; 2.查询每位学生所选课程,每门课程的学分及学生所取得的成 绩,并降序排列。(显示学号,课程号,学分,成绩) select 学号,course.课程号,学分,成绩 from score,course where course.课程号=score.课程号 order by 成绩 desc; 3.查找每门课程的选修学生。(显示课程的课程号,学生的学号, 姓名及所取得的成绩) select 课程号,student.学号,姓名,成绩 from student,score where student.学号=score.学号 order by 课程号; 4.查询选修英语课程的学生的学号,姓名,专业并显示成绩。方法一:select student.学号,姓名,专业,成绩from student,score where student.学号=score.学号 and 课程号=(select 课程号 from course where 课程名='英语'); 方法二:select student.学号,姓名,专业,成绩from student,score,course where student.学号=score.学号 and course.课程号=score.课程号 and 课程名='英语';

数据查询实验二 (2)

《数据库原理与应用》实验报告 实验序号:实验2 实验项目名称:数据查询 一、实验目的 (1)掌握使用Transact-SQL的SELECT语句进行基本查询的方法。 (2)掌握使用SELECT语句进行条件查询的方法。 (3)掌握SELECT语句的GROUP BY、ORDER BY以及UNION子句的作用和使用方法。 (4)掌握嵌套查询的方法。 (5)掌握连接查询的操作方法。 二、实验步骤与运行结果 1.在studentsdb数据库中使用SELECT语句进行基本查询。 ①在student表中,查询每个学生的学号、姓名、出生日期信息。 ②查询学号为0002 的学生的姓名和家庭住址。 ③找出所有男同学的学号和姓名。

2.使用SELECT语句进行条件查询。 ①在grade表中查找分数在80~90范围内的学生的学号和分数。 ②在grade表中查询课程编号为0003的学生的平均分。 ③在grade表中查询学习各门课程的人数。 ④将学生按出生日期由大到小排序。

⑤查询所有姓“张”的学生的学号和姓名。 3.对student表,按性别顺序列出学生的学号、姓名、性别、出生日期及家庭住址,性别相同的按学号由小到大排序。 4.使用GROUP BY查询子句列出平均成绩在80分以上的学生的学号和平均成绩。 5.使用UNION运算符将student表中姓“张”的学生的学号、姓名与course表的课程编号、课程名称返回在一个表中,且列名为u_编号、u_名称,如图3-1所示。

6.嵌套查询。 ①在student表中查找与“刘卫平”性别相同的所有学生的姓名、出生日期。 ②使用IN子查询查找所修课程编号为0002、0005的学生学号、姓名、性别。 ③列出学号为0001的学生的分数比0002号的学生的最低分数高的课程编号和分数 ④列出学号为0001的学生的分数比学号为0002的学生的最高成绩还要高的课程编号

实验2 数据库的查询

实验2数据库的查询 一、实验目的及意义 通过本实验进一步理解及掌握如何利用查询向导、查询设计器及SQL语句实现数据库的查询操作。 二、实验的基本原理及方法 数据库选用ACCESS。查询向导、查询设计器及SQL基本语句的语法、各类运算符、函数及表达式的应用。 三、实验内容及要求 在“学籍管理”数据库的基础上验证一下内容: 1.利用设计视图、或者查询向导验证教材P73--P94中的例题,要求每节至少选 做一题,并将主要过程及结果拷贝到实验记录中。 2.用SQL语句验证4.9节的相关例题,或验证课堂案例,并选择其中一题将结果 拷贝到实验记录中。要求有SQL视图的截图及运行结果的截图。 3.请自行设计3-4个应用题,并用SQL语句实现之,将相关的SQL语句及运行结 果截图至实验记录中。 四、实验记录: 1、教材P73-P94例题综合

2、书本SQL查询例题25-33 3、自行设计题

五、实验思考题 1.ACCESS数据库中,对象“表”与对象“查询”有何区别? 答:表——表是数据库的基本对象,是创建其他5种对象的基础。表由记录组成,记录由字段组成,表用来存贮数据库的数据,故又称数据表。 查询——查询可以按索引快速查找到需要的记录,按要求筛选记录并能连接若干个表的字段组成新表。 查询对象用来合理显示数据,是一个操作的集合,它本质上是一条SQL语言编写的命令,而数据表对象用来存储基础数据,是数据的集合。查询对象里的显示数据可以由一个或多个表里的某些列按照条件组成。 2. 在“联合查询”查询中,如果相联合的表的结构不完全一致,会出现什么结果? 答:相联合的表的结构不一致,包括字段数、数据类型等存在差异时,往往无法将表或查询的字段合并到一个集中中查看,很难将要检索的数据完整地呈现出来。

相关文档
相关文档 最新文档