如何解决以下问题: 找出档案表中的专业名称、有几个专业 从选课表中查出所有记录。

Slides:



Advertisements
Similar presentations
第二章 简单的 SQL 语句. 本章要点  创建一个简单的表  SQL 语句介绍  最简单的查询语句 select  带有限制条件的查询  查询结果的排序显示.
Advertisements

2010 年 6 月课件制作人:王亚楠 1 模块 2 项目开发概论 教学课件 年 6 月课件制作人:王亚楠 2 目录 目标 了解:数据库技术的基本概念与结构 理解:数据模型的分类与结构组成 掌握:关系数据库及 SQL 的基本理论 知识 掌握:数据库设计的方法与步骤 内容 2.1 数据库技术基础.
Java 技术与应用 数据库应用 ( 第 14 章 ) 西安交大 卫颜俊 2008 年 12 月 电子信箱: QQ: 网站 : /java.
第 7 章 数据库 1. Overview  数据库概述  数据库管理系统  数据库的体系结构和数据库模型  SQL 语言  数据库技术  构建数据库系统 2.
计算机软件技术基础计算机软件技术基础 数据库系统( 3 ). 第 2 页 4.3 关系数据库语言 SQL 关系数据库 SQL ( Structured Query Language )语言是关系 数据库的标准语言,对关系模型的发展和商用 DBMS 的研制起 着重要的作用。 SQL 发展历史  1986.
Chapter 3: SQL.
第6章 数据库管理软件Access 年秋.
第5章 关系数据库标准语言SQL 主讲:张丽芳.
Access数据库知识 安丘市职业中专 雷云龙.
十一 ASP对数据库的访问.
第2讲 Transact-SQL语言.
第2章 使用Transact-SQL语言.
数据库技术 实践.
Excel(2010) 基本操作(入门) ——季振华.
第8章 SELECT敘述的基本查詢 8-1 SELECT查詢指令 8-2 SELECT子句 8-3 FROM子句 8-4 WHERE子句
数据库原理及应用 《数据库原理及应用》课程组 荆楚理工学院.
第4章 关系数据库标准语言SQL 4.1 SQL语言概述 4.2 SQL数据查询功能 4.3 SQL数据操作功能 4.4 SQL数据定义功能.
(第11讲) Mysql 简介和创建新的数据库 本讲大纲: 1、MYSQL简介与概要 2、访问MYSQL的几种途径
数据库概述 简而言之,数据库(DataBase)就是一个存储数据的仓库。为了方便数据的存储和管理,它将数据按照特定的规律存储在磁盘上。通过数据库管理系统,可以有效的组织和管理存储在数据库中的数据。如今,已经存在了Oracle、SQL Server、MySQL等诸多优秀的数据库。在这一章中将讲解的内容包括。
计算机应用基础 上海大学计算中心.
常用逻辑用语复习课 李娟.
Oracle数据库 Oracle 子程序.
请写出下列查询语句并给出结果 1、列出student表中所有记录的sname、sex和class列。
在PHP和MYSQL中实现完美的中文显示
第六章 學習SQL語言.
第6章 数据库系统及其应用.
課程名稱:資料庫系統 授課老師:李春雄 博士
Chapter 12 T-SQL 語法與 ASP.NET.
2、掌握SQL中各种查询方法和数据更新方法 3、掌握SQL中视图的定义方法和用法 4、掌握SQL的授权机制
第4章 数据的查询与更新 4.1 SQL查询语句格式 4.2 简单查询 4.3 统计查询 4.4 连接查询 4.5 嵌套查询
SQL Injection.
国家“十一五”规划教材 数据库原理与应用教程.
SPARQL若干问题的解释 刘颖颖
第一单元 初识C程序与C程序开发平台搭建 ---观其大略
第十七章 資料庫SQL 17-1 SELECT 17-2 INSERT 17-3 UPDATE 17-4 DELETE.
数据库基础 1.
An Introduction to Database System
第十章 IDL访问数据库 10.1 数据库与数据库访问 1、数据库 数据库中数据的组织由低到高分为四级:字段、记录、表、数据库四种。
第三章 关系数据库标准语言SQL SQL(Structured Query Language)语言是1974年由Boyce和Chamberlin提出的。 1975年~1979年IBM公司San Jose Research Laboratory研制了著名的关系数据库管理系统原型System R并实现了这种语言。
第二章 登录UNIX操作系统.
C语言程序设计 主讲教师:陆幼利.
学习目标 1、什么是字符集 2、字符集四个级别 3、如何选择字符集.
第18章 SQL結構化查詢語言 18-1 SQL語言的基礎 18-2 SQL的查詢指令 18-3 SQL子查詢與合併查詢.
資料庫系統 李翊豪 2017/12/21 Reference
SQL 范引娣.
3. SQL语言的应用 3.1 SQL历史和优点 3.2 数据查询 3.3 数据操纵.
第14章 SQL数据查询与操纵 内容提要 本章知识点
SQL查询语句 蔡海洋.
商业分析平台-语义元数据 用友集团技术中心 边传猛 2013年 11月 06日.
VB与Access数据库的连接.
本讲内容 SQL 概述 SQL 的查询功能 SQL 的操作功能 SQL 的定义功能.
第三章 SQL Server数据管理.
学习目标 1、Mysql Workbench更新数据
Web安全基础教程
成绩是怎么算出来的? 16级第一学期半期考试成绩 班级 姓名 语文 数学 英语 政治 历史 地理 物理 化学 生物 总分 1 张三1 115
第4章 Excel电子表格制作软件 4.4 函数(一).
学习目标 1、limit的作用 2、实例操作.
8 SELECT敘述的基本查詢 8-1 SELECT查詢指令 8-2 SELECT子句 8-3 FROM子句 8-4 WHERE子句
1.把下面的关系模式转化为E-R图 1)系(系号,系名,电话) 2)教师(工号,姓名,性别,年龄,系号)
Visual Basic程序设计 第13章 访问数据库
学习目标 1、了解基本运算符 2、运算符优先级.
学习目标 1、如何对结果进行分组 2、分组函数的一些实用方法.
本节内容 C语言的汇编表示 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
第六章 Excel的应用 五、EXCEL的数据库功能 1、Excel的数据库及其结构 2、Excel下的数据排序 (1)Excel的字段名行
基于列存储的RDF数据管理 朱敏
VB与Access数据库的连接.
WEB程序设计技术 数据库操作.
第四章 UNIX文件系统.
第4章 数据查询.
Chapter 14 Databases.
Presentation transcript:

如何解决以下问题: 找出档案表中的专业名称、有几个专业 从选课表中查出所有记录。 找出学号和成绩 ( 成绩大于80分; 课程号为“1002”或“1004”,并且成绩小于75分) 成绩大于80分的学生的姓名、或者姓名和专业 成绩等于80分的学生选修的课程名和学分 成绩小于60分的学生的所有信息 成绩在80到100分之间的选课信息 课程表中检索出课程名中带有“学”字的课程号和课程名 按学分升序检索出选课表中的所有信息 先按课程号升序排列,再按学分降序排列检索出选课表中的所有信息 如何进行计算查询,如计算某一门课程的平均分、某同学已经获得的总学分等等 求出学生来自多少个城市 求出来自“北京”的学生的总成绩 检索学时数最多的课程名和学分 检索出除北京之外的其他学生的平均分。 求出每门课程的平均分 选修了两门课以上学生的平均分。 检索出尚未填写家庭住址的学生信息 别名的使用:检索出选修了会计学的学生姓名的信息 谓词[NOT] EXISTS (子查询)和量词,ANY、SOME和All:哪些学生没有选修课程、至少选修了一门课程的学生的信息、成绩大于2004150101号学生所有成绩的学生的学号。 超联接查询:成绩大于70的学生的学号、姓名,性别和选修的课程号、成绩等信息;选修了“数据库应用”或“计算机基础”的学生的学号、姓名、专业、课程号、课程名和成绩等信息;所有学生的学号,姓名,课程号,成绩等相关情况 几个特殊选项:显示部分结果、查询-表、查询-数组、查询-临时表、查询-文件、查询-打印 如何进行表的操作(建立、删除、修改)、表记录的操作(增、删、改) 视图创建语法 如何使用工具来建立合适的SQL查询命令(查询、视图的向导和设计器)、查询与视图的异同、如何更新;P122例4-35 如何解决以下问题: 找出档案表中的专业名称、有几个专业 从选课表中查出所有记录。 找出学号和成绩 ( 成绩大于80分; 课程号为“1002”或“1004”,并且成绩小于75分) 成绩大于80分的学生的姓名、或者姓名和专业 成绩等于80分的学生选修的课程名和学分 成绩小于60分的学生的所有信息 成绩在80到100分之间的选课信息 课程表中检索出课程名中带有“学”字的课程号和课程名 按学分升序检索出选课表中的所有信息 先按课程号升序排列,再按学分降序排列检索出选课表中的所有信息 如何进行计算查询,如计算某一门课程的平均分、某同学已经获得的总学分等等 求出学生来自多少个城市 求出来自“北京”的学生的总成绩 检索学时数最多的课程名和学分 检索出除北京之外的其他学生的平均分。 求出每门课程的平均分 选修了两门课以上学生的平均分。 检索出尚未填写家庭住址的学生信息 别名的使用:检索出选修了会计学的学生姓名的信息 谓词[NOT] EXISTS (子查询)和量词,ANY、SOME和All:哪些学生没有选修课程、至少选修了一门课程的学生的信息、成绩大于2004150101号学生所有成绩的学生的学号。 超联接查询:成绩大于70的学生的学号、姓名,性别和选修的课程号、成绩等信息;选修了“数据库应用”或“计算机基础”的学生的学号、姓名、专业、课程号、课程名和成绩等信息;所有学生的学号,姓名,课程号,成绩等相关情况 几个特殊选项:显示部分结果、查询-表、查询-数组、查询-临时表、查询-文件、查询-打印 如何进行表的操作(建立、删除、修改)、表记录的操作(增、删、改) 视图创建语法 如何使用工具来建立合适的SQL查询命令(查询、视图的向导和设计器)、查询与视图的异同、如何更新;P122例4-35

本章学习线索: 第四章 关系数据库标准语言SQL 怎么用SELECT查询表中的记录 SQL是什么(与关系数据库) 查询结果如何处理-去向 如使用工具(向导、设计器)来帮助建立SQL命令 查询与视图的使用-自学 如何解决以下问题: 从档案表中查出专业名称 档案表中的学生分几个专业 从选课表中查出所有记录。 成绩大于80分的学生的学号和成绩 课程号为“1002”或“1004”,并且成绩小于75分的学号和成绩 成绩大于80分的学生的姓名和专业 成绩等于80分的学生选修的课程名和学分。 成绩大于75分的学生的姓名 成绩小于60分的学生的所有信息 成绩在80到100分之间的选课信息 课程表中检索出课程名中带有“学”字的课程号和课程名 按学分升序检索出选课表中的所有信息 先按课程号升序排列,再按学分降序排列检索出选课表中的所有信息 如何进行计算查询,如计算某一门课程的平均分、某同学已经获得的总学分等等 求出学生来自多少个城市 求出来自“北京”的学生的总成绩 检索学时数最多的课程名和学分 检索出除北京之外的其他学生的平均分。 求出每门课程的平均分 选修了两门课以上学生的平均分。 检索出尚未填写家庭住址的学生信息 别名的使用:检索出选修了会计学的学生姓名的信息 谓词[NOT] EXISTS (子查询)和量词,ANY、SOME和All:哪些学生没有选修课程、至少选修了一门课程的学生的信息、成绩大于2004150101号学生所有成绩的学生的学号。 超联接查询:成绩大于70的学生的学号、姓名,性别和选修的课程号、成绩等信息;选修了“数据库应用”或“计算机基础”的学生的学号、姓名、专业、课程号、课程名和成绩等信息;所有学生的学号,姓名,课程号,成绩等相关情况 几个特殊选项:显示部分结果、查询-表、查询-数组、查询-临时表、查询-文件、查询-打印 如何进行表的操作(建立、删除、修改)、表记录的操作(增、删、改) 视图创建语法 如何使用工具来建立合适的SQL查询命令(查询、视图的向导和设计器)、查询与视图的异同、如何更新;P122例4-35

第四章 关系数据库标准语言SQL 及数据查询 1.学习目标  * 掌握SQL语言的基本功能  * 使用SQL语言产生和修改数据库表  * 使用SQL语言操纵数据库数据 2.学习指南  * 通过档案表、课程表、选课表练习各种SQL语句操作  * 完成P127习题四1~9题,并将对应的SQL操作语句 保留在一个文件中,作为作业提交。 3.难点重点  * 掌握SQL语句的各种基本操作语句的格式和使用方法 , 包括带有各种集合函数、分组排序的查询操作; * 给定关系表和查询要求,会写出正确的SQL语句 1.课前思考  * 关系数据库的组织结构  * 关系数据模型和关系数据库的术语  * 关系数据库管理系统的基本功能 2.学习目标  * 掌握SQL语言的基本功能  * 使用SQL语言产生和修改数据库表  * 使用SQL语言操纵数据库数据 3.学习指南  * 通过教材的档案表、课程表、选课表,练习SQL各种语句的操作;  * 通过创建自己的数据库和表练习对数据库和表的操作;  * 完成P127习题四1~9题,并将对应的SQL操作语句保留在一个文件中,作为作业提交。 4.难点重点  * 掌握SQL语句的各种基本操作语句的格式和使用方法,包括带有各种集合函数、分组排序的查询操作; * 给定关系表和查询要求,会写出正确的SQL语句。

第一讲 SELECT-FROM-WHERE SQL 概述 SQL 的查询功能 单表查询 多表查询 连接查询 嵌套查询 BETWEEN…AND… LIKE

4.1 SQL概述 SQL是结构化查询语言 STRUCTURED QUERY LANGUAGE 的缩写,数据查询是SQL的最主要的组成部分,此外,SQL还包含数据定义、数据操纵和数据控制等部分。 SQL已经成为关系数据库的标准语言,所有关系数据库管理系统都支持SQL,VFP也如此。 SQL 发展:最早的SQL是1986年10月美国ANSI公布的。随后ISO于1987年6月也正式采纳它为国际标准,1989年又推出了SQL89版,1992年又推出了SQL92新标准版本。     SQL是结构化查询语言(Structured Query Language)的缩写,是关系数据库的标准语言。SQL是1974年在IBM的关系数据库SYSTEM R上实现的语言。它提供给用户一种表示方法说明要查询的结果特性,至于如何查询、以及查询结果的形式都由DBMS来完成。这种语言由于其功能丰富、方便易学受到用户欢迎。1986 年由美国国家标准局(ANSI)及国际标准化组织(ISO)公布作为关系数据库的标准语言。   SQL名为结构化查询语言, 实际功能包括数据定义、数据操纵和数据控制。目前新的SQL标准是1992年制定的SQL-92,简称SQL2。它的全名是"International Standard,ISO/IEC9075: 1992Database Language SQL"。   在SQL2基础上,又增加了许多新特征,称为SQL3。SQL标准的制定使得几乎所有的数据库厂家都采用SQL语言作为其数据库语言。但各家又在SQL标准的基础上进行扩充,形成自己的语言。   SQL Server扩充SQL标准称为Transact-SQL,简称T-SQL。

SQL语言主要特点: (1)SQL是一种结构化的语言,集数据定义DDL、数据操纵DML、数据控制DCL功能为一体。具有数据定义、数据查询、数据操纵和数据控制等功能。 (2) SQL是一种非过程化的语言,它不需要告诉计算机怎样做,只要描述清楚“做什么”即可。      1 语言功能的一体化:   集数据定义DDL、数据操纵DML、数据控制DCL功能为一体。并且它不严格区分数据定义和数据操纵,在一次操作中可以使用任何语句。   SQL 语言具有数据定义、数据操纵和数据控制功能,这为数据库应用开发提供了良好的环境。用户在数据库行以后,可以修改模式,不影响数据库的运行。不象非关系数 据库系统,修改模式需要先停止数据库运行,转储数据,修改模式,编译修改了的模式以后再重新装入数据库,使得修改模式非常不方便。  2 模式结构的一体化:   关系模型中唯一的结构类型就是关系表,这种数据结构的单一性,使得对数据库数据的增、删、改、查询等操作都只须使用一种操作符。  3高度非过程化的语言   使用SQL语言操作数据库,只须提出"做什么"无须指明"怎样做"。用户不必了解存取路径。存取路径的选择和SQL语句的具体执行由系统自己完成,从而简化了编程的复杂性,提高了数据的独立性。  4 面向集合的操作方式   SQL语言在元组集合上进行操作,操作结果仍是元组集合。查找、插入、删除和更新都可以是对元组集合操作。  5 两种操作方式、统一的语法结构   SQL语言既是自含式语言,又是嵌入式语言。作为自含式语言,可作为联机交互式使用,每个SQL语句可以独立完成其操作;作为嵌入式语言,SQL语句可嵌入到高级程序设计语言中使用。  6 语言简洁、易学易用:   SQL是结构化的查询语言,语言非常简单,完成数据定义、数据操纵和数据控制的核心功能只用了9个动词: Create; Drop;Alter; Select; Delete; Insert; Update; Grant; Revoke。   SQL的语法简单,接近英语口语,因此容易学习,使用方便。   SQL语言作为数据库语言,有它自己的词法和语法结构,并有其专用的语言符号,不同的系统稍有差别,主要的符号都相同。下面给出主要的语言符号:   大括号{ }:大括号中的内容为必选参数,其中可有多个选项,各选项之间用竖线分隔,用户必须选择其中的一项。   方括号[ ]:方括号中的内容为可选项,用户根据需要选用。   竖线| :表示参数之间'或'的关系。   省略号"…":表示重复前面的语法单元。   尖括号< >:表示下面有子句定义。   方括号和省略号[,…n]:表示同样选项可以重复1到n遍;  

(3)SQL语法比较简单,但语言功能很强,它很接近英语自然语言,因此容易学习和掌握 (4)SQL命令可以交互方式使用,也可以嵌入方式使用,如嵌入程序设计语言中使用,VFP就是这种方式。 SQL的命令动词参见表4-1: 查询:SELECT 定义:CREATE DROP ALTER 操纵:INSERT UPDATE DELETE 控制:GRANT REVOKE

4.2查询功能 SQL的核心是查询。SQL的查询命令也称作SELECT命令,它的基本形式由SELECT FROM WHERE查询模块组成,多个查询块可以嵌套执行,VFP的 SQL-SELECT语法如下: SELECT [ DISTINCT ] <目标字段表>  FROM 表名1 [,表名2] [ , … ] [ WHERE 记录筛选条件] [ GROUP BY 分组字段表 ] [ HAVING 组过滤条件] [ORDER BY 排序字段1[ASC | DESC] [ 排序字段2 … ] ] SELECT [UNIQUE/DISTINCT]<目标列名字>    FROM 表名[,表名]….   [ WHERE 条件表达式] [ GROUP BY 分组的列名 ]   [ HAVING 对组再选择的条件表达式] [ORDER BY 排序列名[ASC/DESC]]

SELECT命令6个短语的含义:须掌握 SELECT:要挑选表中哪些字段(以逗号分隔)——“投影” FROM:说明所选字段来自哪些表,以逗号分隔。 WHERE:说明所查询记录的过滤条件——“选择” GROUP BY:查询结果如何分组,用以分组统计、汇总 HAVING:挑拣分组的条件, 必须跟随GROUP BY使用 ORDER BY:确定查询结果的排列顺序

4.2.1 简单查询 SELECT [ DISTINCT ] <目标字段表> FROM 表名 [ WHERE 记录筛选条件] 按以上命令格式,请写出如下问题的查询命令: 找出档案表中的专业名称 例4-2 档案表中有几个专业 例4-2 DISTINCT 成绩超过70分的有哪些课程,找出课程号 例4-5 档案表中有哪些学生的档案,请给出他们的姓名 例4-1 从选课表中查出所有记录。“ * ”号的使用 例4-3 找出学号和成绩 (成绩大于80分呢 例4-4 ,或者要求 课程号为“1002”或“1004”,并且成绩小于75分例4-6)

例4.1 从档案表中查出专业名称。 SELECT 专业 FROM 档案表 结果是: 财会 可以看到查询结果中 财会 有重复值,如果要去 金融 掉重复值,需要指定 金融 DISTINCT 短语。 营销

例4-2结果 返回

例4-2结果 DISTINCT 返回

例4-5结果 返回

例4-3结果 返回

例4-1结果 返回

例4-4结果 返回

例4-6结果 返回

查找出档案表中有几个专业: SELECT DISTINCT 专业 FROM 档案表 结果是: 财会 金融 营销

例 4.2 从选课表中查出所有记录。 SELECT * FROM 选课表 结果是: 2004130101 1001 90 2004130101 1002 80 2004130101 1003 72 2004130102 1003 85 2004130102 1004 80 2004140101 1002 65 2004150101 1004 55 “*”是多字段通配符,表示某表中所有字段。

例4.3 检索出成绩大于80分的学号和成绩。 SELECT 学号,成绩 FROM 选课表; WHERE 成绩>80 结果是: 2004130101 90 2004130102 85 这里的WHERE短语是查询条件,查询条件条件可以是任意复杂的逻辑表达式。

例4.4 检索出课程号为“1002”或“1004”,并且成绩小于75分的学号和成绩。 SELECT 学号,成绩 FROM 选课表; WHERE 成绩<75 AND ; (课程号=’1002’ OR 课程号=’1004’) 结果是: 2004140101 50 2004150101 55 前面的几个例子在FROM之后只指定了一个关系,如果有WHERE条件子句,系统首先根据指定的条件依次检验关系中的每个记录,如果没有指定WHERE子句,则不进行检验,然后选出满足条件的记录。

4.2.2 简单的联接查询——从多表查询 SELECT [DIST] [表.] 字段1 [ , [表.]字段2 … ]  FROM 表1,表2 [ , … ] WHERE 表连接条件 [ AND 记录筛选条件 ] 请思考用简单的联接查询如何解决: 检索出成绩大于80分的学生的姓名和专业 例4-7 成绩等于80分的学生选修的课程名和学分例4-8 成绩小于60分的学生的所有信息 结果 SELECT 姓名,专业 FROM; 档案表,选课表 WHERE (成绩>80); AND (档案表.学号=选课表.学号) 结果是: 李洪昆 财会 王倩 财会 这里所要求检索的内容分别来自于选课表和档案表两个表,其中的“档案表.学号=选课表.学号”是联接条件。“.”是关系联接符。

例4-7结果 返回

例4-8结果 返回

不及格学生的所有信息 返回 SELECT档案表.*,课程表.课程号,课程名,学时数,学分,成绩 FROM; 档案表,选课表,课程表 WHERE 成绩<60 AND ; 档案表.学号=选课表.学号 AND 课程表.课程号=选课表.课程号

例4.8 检索出成绩等于80分的学生选修的 课程名和学分。 SELECT 课程名,学分 FROM ; 例4.8 检索出成绩等于80分的学生选修的 课程名和学分。 SELECT 课程名,学分 FROM ; 课程表,选课表 WHERE 成绩=80 ; AND 选课表.课程号=课程表.课程号 结果是: 计算机基础 2 会计学 4 从上面的例题可以看出,连接条件的两边带不带括号都是可行的。 SELECT 课程名,学分 FROM ; 课程表,选课表 WHERE选课表.课程号=课程表.课程号; AND 成绩=80

4.2.3 嵌套查询 基于多个关系的查询中,若结果出自一个关系,但相关的条件却涉及多个关系。语法: SELECT [ DISTINCT ] <目标字段表> FROM 表名 WHERE 字段名 运算符 ( Select-From-Where ) 记录筛选条件 内层子查询 例4.7 检索出成绩大于80分的学生的姓名和专业。 例4.8 索出成绩为80分的学生选修的课程名和学分。 例4.10 成绩小于60分的学生的档案表信息 例4.7 检索出成绩大于75分的学生的姓名。 SELECT 姓名,专业 FROM 档案表 WHERE; 学号 IN (SELECT 学号 FROM; 选课表 WHERE 成绩>80) 例4.8 检索出成绩为80分的学生选修的课程名和学分。 SELECT 课程名,学分 FROM 课程表 ; WHERE 课程号 IN; (SELECT 课程号 FROM 选课表 WHERE 成绩=80) 例4.10成绩小于60分的学生的档案表信息 SELECT * FROM 档案表 WHERE; 选课表 WHERE 成绩<60) 结果是: 李洪昆 王倩 可以看到,这个命令中有两个SELECT-FROM-WHERE 查询语句,即内外层查询块。这里的IN相当于集合运算符∈(属于)。

例4.7结果 返回

例4.8结果 返回

例4.10结果 返回

SELECT * FROM 档案表 WHERE 学号 ; NOT IN (SELECT 学号 FROM 选课表 ; 例4.10 检索出成绩小于60分的学生的所有信息 SELECT * FROM 档案表 WHERE 学号 ; NOT IN (SELECT 学号 FROM 选课表 ; WHERE 成绩>60) 结果是: 2004140101 李义 男 金融 昆明 2004140102 吴文英 女 金融 2004150102 赵西 男 营销 西安 这里的 NOT IN 是不属于运算。

4.2.4 几个特殊的运算符 BETWEEN....AND.... “在 … 和 … 之间” LIKE “具有 … 特征,象…一样” SQL中通配符“%”表示0个或多个字符, “_”(下划线)表示一个字符。 例4.11 检索出成绩在80到100分之间的选课信息 例4.12 从课程表中检索出课程名中带有“学”字的课程号和课程名。 例4.13 找出家庭住址不是”西安”也不是”北京"的同学的学号和姓名。 成绩 BETWEEN 80 AND 100 课程名 LIKE "%学" 。(BETWEEN....AND.…例题) SELECT * FROM 选课表 WHERE 成绩 ; BETWEEN 80 AND 100 结果是: 2004130101 1001 90 2004130101 1002 80 2004130102 1003 85 2004130102 1004 80 家庭住址 NOT IN ("西安" ,"北京")

BETWEEN … AND … 是 “在 … 和 … 之间”,该查询条件等价于: 例4.11 的命令还可以写成下面的语句: SELECT * FROM 选课表 WHERE ;

(LIKE例题) 从课程表中检索出课程名中带有 “学”字的课程号和课程名。 SELECT 课程号,课程名 FROM 课程表; WHERE 课程名 LIKE “%学” 结果是: 1001 高等数学 1004     会计学 1005     经济学 LIKE 是字符串匹配运算符,通配符“%”表示0个或多个字符,另外通配符“_”(下划线)表示一个字符。

例4.11结果 返回

例4.12结果 返回

例4.13结果 返回

4.2.5 排序 使用ORDER BY 可以将SELECT查询结果排序。 SELECT – FROM – [ WHERE – ] 4.2.5 排序 使用ORDER BY 可以将SELECT查询结果排序。 SELECT – FROM – [ WHERE – ] ORDER BY 字段名 [ ASC | DESC ] [ ,字段名 [ ASC | DESC ] ... ] 其中:ASC表示升序(默认),DESC表示降序 例4.10 按成绩升序检索出选课表中的所有信息。 例4.11 先按课程号升序排列,若课程号相同再按成绩降序排列检索出选课表中的所有信息。 例4.10 按成绩升序检索出选课表中的所有信息。 SELECT * FROM 选课表 ORDER BY 成绩 例4.11先按课程号升序排列,再按成绩 降序排列检索出选课表中的所有信息。 SELECT * FROM 选课表 ORDER BY ; 课程号,成绩 DESC

例4.10结果

例4.11结果

例4.10 按学分升序检索出选课表中的所有信息。 SELECT * FROM 选课表 ORDER BY 成绩 结果是: 2004140101 1002 50 2004150101 1004 55 2004150101 1005 70 2004130101 1004 72 2004130101 1002 80 2004130102 1004 80 2004130102 1003 85 2004130101 1001 90 其中短语“ORDER BY 成绩”是按升序排列,默认情况下按升序排序,ASC可加也可不加;如果按降序排序,ORDER BY子句后面的字段名后必须加上DESC。

例4.11先按课程号升序排列,再按学分 降序排列检索出选课表中的所有信息。 SELECT * FROM 选课表 ORDER BY ; 课程号,成绩 DESC 结果是: 2004130101 1001 90 2004130101 1002 80 ׃ ׃ ׃ 2004130102 1004 80 2004150101 1004 55 2004150101 1005 70 这里是对两列排序的例子,对多列同样可以进行排序操作。

本讲重点回顾 SELECT [ DISTINCT ] <目标字段表>  FROM 表名1 [,表名2] [ , … ] [WHERE 表连接条件 [ AND 记录筛选条件 ] ] [ ORDER BY 字段1 [ ASC | DESC ] [ ,字段2 [ ASC | DESC ] ... ] 单表查询 多表查询 连接查询 嵌套查询 BETWEEN…AND… LIKE SELECT [UNIQUE/DISTINCT]<目标列名字>    FROM 表名[,表名]….   [ WHERE 条件表达式] [ GROUP BY 分组的列名 ]   [ HAVING 对组再选择的条件表达式] [ORDER BY 排序列名[ASC/DESC]]

作业:1、本章书中例题 2、本章习题