第4章-关系数据库标准语言-SQL课件

上传人:沈*** 文档编号:241639316 上传时间:2024-07-12 格式:PPT 页数:40 大小:200KB
返回 下载 相关 举报
第4章-关系数据库标准语言-SQL课件_第1页
第1页 / 共40页
第4章-关系数据库标准语言-SQL课件_第2页
第2页 / 共40页
第4章-关系数据库标准语言-SQL课件_第3页
第3页 / 共40页
点击查看更多>>
资源描述
第4章 关系数据库 标准语言SQL 1一二请在这里输入您的主要叙述内容整体概述三请在这里输入您的主要叙述内容请在这里输入您的主要叙述内容2本章要点 掌握SQL的基本概念,了解SQL语言的特点和功能,掌握使用SQL进行数据定义、数据更新、数据查询的方法,熟练掌握 Select语句的使用,掌握使用SQL实现简单查询、连接查询、嵌套查询、集合查询的方法。3第4章 关系数据库标准语言SQL 4.1 SQL语言概述4.1.1 SQL4.1.1 SQL语言的特点 1.高度的综合:SQL语言集数据操纵、数据定义和数据控制功能于一体。2.非过程化:SQL语言是一个高度非过程化的语言,在采用SQL语言进行数据操作时,只要提出“做什么”,而不必指明“怎么做”,其它工作由系统完成。3.采用面向集合的操作方式:用户只要使用一条操作命令,其操作对象和操作结果都可以是元组的集合。4.一种语法结构两种使用方式:自含式语言,又是嵌入式语言。5.语言结构简捷:数据操纵:Select,Insert,Update,Delete数据定义:Create,Alter,Drop数据控制:Grant,Revoke4第4章关系数据库标准语言SQL 4.1 SQL语言概述4.1.2 SQL4.1.2 SQL语言的功能SQLSQL语言具有以下5 5个方面的功能。1.1.数据定义功能(1 1)定义、删除与修改基本表;(2 2)建立与删除索引。2.2.数据查询功能(1 1)单表查询;(2 2)多表查询(连接查询、嵌套查询);(3 3)使用集函数增加查询附加功能;(4 4)集合查询。3.3.数据更新功能(1 1)插入数据;(2 2)修改数据;(3 3)删除数据。4.4.视图管理功能(*)(*)(1 1)建立、删除视图;(2 2)视图查询;(3 3)视图更新。5.5.数据控制功能(*)(1 1)数据保护(安全性和完整性控制);(2 2)事务管理(数据库的恢复、并发控制)。5第4章关系数据库标准语言SQL 4.2 数据定义4.2.1 SQL4.2.1 SQL语言基本数据类型常用的基本数据类型。1.1.数值型IntegerInteger,SmallintSmallint,Float(n)Float(n),RealReal,DoubleDouble,Numberic(p,q)Numberic(p,q)2.2.字符型Char(n)Char(n),Varchar(n)Varchar(n),Text/MemoText/Memo,Binary(n)Binary(n),VarBinary(n)VarBinary(n)3.3.日期、时间型DateDate,TimeTime,DateTimeDateTime4.4.逻辑型BooleanBoolean5.5.货币型SmallMoneySmallMoney,MoneyMoney6.OLE6.OLE型GeneralGeneral6第4章关系数据库标准语言SQL 4.2 数据定义4.2.2 4.2.2 创建表1.1.语句格式:Create Table Create Table (1,2,n)n);2.2.语句功能:创建一个以 为名的、以指定的列属性定义的表结构。3.3.语句示例:Create Table SC1(学号 Char(10),课程号 Char(2),成绩 Integer)7第4章关系数据库标准语言SQL 4.2 数据定义4.2.3 4.2.3 修改表结构1.1.语句格式:Alter Table Alter Table Add Add ,DropConstraintDropConstraint|C0lumn|C0lumn,Alter Alter ,;2.2.语句功能:修改以 为名的表结构。例:Alter Table 交易 Add 备注 Alter Table 交易 Drop 备注 Alter Table 员工 Alter 照片 Integer8第4章关系数据库标准语言SQL 4.2 数据定义4.2.4 4.2.4 删除表1.1.语句格式:Drop Table Drop Table 2.2.语句功能:删除以 为名的表。例:Drop Table SC9第4章关系数据库标准语言SQL 4.2 数据定义4.2.5 4.2.5 建立索引1.1.语句格式:Create Unique Clustered Index Create Unique Clustered Index ON ON (ASCDESC1 ASCDESC,ASCDESC,)2 ASCDESC,)2.2.语句功能:为以 为名的表创建索引。例:Create Index ABC ON SC1(学号 ASC)10第4章关系数据库标准语言SQL 4.2 数据定义4.2.6 4.2.6 删除索引1.1.语句格式:Drop Index Drop Index ,2.2.语句功能:删除 指定的索引。例:Drop Index ABC11第4章关系数据库标准语言SQL 4.3 数据更新4.3.1 4.3.1 插入数据1.1.语句格式:Insert IntoInsert Into (1,2,)Values(Values(,)2,)2.2.语句功能:将一个新记录(一行数据)插入指定的表中。3.3.语句示例:INSERT INTO STUD(学号,姓名,性别,班级名,系别代号,地址,出生日期,是否团员)VALUES (“011110”,“李建国”,“男”,“计0121”,01,湖北武汉,1998/12/02,.T.)12第4章关系数据库标准语言SQL 4.3 数据更新4.3.2 4.3.2 更新数据1.1.语句格式:Update Update Set Set =,=,Where Where 2.2.语句功能:更新以 为名的表中数据。3.3.语句示例:UPDATE SC SET 成绩=成绩+5 WHERE 课程号=0213第4章关系数据库标准语言SQL 4.3 数据更新4.3.3 4.3.3 删除数据1.1.语句格式:Delete From Delete From Where Where 2.2.语句功能:删除以 为名的表中满足 的数据。3.3.语句示例:DELETE FROM STUD WHERE 性别=“男”14第4章 关系数据库标准语言SQL 4.4 数据查询4.4.1 Select4.4.1 Select语句1.1.语句格式:Select All|Distinct Select All|Distinct|,From From ,Where Where Group By Group By Having Having Order By Order By Asc Desc2 Asc Desc2.2.语句功能:从指定的基本表或视图中,创建一个由指定范围内、满足条件、按某字段分组、按某字段排序的指定字段组成的新记录集。153 3.参数说明(1)(1)SELECTSELECT 子句:指定查询输出的结果。ALLALL:表示查询结果中包括所有满足查询条件的记录,也包括值重复的记录。默认为ALLALL。DISTINCTDISTINCT:表示在查询结果中内容完全相同的记录只能出现一次。TOPTOP PERCENTPERCENT:限制查询结果中包括的记录条数为当前 条或占记录总数的百分比为 。TOPTOP参数必须与ORDER BY ORDER BY 子句联用。ASAS:指定查询结果中列的标题名称。4.4 数据查询16(2)(2)FROMFROM子句:指定查询数据所在的表以及在联接条件中涉及的表。AS AS:表或查询表示要操作的表或查询名称,即数据源。ASAS 表示同时为表指定一个别名。(3)(3)JOINJOIN子句:指定多表之间的联接方式。INNER|LEFTOUTER|RIGHTOUTER JOININNER|LEFTOUTER|RIGHTOUTER JOIN:表示内部|左(外部)|右(外部)联接。其中的OUTEROUTER关键字为可选项,用来强调创建的是一个外部联接查询。ONON子句:与JOINJOIN子句连用,指定多表之间的关联条件为:。4.4 数据查询17(4)(4)WHEREWHERE子句:指定多表之间的联接条件为:,查询条件为:,多个条件之间用ANDAND或OROR联接,分别表示多个条件之间的“与”和“或”关系。(5)(5)GROUP BYGROUP BY子句:指定对查询结果分组的依据。:指定分组所依据的字段。HAVINGHAVING子句:与GROUP BYGROUP BY子句联用,指定对分组结果进行筛选的条件为:。(6)(6)ORDER BYORDER BY子句:指定对查询结果排序所依据的列。:指定对查询结果排序所依据的列。ASCASC指定查询结果以升序排列,DESCDESC指定查询结果以降序排列。4.4 数据查询18第4章关系数据库标准语言SQL 4.4 数据查询4.4.2 4.4.2 简单查询1.1.检索表中所有的行和列例:SELECT *FROM 学生2.2.检索表中指定的列例:SELECT 学号,姓名,出生日期 FROM 学生3.3.检索表中指定的列和指定的行例:SELECT 学号,姓名,性别,出生日期 FROM 学生 WHERE 性别=“男”Order by 姓名 DESC 4.4.检索表中指定的列和产生新列 例:SELECT 员工编号,姓名,时间,应发工资,扣款,应发工资-扣款 As 实发工资 FROM 工资 19第4章关系数据库标准语言SQL 4.4 数据查询4.4.2 4.4.2 简单查询 5.5.检索表中满足指定条件的行 例:SELECT 员工编号,姓名,时间,应发工资 FROM 工资 WHERE 应发工资 BETWEEN 3000 AND 50006.6.检索表中分组统计结果 例:SELECT COUNT(学号)As 人数,性别 FROM 学生 GROUP BY 性别7.7.检索表中排序结果 例:SELECT 学号,姓名,性别,出生日期 FROM 学生 Order by 姓名 ASC 20AccessAccess中提供的SQLSQL聚合函数如表所示(*)SQL聚合函数函数名 功 能 参数实 例COUNT()COUNT()统计记录个数一般为*COUNT(*)COUNT(*)AVG()AVG()求一列数据(必须是数据型)的平均值字段名AVG(AVG(分数)SUM()SUM()求一列数据(必须是数据型)的总和字段名SUM(SUM(学分)MIN()MIN()求一列值中最小值字段名MIN(MIN(姓名)MAX()MAX()求一列值中最大值字段名MAX(MAX(婚否)21查询举例:例 查询“学生”表中所有学生的“学号”、“姓名”和“性别”。SELECT SELECT 学号,姓名,性别 FROM FROM学生例 从“授课”表中查询所有授课教师的教师编号。SELECT DISTINCT SELECT DISTINCT 教师编号 FROM FROM 授课例 查询“学生”表中所有学生的姓名、性别和年龄。SELECT SELECT 姓名,性别,YEAR(DATE()-YEAR(YEAR(DATE()-YEAR(出生日期)AS)AS 年龄 FROM FROM 学生 4.4 数据查询22例 查询“学生”表中所有学生党员的学号、姓名和所在班级。SELECT SELECT 学号,姓名,班级编号 FROM FROM 学生 WHERE WHERE 政治面貌=中共党员 例 查询“学生”表中班级编号为“200602”“200602”,并于19881988年出生的学生的学号、姓名。SELECT SELECT 学号,姓名 FROM FROM 学生 WHERE WHERE 班级编号=200602 AND=200602 AND YEARYEAR(出生日期)=1988)=19884.4 数据查询23例 查询“学生”表中出生于19871987年2 2月2 2日和19861986年9 9月1 1日的学生的学号、姓名与出生日期。SELECT SELECT 学号,姓名,出生日期 FROM FROM 学生 WHERE WHERE 出生日期 In(#1987-2-2#,#1986-9-1#)In(#1987-2-2#,#1986-9-1#)例 查询“成绩”表中成绩在80-8580-85之间的记录。SELECT*SELECT*FROM FROM 成绩 WHERE WHERE 分数 BETWEENBETWEEN 80 80 ANDAND 85 854.4 数据查询24例 查询“学生”表中所有姓名中包含“国”字的学生学号、姓名与班级编号。SELECT SELECT 学号,姓名,班级编号 FROM FROM 学生 WHERE WHERE 姓名 LIKE*LIKE*国*“*“例 查询“成绩”表中成绩排在前5 5名的记录。SELECT TOP 5*FROM SELECT TOP 5*FROM 成绩 ORDER BY ORDER BY 分数 DESC DESC4.4 数据查询25例 统计各班的学生人数。SELECT SELECT 班级编号,COUNT(*)AS,COUNT(*)AS 学生总数 FROM FROM 学生 GROUP BY GROUP BY 班级编号26例 统计各职称的教师人数。结果按人数降序排列。分析:解题思路基本同上。对“教师”表按“职称”分组,用COUNT(*)COUNT(*)函数统计组内记录数;增加排序子句,在排序子句中可以用编号代替字段名称。SELECT SELECT 职称,COUNT(*)AS,COUNT(*)AS 总人数 FROM FROM 教师 GROUP BY GROUP BY 职称 ORDER BY 2 ORDER BY 2 27例 统计教师人数在2 2人以上(含2 2人)的职称与该职称的总人数,并按职称排序。分析:解题思路基本同上。增加了对分组后数据的筛选,使用HAVINGHAVING短语,排序子句放在整个GROUP GROUP BYHAVING BYHAVING 子句之后。SELECT SELECT 职称,COUNT(*)AS,COUNT(*)AS 总人数 FROM FROM 教师 GROUP BY GROUP BY 职称 HAVING COUNT(*)=2 HAVING COUNT(*)=2 ORDER BY ORDER BY 职称28例 统计授课门数在2 2门以上(含2 2门)的教师编号及授课门数,并按总门数排序。分析:解题思路同上。SELECT SELECT 教师编号,COUNT(*)AS,COUNT(*)AS 总门数 FROM FROM 授课 GROUP BY GROUP BY 教师编号 HAVING COUNT(*)=2 HAVING COUNT(*)=2 ORDER BY 2 ORDER BY 2 或ORDER BY COUNTORDER BY COUNT(*)29例 查询选课门数在门以上(含3 3门)的学生学号及平均成绩。分析:这是一个较为简单的分组查询,目标字段是“学号”和由avg(avg(分数)求得的“平均成绩”,分组依据是“学号”,对分组后数据进行筛选,条件是COUNT(*)=3COUNT(*)=3。SELECT SELECT 学号,avg(,avg(分数)AS)AS 平均成绩FROM FROM 成绩GROUP BY GROUP BY 学号HAVING COUNT(*)=3HAVING COUNT(*)=330例 查询选课门数在门以上(含3 3门),每门课程的成绩都不低于7575分的学生学号及平均成绩。SELECT SELECT 学号avg(avg(分数)AS)AS 平均成绩 FROM FROM 成绩 WHERE WHERE 分数=75=75 GROUP BY GROUP BY 学号图6-72 6-72 例6-396-39的查询结果 HAVING COUNT(*)=3 HAVING COUNT(*)=331第4章关系数据库标准语言SQL 4.4 数据查询4.4.3 4.4.3 连接查询 把多个表的信息集中在一起,就要用到“连接”操作,SQLSQL的连接操作是通过相关联表间行的匹配而产生的结果。创建连接查询,要在FromFrom子句中列出多个表名,各表名之间用“逗号”隔开,特别地,也可以用WhereWhere子句给定表的连接条件。1.1.两表连接例:SELECT 学号,姓名,班级名称,专业 FROM 学生,班级 WHERE 学生.班级编号=班级.班级编号;2.2.多表连接 例:SELECT SELECT 学院名称,系名称,班级名称,学号,姓名 FROM 学院,系,班级,学生 WHERE 学院.学院编号=系.学院编号 AND 系.系编号=班级.系编号 AND 班级.班级编号=学生.班级编号;32第4章关系数据库标准语言SQL 4.4 数据查询4.4.4 4.4.4 嵌套查询 使用SQLSQL语言中,一个Select From Where Select From Where 语句产生一个新的数据集,一个查询语句完全嵌套到另一个查询语句中的WhereWhere或HavingHaving的“条件”短语中,这种查询称为嵌套查询。嵌套查询的求解方法是“由里到外”进行的,从最内层的子查询做起,依次由里到外完成计算。即每个子查询在其上一级查询未处理之前已完成计算,其结果用于建立父查询的查询条件。例 SELECT 学号,姓名,性别,出生年月,籍贯 FROM 学生 WHERE 学生.班级编号 IN (SELECT 班级编号 FROM 班级 WHERE 专业=“软件工程”);33第4章关系数据库标准语言SQL 4.4 数据查询4.4.5 4.4.5 集合查询 使用SQLSQL语言中,可要把多个SelectSelect产生的数据集进行合并,其结果会更细的反映数据信息。要完成这些操作可利用集合查询。并(UnionUnion)操作就是将多个具有相同数据列,且列属性相同的多个关系进行合并,形成一个新的数据集。例:select *from select *from 部门 Union Union select*from select*from 部门1 134SQL语句编辑方法(*)操作步骤如下:(1 1)打开数据库。(2 2)确定“查询”为操作对象,按“新建”按钮,进入“新建”窗口。(3 3)再选择“设计视图”,进入“选择查询”窗口,并弹出“显示表”窗口。(4 4)直接关闭“显示表”窗口。(5 5)打开“视图”菜单,选择“SQL“SQL视图”选项,进入“SQL“SQL语言”窗口。35SQLSQL语句的执行 SQL SQL语句输入完毕后,选择“查询”菜单中的“运行”命令,或单击工具栏的“运行”按钮,即可执行SQLSQL语句。SQLSQL语句的保存 根据需要,可以将SQLSQL语句保存为一个查询对象,可以在关闭“数据定义查询”窗口时对SQLSQL语句进行保存。SQLSQL语句的修改 对于用SQLSQL语句建立的查询,可以在选定该查询的状态下使用“设计”按钮,再次打开“SQL“SQL视图”窗口,然后对其进行修改,并保存。36SQLSQL语句的书写规则(*)(*)在“SQL“SQL语言”窗口中一次只能输入一条SQLSQL语句;动词必需书写完整,如“SELECTSELECT”,不能写成“SELESELE”;当SQLSQL语句较长,需分行书写时,用ENTER”ENTER”键直接换行即可,无需加任何分行符;书写SQLSQL语句要注意格式,应当尽量做到一个子句一行。37提问与回答用思想传递正能量38结束语CONCLUSION感谢参与本课程,也感激大家对我们工作的支持与积极的参与。课程后会发放课程满意度评估表,如果对我们课程或者工作有什么建议和意见,也请写在上边,来自于您的声音是对我们最大的鼓励和帮助,大家在填写评估表的同时,也预祝各位步步高升,真心期待着再次相会!39谢谢聆听THANKYOUFORLISTENING演讲者:XX时间:202X.XX.XX40
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!