版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第九章 结构化查询语句(SQL) 本本 章章 要要 点点 9.1SQL语言的基本概述语言的基本概述 9.2数据定义数据定义 9.3数据操纵数据操纵 9.4数据管理数据管理 9.5SQL中的数据查询语句中的数据查询语句 1综合统一综合统一 SQL语言集数据定义(语言集数据定义(DDL)、数据操纵()、数据操纵(DML)、)、 数据管理(数据管理(DCL)的功能于一体,语言风格统一,可以)的功能于一体,语言风格统一,可以 独立完成数据库的全部操作,包括定义关系模式、录入独立完成数据库的全部操作,包括定义关系模式、录入 数据及建立数据库、查询、更新、维护数据、数据库的数据及建立数据库、查询、更新、维
2、护数据、数据库的 重新构造、数据库安全性等一系列操作的要求,为数据重新构造、数据库安全性等一系列操作的要求,为数据 库应用系统开发者提供了良好的环境。库应用系统开发者提供了良好的环境。 2高度非过程化高度非过程化 用户只需提出用户只需提出“做什么做什么”,不必指明,不必指明“怎么怎么 做做” 3面向集合的操作方式面向集合的操作方式 4以同一种语法结构提供两种使用方式以同一种语法结构提供两种使用方式:交互式或程序中交互式或程序中 5语言简洁,易学易用语言简洁,易学易用 9.1.1 SQL语言的特点语言的特点 9.1.2 SQL语言的基本概念语言的基本概念 SQLSQL语言支持关系型数据库的三级模
3、式结构。其中外语言支持关系型数据库的三级模式结构。其中外 模式对应于视图(模式对应于视图(ViewView)和部分基本表()和部分基本表(Base TableBase Table),), 模式对应于基本表,内模式对应于存储文件。模式对应于基本表,内模式对应于存储文件。 基本表是本身独立存在的表,在基本表是本身独立存在的表,在SQLSQL语言中一个关系语言中一个关系 对应一个表。一些基本表对应一个存储文件,一个表可对应一个表。一些基本表对应一个存储文件,一个表可 以带若干索引,索引存放在存储文件中。以带若干索引,索引存放在存储文件中。 存储文件的逻辑结构组成了关系型数据库的内模式。存储文件的逻辑
4、结构组成了关系型数据库的内模式。 而存储文件的物理文件结构是任意的。而存储文件的物理文件结构是任意的。 视图是从基本表或其他视图中导出的表,它本身不视图是从基本表或其他视图中导出的表,它本身不 独立存储在数据库中,也就是说数据库只存放在视图的独立存储在数据库中,也就是说数据库只存放在视图的 定义而不存放视图对应的数据,这些数据仍存放在导出定义而不存放视图对应的数据,这些数据仍存放在导出 视图的基本表中,因此视图是一个虚表视图的基本表中,因此视图是一个虚表。 9.2 数据定义 示例 9.2.2 修改表 【例【例9-4】在课程成绩表】在课程成绩表SC中,增加一个成绩字段变量(中,增加一个成绩字段变
5、量(N,3)。)。 OPEN DATABASE 课程成绩课程成绩 ALTER TABLE SC ALTER 成绩成绩 N(4) CHECK; 成绩成绩520 ERROR “成绩大于成绩大于520分分” LIST STRUCTURE ALTER TABLE SC ALTER 成绩成绩 DROP CHECK ALTER TABLE SC ALTER 成绩成绩 SET DEFAULT 521 ALTER TABLE SC DROP COLUMN 成绩成绩 【格式】【格式】DROP DATABASE 【功能】删除指定数据库的结构和数据。【功能】删除指定数据库的结构和数据。 【说明】谨慎使用。【说明】谨
6、慎使用。 9.2.4 删除表删除表 【格式】【格式】DROP TABLE 【功能】删除指定表的结构和内容(包括在此表上建【功能】删除指定表的结构和内容(包括在此表上建 立的索引)。立的索引)。 【说明】如果只是想删除一个表中的所有记录,则应【说明】如果只是想删除一个表中的所有记录,则应 使用使用DELETE语句。语句。 9.2.3 删除数据库删除数据库 数据操纵语言是完成数据操作的命令,一般分为两种类数据操纵语言是完成数据操作的命令,一般分为两种类 型的数据操纵,它们统称为型的数据操纵,它们统称为DML: 数据检索(常称为查询):寻找所需的具体数据。数据检索(常称为查询):寻找所需的具体数据。
7、 数据修改:添加、删除和改变数据。数据修改:添加、删除和改变数据。 数据操纵语言一般由数据操纵语言一般由INSERT(插入)、(插入)、DELETE(删(删 除)、除)、UPDATE(更新),(更新),SELECT(检索,又称查询)(检索,又称查询) 等组成,由于等组成,由于SELECT比较特殊,所以一般又将它以查询比较特殊,所以一般又将它以查询 (检索)语言单独出现。(检索)语言单独出现。 9.3 数据操纵数据操纵 【格式【格式1】INSERT INTO () VALUES () 【格式【格式2】INSERT INTO FROM ARRAY | FROM MEMVAR 【功能】在指定的表文件
8、末尾追加一条记录。格式【功能】在指定的表文件末尾追加一条记录。格式1用表达式表中用表达式表中 的各表达式值赋值给的各表达式值赋值给中的相应的各字段。格式中的相应的各字段。格式2用数组用数组 或内存变量的值赋值给表文件中各字段。或内存变量的值赋值给表文件中各字段。 【说明】如果某些字段名在【说明】如果某些字段名在INTO子句中没有出现,则新记录在这子句中没有出现,则新记录在这 些字段名上将取空值(或默认值)。但必须注意的是,在表定义些字段名上将取空值(或默认值)。但必须注意的是,在表定义 说明了说明了NOT NULL的字段名不能取空值。的字段名不能取空值。 9.3.1 插入记录插入记录 :指定表
9、文件中的字段,缺省时,按:指定表文件中的字段,缺省时,按 表文件字段的顺序依次赋值。表文件字段的顺序依次赋值。 :指定要追加的记录各个字段的值。:指定要追加的记录各个字段的值。 【例【例9-5】在表文件】在表文件STUD的末尾追加三条记录。的末尾追加三条记录。 *用表达式方式追加第一条记录用表达式方式追加第一条记录* INSERT INTO STUD (学号,姓名学号,姓名) VALUES (“011110”,“李建国李建国”) DIMENSION DATA (8) DATA(1)=011103 DATA(2)=李宁李宁 DATA(3)=女女 DATA(4)=电电0134 DATA(5)=02
10、 DATA(6)=江西九江江西九江 DATA(7)=1985/06/15 DATA(8)=.F. INSERT INTO STUD FROM ARRAY DATA *用数组方式追加第二条记录用数组方式追加第二条记录* 学号学号=011202 姓名姓名=赵娜赵娜 性别性别=女女 班级名班级名=英英0112 系别代号系别代号=03 地址地址=广西南宁广西南宁 出生日期出生日期=1984/02/21 是否团员是否团员=.F. INSERT INTO STUD FROM MEMVAR LIST *用内存变量方式追加第三条记录用内存变量方式追加第三条记录* 【格式】【格式】UPDATE SET = ,
11、= WHERE 【功能】更新指定表文件中满足【功能】更新指定表文件中满足WHERE条件子句的数据。其条件子句的数据。其 中中SET子句用于指定列和修改的值,子句用于指定列和修改的值,WHERE用于指定更新的行,用于指定更新的行, 如果省略如果省略WHERE子句,则表示表中所有行。子句,则表示表中所有行。 【说明】更新操作又称为修改操作。【说明】更新操作又称为修改操作。 【例【例9-6】将成绩表(】将成绩表(SC)中,所有课程号为)中,所有课程号为02的成绩各加的成绩各加5分。分。 UPDATE SC SET 成绩成绩=成绩成绩+5 ; WHERE 课程号课程号=02 9.3.2 更新记录命令更
12、新记录命令 9.3.3 删除记录删除记录 【格式】【格式】DELETE FROM WHERE 【功能】从指定的表中删除满足【功能】从指定的表中删除满足WHERE子句条件的所有子句条件的所有 记录。如果在记录。如果在DELETE语句中没有语句中没有WHERE子句,则该表子句,则该表 中的所有记录都将被删除。中的所有记录都将被删除。 【说明】这里的删除是逻辑删除,即在删除的记录前加上【说明】这里的删除是逻辑删除,即在删除的记录前加上 一个删除标记一个删除标记“*”。 【例【例9-7】删除】删除STUD表中所有性别为男的记录。表中所有性别为男的记录。 DELETE FROM STUD WHERE 性
13、别性别=“男男” 数据管理(也称数据控制)语言是用来管理(或数据管理(也称数据控制)语言是用来管理(或 控制)用户的访问权限的。由控制)用户的访问权限的。由GRANT(授权)、(授权)、 REVOTE(回收)命令组成。而(回收)命令组成。而Visual FoxPro 6没没 有这种权限管理。有这种权限管理。 9.4 数据管理数据管理 9.5 SQL中的数据查询语句中的数据查询语句 9.5.1 基本查询语句基本查询语句 【格式】【格式】SELECT ALL | DISTINCT FROM 【功能】无条件查询。【功能】无条件查询。 【说明】【说明】ALL: 表示显示全部查询记录,包括重复记录。表示
14、显示全部查询记录,包括重复记录。 DISTINCT: 表示显示无重复结果的记录。表示显示无重复结果的记录。 9.5.2 带条件(带条件(WHERE)的查询语句)的查询语句 【格式】【格式】SELECT ALL | DISTINCT FROM WHERE 【功能】从一个表中查询满足条件的数据。【功能】从一个表中查询满足条件的数据。 【例【例1】查询学生的基本信息。】查询学生的基本信息。 SELECT * FROM 学生学生 【例【例2】查询学生的年龄信息。】查询学生的年龄信息。 SELECT 学号,姓名,学号,姓名,year(date()- year(出生日期)出生日期) AS 年龄年龄 FRO
15、M 学生学生 【例【例3】显示学生表中所有男生记录的学号,姓名】显示学生表中所有男生记录的学号,姓名 和性别字段值。和性别字段值。 SELECT 学号,姓名,性别学号,姓名,性别 FROM 学生学生 WHERE 性别性别=男男 【例【例4】显示学生表中出生日期在】显示学生表中出生日期在85年到年到86年之间年之间 的学生的学号,姓名,出生日期。的学生的学号,姓名,出生日期。 SELECT 学号,姓名,出生日期学号,姓名,出生日期 ; FROM 学生学生 ; WHERE 出生日期出生日期 BETWEEN 1985-01- 01 AND 1986-12-31 【例【例5】显示】显示STUD表中姓李
16、的学生的学号,姓名,表中姓李的学生的学号,姓名, 出生日期。出生日期。 SELECT 学号,姓名,出生日期学号,姓名,出生日期; FROM 学生学生 ; WHERE 姓名姓名 LIKE “李李%” 9.5.3 SQL的复杂查询的复杂查询 1、简单连接查询、简单连接查询 【例【例1】查询男学生的成绩信息,包括学号,姓名,成绩。】查询男学生的成绩信息,包括学号,姓名,成绩。 SELECT a.学号,学号,a.姓名,姓名,b.成绩成绩 ; FROM 学生学生 a, 成绩成绩 b ; WHERE a.学号学号=b.学号学号 AND a.性别性别=“男男” 【例【例2】查询并显示各个学生所学课程的情况。
17、】查询并显示各个学生所学课程的情况。 SELECT a.学号,学号,a.姓名,姓名,c.课程名课程名 ; FROM 学生学生 a,成绩,成绩 b,课程,课程 c ; WHERE a.学号学号=c.学号学号. AND .c.课程号课程号=b.课程号课程号 2嵌套查询嵌套查询 在在SQL语句中,一个语句中,一个SELECTFROMWHERE语句称为语句称为 一个查询块。将一个查询块嵌套在另一个查询块的一个查询块。将一个查询块嵌套在另一个查询块的WHERE子子 句或句或HAVING短语的条件中的查询称为嵌套查询或子查询。短语的条件中的查询称为嵌套查询或子查询。 【例【例1】显示】显示“王波王波”所在
18、班级的学生名单。所在班级的学生名单。 SELECT 学号,姓名,班级学号,姓名,班级; FROM 学生学生 ; WHERE 班级班级=(SELECT 班级班级 FROM STUD WHERE 姓名姓名=“王波王波”) 【例【例2】查询女生成绩信息,包括学号,课程号,成绩。】查询女生成绩信息,包括学号,课程号,成绩。 Sele * from 成绩成绩 where 学号学号 in (sele 学号学号 ; From 学生学生 where 性别性别=“女女” 3超联接查询超联接查询 SELE . FROM TABLE INNER LEFT RIGHT FULL JOIN TABLE ON 条件条件
19、WHERE. (1)内部联接:普通联接,只有满足条件的记录出现在结果。)内部联接:普通联接,只有满足条件的记录出现在结果。 (2)左联接:满足条件的记录出现在结果,同时第一个表不)左联接:满足条件的记录出现在结果,同时第一个表不 满足条件的记录也出现。满足条件的记录也出现。 (3)右联接:满足条件的记录出现在结果,同时第二个表不)右联接:满足条件的记录出现在结果,同时第二个表不 满足条件的记录也出现。满足条件的记录也出现。 (4)完全联接:不管是否满足联接条件的记录全出现在结果)完全联接:不管是否满足联接条件的记录全出现在结果 SELECT a.学号,学号,b.课程名,课程名,b.成绩成绩 ;
20、 FROM 成绩成绩 a INNER LEFT RIGHT FULL JOIN ; 课程课程 b ON a.课程号课程号=b.课程号课程号 4、简单计算查询、简单计算查询 主要函数:计数主要函数:计数COUNT();求和();求和 SUM();平均值();平均值 AVG();最大值();最大值 MAX();最小值();最小值 MIN()。()。 例如例如 查询最高分的学生信息。查询最高分的学生信息。 4排序与分组查询排序与分组查询 【格式】【格式】SELECT ALL | DISTINCT FROM WHERE GROUP BY HAVING ORDER BY ASC | DESC 【功能】包
21、括有排序、函数运算和谓词演算【功能】包括有排序、函数运算和谓词演算 【例【例1】按出生日期降序显示】按出生日期降序显示STUD表中的学号,姓名,出表中的学号,姓名,出 生日期。生日期。 SELECT 学号,姓名,出生日期学号,姓名,出生日期 ; FROM STUD ; ORDER BY 出生日期出生日期 DESC 【例【例2】按成绩升序显示】按成绩升序显示SC表中的学号,课程号,成绩。表中的学号,课程号,成绩。 SELECT 学号,课程号,成绩学号,课程号,成绩 ; FROM SC ; ORDER BY 成绩成绩 【例【例3】按班级分类显示学生的姓名,课程名,成绩,同一班】按班级分类显示学生的
22、姓名,课程名,成绩,同一班 级按分数排序。级按分数排序。 SELECT a.姓名,姓名,a.班级名,班级名,c.课程名,课程名,b.成绩成绩 ; FROM STUD a,SC b,COURSE c ; WHERE a.学号学号=b.学号学号 AND b.课程号课程号=c.课程号课程号; ORDER BY a.班级名,班级名,b.成绩成绩; 【例【例4】显示各班总人数。】显示各班总人数。 SELECT 班级名,班级名,COUNT(*) AS 总人数总人数 ; FROM STUD ; GROUP BY 班级名班级名 5、集合并运算、集合并运算 【例】显示计算机系的学生及所有男学生。【例】显示计算机
23、系的学生及所有男学生。 SELECT 学号,姓名,系别代号,性别学号,姓名,系别代号,性别 ; FROM STUD ; WHERE 系别代号系别代号=01 UNION ; SELECT 学号,姓名,系别代号,性别学号,姓名,系别代号,性别 ; FROM STUD ; WHERE 性别性别=男男 【例【例1】显示计算机系男生的名单。】显示计算机系男生的名单。 SELECT 学号,姓名,系别代号,性别学号,姓名,系别代号,性别 ; FROM STUD ; WHERE 系别代号系别代号=“01” AND 性别性别=“男男” 【例【例2】显示既选修了】显示既选修了01课程又选修了课程又选修了02课程学生的名单。课程学生的名单。 SELECT 学号学号 ; FROM SC ; WHERE 课程号课程号=“01” AND 学号学号 IN ; (SELECT 学号学号 FROM SC WHERE 课程号课程号=“02”) 【例【例3】显示计算机系非男生的名单。】显示计算机系非男生的名单。 SELECT 学号,姓名,系别代号,性别学号,姓名,系别代号,性别 ; FROM STUD ; WHERE 系别代号系别代号=“01” AND 性别性别=“女女” 【例【例4 】显示选修了】显示选修了01课程而没有选修课程而没有选修02课程学生的名单。课程学生的名单。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 江西农业大学《Cpa税法》2025-2026学年期末试卷
- 阜阳幼儿师范高等专科学校《数理经济学》2025-2026学年期末试卷
- 泉州工艺美术职业学院《健康教育学》2025-2026学年期末试卷
- 无人机测绘操控员安全实践竞赛考核试卷含答案
- 婚介师操作知识能力考核试卷含答案
- 漆器镶嵌装饰工安全宣贯测试考核试卷含答案
- 制剂及医用制品灭菌工岗前生产安全效果考核试卷含答案
- 聚碳酸酯装置操作工岗前技术实务考核试卷含答案
- 飞机燃油动力系统安装调试工岗前基础综合考核试卷含答案
- 小学生英语口语提升指南-掌握有效的教学方法和训练技巧
- 神经内科病历书写
- DL∕T 1987-2019 六氟化硫气体泄漏在线监测报警装置技术条件
- 南京市指导服务企业安全生产工作指引-加油站现场安全重点检查指引分册
- 小学生心理健康测评报告总结
- 兰州彤辉商贸有限公司肃南县博怀沟一带铜铁矿矿产资源开发与恢复治理方案
- 光伏并网前单位工程验收报告-2023
- 商业插画讲课用课件
- 钢结构施工安全培训
- JCT698-2010 石膏砌块标准
- DB5331T 39-2023 德昂酸茶(干茶)感官审评方法
- GB/T 33187.1-2016地理信息简单要素访问第1部分:通用架构
评论
0/150
提交评论