版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据库系统·课堂讲授课件大学数据库系统原理《SQL语言》课堂讲授课件查询·更新·连接·视图·优化授课教师:XXX授课时间:2026年课程导览01SQL概述数据库基础与SQL语言定位02基础查询SELECT语句与条件检索03数据更新增删改与表结构定义04高级查询连接、子查询与分组统计05编程对象视图、索引与存储过程06综合应用实战案例与性能优化SQL语言概述一切数据操作,始于对语言的准确理解认识数据库与SQL的定位数据库基础01数据管理技术的发展数据管理技术经历了三个重要阶段,每个阶段都解决了前一阶段的核心痛点数据管理技术围绕数据共享与一致性难题,依次经历了三个发展阶段。“数据库技术的出现,本质上是为解决数据共享与一致性难题而生。”阶段一人工管理阶段数据不保存、不独立由程序自行管理缺乏共享机制程序内部各自处理数据阶段二文件系统阶段数据以文件形式长期保存程序与数据有了一定独立性存在数据冗余大、一致性差的问题文件间仍相互独立阶段三数据库系统阶段数据实现整体结构化组织由数据库管理系统统一管理实现数据共享、冗余可控、独立性高数据库管理系统统一管理数据库与关系模型基础数据库技术与关系模型是后续学习SQL的基础理解这些术语,是读懂后续所有SQL语句的前提数据库基本概念3项数据库长期存储在计算机内、有组织、可共享的数据集合数据库管理系统位于用户与操作系统之间,负责数据定义、操纵、维护的软件数据库系统由数据库、数据库管理系统、应用程序与人员共同构成关系模型核心术语4项关系一张二维表元组表中的一行,即一条记录属性表中的一列,即一个字段键能够唯一标识元组的属性或属性组SQL语言是什么与特点正因为这些特点,SQL成为应用最广泛的数据库语言。结构化查询语言是关系数据库的标准操作语言,集数据定义、数据操纵、数据控制综合统一集数据定义、数据操纵、数据控制于一体,语言风格统一非过程化只需说明做什么,无需指明怎么做,存取路径由系统自动选择面向集合操作对象是元组的集合,而非单条记录,一次处理一批数据语法简洁核心语句种类不多,接近自然英语,易于学习和使用SQL语言的分类牢记这四类划分,学习时才不会迷失在众多语句之中。数据定义语言用于定义和管理数据库对象,代表语句有
CREATE、ALTER、DROP。数据操纵语言用于改变表中的数据,代表语句有
INSERT、UPDATE、DELETE。数据查询语言用于从表中检索数据,核心语句是
SELECT,使用频率最高。数据控制语言用于控制访问权限与事务,代表语句有
GRANT、REVOKE、COMMIT、ROLLBACK。基础查询与检索查询是SQL最常用的能力掌握SELECT语句的核心用法SQL核心能力02SELECT语句基本结构SELECT语句是SQL中使用最频繁的语句,基本结构如下:SELECT语句由
SELECT子句、FROM子句
与可选的
WHERE子句
构成,各子句承担不同的查询职责。子句含义SELECT指定要查询的列FROM指定数据来源的表WHERE指定行的过滤条件列表达式与书写建议列表达式支持列名、常量、函数、运算符组合书写建议多列用逗号分隔,明确列别名WHERE条件查询WHERE子句用于从表中筛选满足条件的记录。WHERE子句筛选符合条件的记录——比较、逻辑与书写三要素比较运算符6种全部等于
=、大于
>、小于
<、大于等于
>=、小于等于
<=、不等于
<>
或
!=示例WHEREage>=18,查询年龄不小于
18
的记录逻辑运算符3项AND两个条件同时成立,如WHEREage>=18ANDsex='男'OR两个条件至少一个成立NOT对条件取反字符串常量需用单引号括起;AND与OR混用时应加括号明确优先级模糊查询与范围查询除了精确比较,WHERE子句还支持多种灵活的条件形式。判断空值必须用
ISNULL,不能写成
=NULL—空值判断规范模糊查询
LIKEWHEREsnameLIKE'张%'—查询所有姓张的学生%:匹配任意多个字符_:匹配任意单个字符范围查询
BETWEENWHEREscoreBETWEEN60AND90—查询成绩在60到90之间的记录集合查询
INWHEREmajorIN('计算机','软件工程')—查询专业属于给定集合的记录空值判断
ISNULLWHEREphoneISNULL—查询电话为空的记录ORDERBY排序与去重对查询结果按指定列排序。排序与去重常与SELECT配合使用,是结果处理的重要环节。ORDERBY排序ASC升序,默认方式,可省略DESC降序单列排序ORDERBYscoreDESC,按成绩从高到低排列多列排序ORDERBYmajorASC,scoreDESC,先按专业升序,专业相同再按成绩降序DISTINCT去重示例SELECTDISTINCTmajorFROMstudent,查询所有不重复的专业注意DISTINCT作用于其后所有列的组合,而非某一列排序与去重常与SELECT配合使用,是结果处理的重要环节。聚合函数统计聚合函数对一组值进行计算,返回单个汇总结果常用聚合函数5类COUNT·统计记录个数COUNT(*)
统计总行数SUM·求和SUM(score)
计算成绩总和AVG·求平均值AVG(score)
计算平均成绩MAX·求最大值返回一组值中的最大项MIN·求最小值返回一组值中的最小项使用要点3项GROUPBY配合常与
GROUPBY
配合,实现分组统计COUNT两种形态COUNT(*)
统计所有行,COUNT(列名)
忽略该列为空的行SELECT列限制除聚合函数外,SELECT
后出现的列必须出现在
GROUPBY
中聚合函数是数据分析类查询的关键工具数据更新与定义数据不仅要查得到,更要管得住掌握增删改与表结构操作数据库基础03INSERT插入数据INSERT语句用于向表中添加新记录,是数据入库的入口操作基本语法3项INSERTINTO表名(列1,列2,…)VALUES(值1,值2,…)基本语法格式,括号内为可选项列名与值需一一对应确保插入顺序与列名匹配未指定的列将使用默认值省略列时由数据库自动填充两种写法3项显式指定列名仅插入指定列的数据省略列名需按表结构顺序提供所有列的值注意事项省略列名时值顺序必须与表结构一致UPDATE更新数据省略WHERE条件,将更新表中所有记录基本语法UPDATE表名SET列1=值1,列2=值2WHERE条件;使用要点·SET
后指定要修改的列及新值·WHERE
限定更新范围重要提醒:更新前确认WHERE条件,避免误更新全表DELETE删除数据删除数据主要有两种方式,用途各不相同DELETE语句按条件删除DELETEFROM表名WHERE条件;按条件删除指定记录数据操纵语言会记录日志,可回滚省略WHERE将删除全部记录TRUNCATE语句清空整表TRUNCATETABLE表名;一次性清空表中所有数据数据定义语言执行速度快,日志记录少通常不可回滚不触发删除触发器选择建议:需按条件删除或需回滚,用DELETE;需快速清空整表,用TRUNCATE。理解两者差异,才能避免误删数据。常用数据类型定义表结构时,需要为每一列选择合适的数据类型。选择类型应遵循“够用即可”原则,避免浪费存储空间。INTDECIMALVARCHAR数值类型3项INT整数类型DECIMAL定点数,适合表示金额等精确数值FLOAT、DOUBLE浮点数字符类型2项CHAR定长字符,适合长度固定的编码VARCHAR变长字符,适合姓名、地址等长度不定的内容日期时间类型3项DATE日期,如2026-09-24TIME时间DATETIME日期与时间的组合表定义与约束基本语法3项CREATETABLE创建新表的命令字段定义指定列名与数据类型约束声明定义列的完整性规则五类约束5项PRIMARYKEY唯一标识每行NOTNULL不允许为空UNIQUE保证唯一性CHECK满足指定条件FOREIGNKEY关联其他表约束是保证数据完整性的
第一道防线。高级查询技术复杂问题,需要更强大的查询武器攻克连接、子查询与分组统计进阶技能04GROUPBY分组统计分组统计是报表类查询的核心手段。分组统计是报表类查询的核心手段语法·基本用法基本用法GROUPBY列名SELECTmajor,COUNT(*)FROMstudentGROUPBYmajor按专业分组,统计每个专业的学生人数筛选分组HAVING筛选WHERE
筛选单条记录,HAVING
筛选分组结果HAVINGCOUNT(*)>10只保留人数超过
10
的专业执行顺序执行顺序提醒1WHERE
先执行2再分组3最后用
HAVING
筛选分组先
WHERE
再
分组
最后
HAVING内连接查询当需要的数据分布在多张表中时,就要使用连接查询。基本语法3要点SELECT...FROM表AINNERJOIN表BON连接条件核心语法骨架:先指定查询列,再列出数据来源表,用
INNERJOIN
连接第二张表,并在
ON
后写入两表的连接条件。连接查询从多张表获取数据当需要的数据分布在多张表中时,连接查询可将这些表按条件关联,一次性取出所需字段。INNERJOIN语法结构INNERJOIN
只返回两表中连接条件匹配的行,是使用最频繁的连接方式。基本语法多表关联外连接查询外连接在连接的基础上,会保留某一侧表中不匹配的记录。左外连接LEFTJOIN保留左表全部记录右表无匹配时,相应列显示为空值如查询所有学生及其选修课程,没有选课的学生也会显示右外连接RIGHTJOIN保留右表全部记录左表无匹配时,相应列显示为空值与内连接的对比:内连接只保留匹配成功的记录;外连接会保留一侧表的全部记录当需要"以某张表为主,展示其全部信息"时,应选择外连接。VS子查询先执行子查询,将其结果作为外层查询的条件或数据源;通常用括号将子查询括起来。子查询是指嵌套在另一个查询中的
SELECT语句,用查询结果驱动外层查询。“子查询是解决复杂问题的有力工具”IN子查询WHEREmajorIN(SELECTmajorFROM...)等值匹配比较子查询与外层条件配合,如>(SELECTAVG(score)FROM...)条件比较EXISTS子查询判断子查询是否返回结果存在判断集合运算集合运算用于将多个查询结果组合起来。∪并运算UNION合并合并两个查询结果,去除重复行示例例:合并两个专业的学生名单UNIONALL使用
UNIONALL
则保留全部行,不去重,速度更快∩交运算INTERSECT交集返回两个查询结果中共同存在的行示例例:既选修了A课程又选修了B课程的学生−差运算EXCEPT差集返回在第一个结果中但不在第二个结果中的行示例例:选修了A课程但没有选修B课程的学生数据库编程对象让数据库更高效、更安全地服务应用理解视图、索引与存储过程数据库基础05视图视图本质是一条被保存的SELECT语句;查询视图时,系统执行其定义的查询并返回结果。视图是数据库设计中常用的封装手段01视图本质一条被保存的
SELECT语句02查询视图系统执行其定义的查询并返回结果03创建视图CREATEVIEW视图名ASSELECT...04使用视图像查询普通表一样查询视图🔑主要作用简化把多表连接封装成一个视图安全只暴露部分列或行,隐藏敏感数据独立底层表结构变化时,通过视图保持接口稳定索引通过额外数据结构记录列值与记录位置的对应关系;先查索引定位,避免逐行扫描整张表。索引不是越多越好,应在
查询与写入之间取得平衡原原理与语法基本原理通过额外数据结构记录列值与记录位置的对应关系查询方式先查索引定位,避免逐行扫描整张表创建CREATEINDEX
索引名ON表名(列名);删除DROPINDEX
索引名;场场景与代价适用场景经常出现在
WHERE
条件、连接条件和排序中的列自动索引主键会自动建立索引存储代价占用额外存储空间写入代价插入、更新、删除时需同步维护索引,降低写入速度存储过程存储过程是一组为完成特定功能而预先编译并存储在数据库中的SQL语句集合。将复杂的业务逻辑封装为可复用的数据库端程序创建与调用2项创建CREATEPROCEDURE
过程名(参数)调用CALL
过程名(参数)基本概念2项程序逻辑流程控制、变量、参数等,具备一定的程序逻辑存储与执行存储在服务器端,一次编译,多次执行存储过程适用于封装复杂的、可复用的业务逻辑触发器触发器是一种特殊的过程,它与表关联,在特定事件发生时
自动执行。谨慎使用:避免逻辑过于复杂而难以维护基本概念2项无需手动调用由数据变化自动触发常用于实现复杂的业务规则和数据审计触发时机2种BEFORE在插入、更新、删除之前触发AFTER在插入、更新、删除之后触发对应事件:INSERTUPDATEDELETE典型用途3项自动记录数据修改日志自动维护汇总字段或数据一致性对不合规的操作进行拦截综合应用与优化把零散知识,连成解决问题的能力融会贯通并建立性能意识06SQL语句执行顺序SQL语句的书写顺序与逻辑执行顺序并不相同,理解这一点对写出正确查询至关重要。SQL的实际执行遵循逻辑顺序,而非书写顺序掌握六步执行链路,写出正确查询第1步FROM确定数据来源表第2步WHERE筛选单条记录第3步GROUPBY对记录分组第4步HAVING筛选分组结果第5步SELECT确定输出列第6步ORDERBY对结果排序WHERE分组前执行,不能使用聚合函数HAVING分组后执行,可以使用聚合函数SELECT别名不能在
WHERE
中使用,但可在
ORDERBY
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- T/CI 770-2024隔爆电缆固定头
- 三类人员安全员b证考试题库及答案
- ISO 10893-5 2023 中文版 钢管无损检测 漏磁检测无缝钢管缺陷
- 护士和基层医生如何快速判断病人心功能
- 《sip协议介绍》课件
- 2026年秋招:河南检验检测研究院集团笔试题及答案
- 2026年秋招:海王集团试题及答案
- 2026年秋招:贵州城乡规划设计研究院试题及答案
- 初二【语文(统编)】单元总结课(五)把握阅读方法 感受理性精神 任务单
- 全口义齿单元试题及答案梳理
- 刑事执行考试题及答案
- 电梯拆除施工方案
- 月满中秋平安同行-中秋文化暨假期安全教育主题班会
- 小金县人力资源和社会保障局2026年增量政策性岗位招募的(13人)考试备考题库及答案详解
- 2026下半年杭州市数据资源管理局所属杭州市大数据管理服务中心招聘9人笔试参考题库及答案详解
- 2025年内蒙古自治区网格员招聘考试题库及答案解析
- 2026 年白露节气气候变化健康科普课件
- 2026秋新版小学湘科版科学四年级上册教学设计(附目录)适用于新课标
- 2026年全国高考英语考试大纲
- 建立健全泉水调查监测评价制度实施方案
- 广西2026年选调生《综合知识》考试真题(完整版)
评论
0/150
提交评论