SQL语言SELECT查询.ppt
《SQL的数据查询》课件

分组和聚合函数的使用
总结词
对数据进行分组并计算聚合值
详细描述
使用GROUP BY子句将数据按照一个或多个列进行分组,并使用 聚合函数(如SUM、COUNT、AVG、MAX、MIN等)计算每个
组的聚合值。
示例
SELECT department, COUNT(*) FROM employees GROUP BY department;
《SQL的数据查询》 PPT课件
contents
目录
• SQL查询基础 • 高级查询技术 • 查询优化和性能调优 • 数据库查询语言的发展趋势 • 实践案例与问题解答
01
SQL查询基础
查询语句的基本结构
查询语句的基本格式
SELECT 列名称1, 列名称2, ... FROM 表名称 WHERE 条件;
NoSQL数据库的特点
NoSQL数据库通常是非关系型的,支持灵活的数据模型和水平扩展,适用于大数据和实时应用。
与SQL的关系
虽然NoSQL数据库在某些场景下取代了传统的关系型数据库,但SQL仍然是最广泛使用的数据库查询语言。
大数据时代下的SQL挑战和机遇
挑战
随着数据量的增长,查询性能成为了一个挑战。此外,如何有效地处理和分析大数据也是一大挑战。
子查询和联接查询
01
02
03
总结词
详细描述
示例
在查询中使用子查询或联接多个表的 数据
子查询可以在主查询的WHERE子句 或HAVING子句中使用,以根据子查 询的结果过滤数据。联接查询可以使 用JOIN操作将多个表的数据联接起来 ,并选择相关列。
SELECT * FROM orders INNER JOIN customers ON orders.customer_id = customers.id WHERE = 'John';
第10讲 SELECT 查询

查询命令
2.选择表中的行
------在WHERE子句中规定查询条件
例: 列出所有教授的信息。 SELECT * FROM T WHERE Ttitle='教授'; 例:列出在“D01”系工作的所有教师的信息。 SELECT * FROM T WHERE Dnum='D01';
例:列出月工资在1800元和2400元之间的教师 信息。 SELECT * FROM T WHERE Tsalary BETWEEN 1800 AND 2400;
第十讲
SQL的数据操纵功能
SQL的DDL是用来生成、修改、删除数据库结构的, 它并不涉及数据。 数据库的数据操作由数据操纵语言DML来完成, 主要包括SELECT、INSERT、DELETE和UPDATE等4 个语句,即通过它们实现查询和更新(查、插、 删、改)。
查询的基本语句
SQL中的核心是数据库查询语句,它的一般格式是: SELECT <目标列> FROM <表或视图名> [WHERE <条件表达式>] [GROUP BY <列名> [HAVING <条件>]] [ORDER BY <列名> [ASC/DESC]];
例:计算SC表中学号为S030101的学生所选修课程的总成绩
例:计算SC表中学号为S030101的学生所选修课程的总成绩
SELECT SUM(Score) FROM SC WHERE Snum=‘S030101’
AVG 函数
语法: AVG(表达式) 说明:该函数只能对数值类型的字段进行计算。
例1:计算SC表中学号为S030101的学生所选修课程的平均分。 SELECT AVG(Score) FROM SC; 例2:计算T表中所有女教师的平均工资。
数据库SQL语言--SELECT查询操作

数据库SQL语言--SELECT查询操作1、基于‚教学管理‛数据库jxgl,试用SQL的查询语句表达下列查询。
(1)--检索年龄大于23的男学生的学号和姓名--select sno,sn from s where sex='男'and age > 23(2)--检索至少选修一门课程的女学生姓名--select sn from S,SCwhere sex='女' AND S.Sno=SC.Snogroupby S.Sn having count(*)>=1;(3)--检索王同学没有选修的课程的课程号--select cno from cwhere o notin(select cno from sc,swhere sc.sno=s.sno and sn like'王%')(4)--检索至少选修两门课程的学生学号--selectdistinct s.sno from s,scwhere sc.sno=s.snogroupby s.snohaving count(*)>=2;(5)--检索全部学生都选修的课程的课程号与课程名--select cno,cn from cwhere notexists(select*from swhere notexists(select*from scwhere s.sno=sc.sno and o=o))(6)--检索选修了所有3学分课程的学生学号和姓名--selectdistinct s.sno,s.sn from s,scwhere exists(select*from cwhere ct='3'and s.sno=sc.sno and o=o)2、基于“教学管理”数据库jxgl,试用SQL的查询语句表达下列查询。
(1)--统计有学生选修的课程门数--select count(distinct o)from sc;(2)--查询选修4号课程的学生的平均年龄--select avg(s.age)from s,scwhere s.sno=sc.sno and cno='4';(3)--查询学分为3的每门课程的学生平均成绩--select avg(sc.score)from c,sc,swhere s.sno=sc.sno and c.ct='3';(4)--统计每门课程的学生选修人数(超过3人的课程才统计)。
实验2SQL语言—SELECT查询操作

实验2SQL 语⾔—SELECT 查询操作实验2 SQL 语⾔—SELECT 查询操作实验⽬的要求掌握SQL 程序设计基本规范,熟练运⽤SQL 语⾔实现数据基本查询,包括单表查询、分组统计查询和连接查询。
掌握SQL 嵌套查询和集合查询等各种⾼级查询的设计⽅法等。
要求学⽣掌握SQL Server 查询分析器和T -SQL 语⾔的使⽤⽅法,熟练掌握和使⽤简单表的数据查询﹑数据排序和数据连接查询﹑嵌套查询等操作⽅法。
实验仪器设备学⽣每个⼀台PC 机已安装SQL Server 环境实验主要内容针对SQL Server 数据库设计各种单表查询语句、分组统计查询语句;设计单个表针对⾃⾝的连接查询,设计多个表的连接查询。
理解和掌握SQL 查询语句各个⼦句的特点和作⽤,按照SQL 程序设计规范写出具体的SQL 查询语句,并调试通过。
针对SQL Server 数据库,正确分析⽤户查询要求,设计各种嵌套查询和集合查询。
本次实验基于图书发⾏数据库系统,进⾏实验实验原理# 单表查询单表查询是指仅涉及⼀个表的查询SELECT ⼦句后⾯不仅可以是表中的属性列,还可以是表达式、字符串常量、函数:取消取值重复的⾏|保留取值重复的⾏将DISTINCT 换成ALL ,不加则默认ALL 换码、通配符 和对⼀个或多个属性列进⾏排序,⼦句| |ASC 升序,DESC 降序聚集函数(放在SELECT 后⾯)GROUP BY ⼦句:将查询结果按某⼀列或多列的值进⾏分组,值相等的为⼀组:作⽤于组,从中选择满⾜条件的组# 连接查询⼀个查询同时涉及两个及以上表的称为连接查询,属性列名前⾯加上表名,即SC.Sno 等值连接查询连接运算符为=时称为等值连接⾮等值连接查询连接运算符不是=时称为⾮等值连接⾃然连接若在等值连接中把⽬标列中重复的属性列去掉则为⾃然连接单个表的⾃⾝连接查询多表连接# 嵌套查询将⼀个查询块嵌套在另⼀个查询块的WHERE ⼦句或者HAVING 短语的条件中的查询称为嵌套查询⼦查询带有IN 谓词的⼦查询带有⽐较运算符的⼦查询带有ANY(SOME)或ALL 谓词的⼦查询带有EXIST 谓词的⼦查询# 集合查询集合操作主要包括并操作UNION 、交操作INTERSECT 和差操作EXCEPT实验记录# 检索L1从书店S1购买的图书的书号及其册数;DISTINCT SELECT DISTINCT LNO %_ESCAPEORDER BY ORDER BY [属性列名] ASC|DESC COUNT(*) --统计元组个数COUNT([DISTINCT|ALL]<列名>) --统计⼀列中值的个数SUM(DISTINCT|ALL]<列名>) --统计⼀列值的总和(必须是数值型)AVG([DISTINCT|ALL]<列名>) --统计⼀列值的平均值(必须是数值型)MAX([DISTINCT|ALL]<列名>) --统计⼀列值的最⼤值MIN([DISTINCT|ALL]<列名>) --统计⼀列值的最⼩值GROUP BY HAVING 查询选修了三门以上课程的学⽣的学号SELECT SNO FROM SC GROUP BY SNO HAVING COUNT(*)>3查询每⼀门课的间接选修课SELECT o,SECOND.Cpno FROM Course FIRST,Course SECOND WHERE FIRST.Cpno=o;查询每个学⽣的学号、姓名、选秀的课程名及成绩(涉及三个表的查询)、SELECT Student.Sno,Sname,Cname,Grade FROM Student,SC,CourseWHERE Student.Sno=SC.Sno AND o=o SELECT BNO,QTY FROM 图书发⾏# 检索馆址在“上海”的图书馆及其电话号码;SELECT LNAME,TELFROM 图书馆WHERE CITY='上海';# 检索L4收藏图书的书名;SELECT 图书.BNAMEFROM 图书,图书发⾏WHERE 图书发⾏.LNO='L4'AND 图书发⾏.BNO=图书.BNO;# 检索S3发⾏的图书书名及数量;SELECT 图书.BNAME,图书发⾏.QTYFROM 图书,图书发⾏WHERE 图书发⾏.SNO='S3'AND 图书发⾏.BNO=图书.BNO;# 检索收藏图书“数据库设计”的馆名;SELECT 图书馆.LNAMEFROM 图书馆,图书发⾏,图书WHERE 图书.BNAME='数据库设计'AND 图书.BNO=图书发⾏.BNOAND 图书馆.LNO=图书发⾏.LNO;# 检索没有购买上海新华书店出售的图书的图书馆号LNO;SELECT LNO,LNAMEFROM 图书馆WHERE LNO NOT IN (SELECT 图书发⾏.LNOFROM 图书发⾏,书店WHERE 图书发⾏.SNO=书店.SNO AND书店.SNAME='上海新华书店');思考题如何提⾼数据查询和连接速度。
《SELECT查询语句》PPT课件_OK

2021/8/30
------江阴职业技术学院计算机系------
2
数据定义语言
• 数据定义语言 (Data Definition Language, DDL) 是SQL语言集中,负责数据结构定义 与数据库对象定义的语言,由CREATE、 ALTER与DROP三个语法所组成。
2021/8/30
------江阴职业技术学院计算机系------
WHERE Age NOT BETWEEN 20 TO 22 --------------------------------------------------------------------------------------• SELECT * FROM Tb_Student
WHERE Age IN (20,21,22) ---------------------------------------------------------------------------------------
第3章-结构化查询语言ppt课件

1. 数据操纵语言
数据操纵语言(Data Manipulation Language,DML)是SQL语言中用于查询和增删修改表数据的语句,主要语句如下:
SELECT - 从数据库表中获取数据 UPDATE - 更新数据库表中的数据 DELETE - 从数据库表中删除数据 INSERT - 向数据库表中插入数据
四、SQL能做什么?
SQL 可从数据库取回数据 SQL 可在数据库中插入新的纪录 SQL 可更新数据库中的数据 SQL 可从数据库删除记录 SQL 可创建新数据库 SQL 可在数据库中创建新表 SQL 可在数据库中创建存储过程 SQL 可在数据库中创建视图 SQL 可以设置表、存储过程和视图的权限
Numeric(6,2)
否
否
工作时数
任务(ASSIGNMENT)表结构
列名
类型
键
是否非空
备注
DepartmentName
Text(35)
主键是Biblioteka 部门名称BudgetCode
Text(30)
否
是
预算编号
OfficeNumber
Text(15)
否
是
办公室编号
Phone
Text(12)
否
是
办公电话
列名
类型
PROJECT表结构
列名
类型
键
是否非空
备注
ProjectID
Int
主键,外键
是
复合键,项目编号
EmployeeNumber
Int
主键,外键
是
复合键,雇员编号
HoursWorked
Numeric(6,2)
《数据库语言SQL》课件

06 SQL综合案例分析
CHAPTER
案例一:学生信息管理系统
要点一
总结词
要点二
详细描述
简单易用、功能全面
学生信息管理系统是一个常见的数据库应用案例,主要用 于存储和管理学生信息。通过SQL语言,可以实现对学生 信息的增删改查、排序、筛选等操作,方便学校对学生信 息的管理和维护。
案例二:商品销售系统
数据控制语言(DCL)
总结词
用于控制对数据库的访问权限
详细描述
DCL(Data Control Language)包括 GRANT和REVOKE等命令,用于控制对数 据库的访问权限。GRANT命令用于授予用
户或角色对数据库对象的访问权限,而 REVOKE命令则用于撤销先前授予的权限。 通过合理地使用DCL,可以确保数据库的安
数据操纵语言(DML)
总结词
用于插入、更新和删除数据库中的数据
详细描述
DML(Data Manipulation Language) 包括INSERT、UPDATE和DELETE等命令, 用于插入、更新和删除数据库中的数据。 INSERT命令用于向表中插入新行, UPDATE命令用于修改表中的现有行,而 DELETE命令则用于删除表中的行。
《数据库语言SQL》PPT课件
目录
CONTENTS
• SQL简介 • SQL基础语法 • SQL进阶知识 • SQL应用实践 • SQL与其他数据库语言的比较 • SQL综合案例分析
01 SQL简介
CHAPTER
Sured Query Language)是一种用于管理关系数 据库的标准编程语言。
分组等高级功能来处理查询结果。
数据定义语言(DDL)
总结词
SQL(精简版)ppt课件

概要与大纲
SELECT语句的使用 表达式、条件语句与运算 SQL的子句 表的联合 子查询、内嵌SQL
2023年11月27日
2
SELECT语句的使用
数据报的形成--SELECT 和FROM SELECT <列名> FROM <表名> Select表示需要取什么 From表示从哪里取
2023年11月27日
17
SQL的子句--group by & order by
SELECT <列名> FROM <表名> WHERE <过滤条件> GROUP BY <需要分组的列> ORDER BY <需要排序的列>
2023年11月27日
18
SQL的子句--group by & order by
SELECT PAYEE, SUM(AMOUNT) FROM CHECKS GROUP BY PAYEE(正确)
SELECT PAYEE, AMOUNT FROM CHECKS GROUP BY PAYEE(错误)
为什么第一个是正确的,第二个是错误的
2023年11月27日
23
SQL的子句--group by 示例
5
SELECT语句的使用--示例
显示所有行 select amount from checks
显示不重复的行 select DISTINCT amount from checks
2023年11月27日
6
表达式、条件语句与运算
SELECT <列名> FROM <表名> WHERE <过滤条件> Select表示需要取什么 From表示从哪里取 Where表示需要满足哪些条件
2.SQL语言

幻灯片 7
SQL语言
简单SELECT语句
使用FROM子句指定表
SELECT语句使用FROM子句指定查询中包含的行和列所在的表,以下
幻灯片 17
SQL语言
基本函数_数字函数
数字函数操作数字数据,执行数学和算术运算。所有函数都有数字 参数并返回数字值。所有三角函数的操作数和值都是弧度而不是角度。 常用的数字函数有如下几种: ABS(n) 返回n的绝对值。 ACOS(n) 返回n 反余弦。若n不在-1到 1的范围之内,则返回 NULL 。n为弧度。 ASIN(n) 返回n 反正弦。若n不在-1到 1的范围之内,则返回 NULL 。n为弧度。 ATAN(n) 反正切函数,返回n的反正切值,n表示弧度
关键词后,与FROM子句一样,列名与列名之间用逗号隔开,语法如 下:
SELECT column_name_1,……,column_name_n
FROM table_name_1,……,table_name_n; 用户可以在SELECT子句中使用通配符(*)来指定所有列,值得注意 的是,在实际应用中应尽可能少的使用通配符(*),因为这样检索 所有的行效率非常低。
是当时数据库系统的工业标准( SQL-89 , SQL-92 , SQL-99)。
SQL是关系数据库的基本操作语言,是应用程序 与数据库进行交互
操作的接口。
幻灯片 3
SQL语言
SQL语言简介
SQL语言特点
SQL采用集合操作方式,对数据的处理是成组进行的,而不是一条一
《数据库查询》课件

简单查询实例
总结词
通过简单的SQL语句,从数据库中获取数据。
详细描述
简单查询实例主要展示如何使用基本的SELECT语句从数据库表中检索数据。例如,查 询一个名为"employees"的表中所有员工的姓名和工资。
复杂查询实例
总结词
涉及多个表和多个条件的查询。
详细描述
复杂查询实例演示如何使用JOIN操作连接 多个表,并根据特定条件筛选数据。例如, 查询同时满足特定工资标准和特定职位的员 工信息。
如何利用人工智能技术提高数据库查询的 智能化水平,实现自适应、自学习的查询 系统是未来的研究趋势。
THANKS
感谢您的观看
查询的分类
简单查询、复杂查询
选择查询、连接查询、子 查询、联合查询
单表查询、多表查询
根据查询方式 根据查询结果
根据查询条件
查询的执行流程
解析
对查询语句进行语法和语义分析,生成解析树。
优化
根据查询条件和数据表结构,选择最优的执行计划。
执行
按照优化后的执行计划执行查询操作,获取结果。
返回
将结果返回给用户或应用程序。
计信息不准确等。
查询性能监控
01
监控工具
介绍常用的数据库监控工具,如 SQL Server Profiler、 pgBadger等。
监控指标
02
03
性能调优
列举常见的性能监控指标,如响 应时间、查询执行时间、锁等待 等。
讨论如何根据监控结果进行性能 调优,包括调整索引、优化查询 语句等。
04
数据库查询应用实 例
联合查询实例
要点一
总结词
通过UNION操作将多个查询结果合并为一个结果集。
第5章结构化查询语言SQLppt课件全

基本查询
❖ 例1:列出“学生”表中所有同学名单
▪ SELECT * FROM 学生
❖ 例2:列出成绩表中所有学生的学号,去掉重复值。
▪ SELECT DISTINCT 学号 FROM 成绩
SELECT命令中的函数
❖ 例3、列出所有学生的学号,姓名和入学成绩, 其中入学成绩四舍五入保留整数。
▪ SELECT 学号,姓名,ROUND(入学成绩,0) AS “入学成 绩” FROM 学生
WHERE——BETWEEN
❖ WHERE子句中的BETWEEN运算符用来确定范围 。
❖ 格式:
▪ BETWEEN…AND…或NOT BETWEEN…AND ▪ 其中BETWEEN后是范围的下限(低值),AND后是范围的
上限(高值)。
❖ 例1、列出入学成绩在560分到600分之间的学生 名单和成绩。
SQL89 ▪ 1992年公布了SQL的新标准,即SQL-92。 ▪ SQL99——SQL3
SQL语言的特点
❖ SQL是一种结构一体化的语言。它包括了数据定义 、数据查询、数据操纵和数据控制等功能,可以完 成数据库活动中的全部工作。
SQL语言的组成
❖ 数据定义:CREATE、DROP(删除)、
ALTER(修改)
▪ SELECT * FROM 学生 WHERE 专业<>“计算机”
❖ 例4、统计计算机专业入学成绩在600分以上的 学生的人数。
▪ SELECT COUNT(姓名) 人数 FROM 学生 WHERE 入 学成绩>=600 AND 专业=“计算机”
WHERE——IN
❖ WHERE子句中的IN谓词用来确定查询的集合。 ❖ 例1、查询计算机专业和外语专业的学生姓名和
《SQL语言》课件

财务管理、人力资源管理、供应链管理
详细描述
在企业资源计划(ERP)系统中,SQL语言用于财务管理、人力资源管理和供应链管理 等模块。通过使用SQL语言,企业可以有效地管理财务数据、员工信息和供应链资源等
。此外,ERP系统中的报表生成和数据分析功能也依赖于SQL语言。
THANKS
感谢观看
SQL安全
• 最小权限原则:数据库账号应具 有完成其任务所需的最小权限, 避免使用高权限账号进行日常操 作。
SQL安全
要点一
存储过程
使用存储过程可以限制对数据的直接操作,减少注入攻击 的风险。
要点二
错误处理
避免显示详细的数据库错误信息给用户,以防止攻击者利 用错误信息进行攻击。
05
SQL语言应用实例
触发器类型
根据触发的事件类型,可以分为INSERT触发器、 UPDATE触发器和DELETE触发器。
触发器作用
用于实现复杂的业务逻辑,如数据完整性维 护、自动日志记录等。
04
SQL语言优化与安全
SQL查询优化
查询优化概述
VS
查询优化是提高数据库性能的关键手 段,通过合理地组织和利用数据库资 源,使查询操作更加高效。
SQL安全
SQL安全的重要性
SQL注入是一种常见的网络攻击手段,攻击 者通过在输入字段中注入恶意SQL代码,可 以绕过身份验证、篡改数据或窃取敏感信息
。
SQL安全
参数化查询
使用参数化查询可以确保输入数据被正确处理,防止攻击者 注入恶意SQL代码。
输入验证
对用户输入进行严格的验证和过滤,只接受符合预期格式的 数据。
SQL语言高级特性
事务处理
01
《数据库语言SQL》课件

CREATE语句
用于创建新表、删除或修改列。
DROP语句
用于删除表、视图、索引等数据 库对象。
总结词
用于定义或修改数据库结构
TRUNCATE语句
用于快速删除表中的所有记录, 但不删除表本身。
数据控制语言(DCL)
总结词
用于控制对数据库的访问权限
CHAPTER 06
SQL未来发展展望
新特性的引入与支持
01
JSON支持
02
更高级的窗口函数
随着大数据和NoSQL数据库的普及, 对JSON数据的支持变得越来越重要 。未来版本的SQL可能会引入对 JSON数据的直接查询和操作功能。
现有的窗口函数(如 ROW_NUMBER(), LAG(), LEAD()等 )已经非常强大,但未来版本可能会 引入更多功能,以支持更复杂的分析 查询。
03
多维数据分析
多维数据分析(OLAP)是数据库分 析的一个重要方向。未来版本的SQL 可能会引入对多维数据集的更直接支 持,如星型模型和雪花型模型。
数据库技术的发展趋势
云数据库
随着云计算的普及,越来越多的企业开始将数据库部署在云端。 未来版本的SQL可能会更好地支持云数据库的部署和管理。
实时分析
VS
函数
函数与存储过程类似,也是一组SQL语句 的集合。但函数必须返回一个值,通常用 于计算并返回单一数据值。
触发器
• 触发器是一种特殊的存储过程, 它会在数据库表上执行特定操作 (如INSERT、UPDATE或 DELETE)时自动执行。触发器可 以用于实现复杂的业务规则和数 据完整性约束。
视图
通过SQL查询语言分析用户属性 和行为特征,制定精准的广告投 放策略。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
集合操作 一次操作(查询、插入、删除、修改等)可以是多个数据 行。
SQL特点
一种语法结构 两种使用方式
自含式语言,可直接联机使用。 嵌入式语言,SQL语句能够嵌入到高级语言(例如:VC、 VB、Delphi、Java\FORTRAN)程序中使用。
确定集合 IN,NOT IN
字符匹配 LIKE,NOT LIKE
空 值 IS NULL,IS NOT NULL
多重条件 ,OR
选择行(元组)
比较大小
例7 查询计算机系全体学生的名单。
字符串比较与字典顺序一致。 按内部编码(ASCII / Unicode)的大小排序。
例8 查询所有年龄在20岁以下的学生姓名及其年龄。
结构简单 语言简捷 易学易用
SQL功能 数据查询DQ 数据定义DD 数据操纵DM 数据控制DC
动词 SELECT CREATE、DROP、ALTER INSERT、UPDATE、DELETE GRANT,REVOKE
SQL演示与练习环境
Microsoft SQL Server 2000/2005
选择行(元组)
确定范围
谓词BETWEEN...AND...可以指定一定范围。 例10 查询年龄在20至23岁之间的学生的姓名、所在系和年龄。
练习: 查询不在20至23岁之间的学生的姓名、所在系和年龄。
选择行(元组)
指定集合 谓词IN用来查找一个值(元素)是否属于(∈)指定集合。
例12 查询信息系(IS)和计算机科学系(CS)的学生的姓名和性别。
案例—学生选课
学生表: Student(Sno, Sname, Ssex, Sage, Sdept)
学号、姓名、性别、年龄、所在系;PK(Sno)。
课程表: Course(Cno, Cname, Cpno, Ccredit)
课程号、课程名、先修课课程号、学分;PK(Cno)。
选课表 / 成绩表: SC( Sno, Cno, Grade)
企业管理器; 查询分析器; 学生成绩数据库; SQL脚本文件:CreateTables_学生成绩.sql。
基本语法
查询语句 – SELECT格式
格式
SELECT <列表达式> [,<列表达式>...] FROM <表名> [,<表名>...] [WHERE <条件表达式>] [GROUP BY <列名>[HAVING <条件表达式>]] [ORDER BY <列名2> [ASC | DESC]];
SQL语言标准 SQL-89,SQL-92,SQL99(亦称SQL3)。
SQL特点
综合统一 SQL语言集数据定义语言DDL、数据操纵语言DML、数据 控制语言DCL的功能于一体,语言风格统一,可以独立完 成数据库生命周期中的全部活动,包括定义关系模式、录 入数据以及数据库建立、查询、更新、维护、数据库重构、 数据库安全性控制等一系列操作要求。
GETDATE():得到系统的当前日期; YEAR():得到指定日期的年号。 计算列 一般要用AS指定别名。
查询列
计算列 / 表达式列
例5 查询全体学生的姓名、出生年份和所在系,要求 用小写字母显示所在系。
LOWER():得到指定字符串为小写形式。 第二列‘出生年份’是一个字符串常量。
学号、课程号、分数;PK(Sno,Cno)。
案例—学生选课
单表查询
查询列 条件与选择行
集函数
查询列
指定列
例1 查询所有学生的学号和姓名。 Select SNO, SNAME from STUDENT;
练习:查询学生的学号、姓名、性别、所在系。
查询列
改变结果列名 (别名) --AS
Select SNO as 学号, SNAME as 姓名, SDEPT as 所在系 from STUDENT;
不会改变数据表的列名;
查询列
查询所有列 (*)
例3 查询所有学生信息。 Select * from STUDENT;
* 代表Student数据表的所有列名;
查询列
计算列 / 表达式列
Select中的列可以是表达式,如:常量、属性列、函数、 算术表达式等。 例4 查询全体学生的姓名及其出生年份。
说明
FROM子句:要查询的表 WHERE子句:找出FROM表中满足条件的行 SELECT子句:查询结果中要显示的列 GROUP BY子句:分组查询(统计) HAVING子句: 找出分组查询结果中满足条件的行 ORDER BY子句:对查询结果进行排序,升序ASC或降序DESC < >: 格式说明符号,表示其内容由自己组织 [ ]: 格式说明符号,表示可选项
SQL语言 Structured Query Language
梁少华 长江大学计算机学院
2011年6月
目录
SQL简介 基本语法 单表查询 分组查询 多表连接查询 嵌套查询 集合查询 MS SQL常用函数
SQL语言简介
SQL概述
SQL语言是关系数据库的标准语言。
它包括数据查询、数据操纵DML、数据定 义DDL和数据控制DCL四个方面,是一个 通用的、功能极强的关系数据库语言。
选择行(元组)
按条件选择行
通过WHERE子句指定的条件来选择行,选出的 每一行必须满足WHERE条件。
条件表达式中的运算符/谓词,如下表:
查询条件
谓
词
比 较 >=,>,<,<=,!=,<>,!>,!<; NOT + 上述比较运算符
确定范围 BETWEEN AND,NOT BETWEEN AND
练习: 查询除信息系和计算机科学系以外的学生的姓名和性别。
选择行(元组)
字符匹配 / 模糊查询
查询列
去掉重复行
例6 查询选修了课程的学生学号。
使用DISTINCT短语,可以让相同的元组只显示一个。
查询列
练习
(1) 查询学生姓名、性别和所在系。 (2) 查询学生选课情况及成绩,并将成绩提高10%。 (3) 查询已选课的课程号,去掉重复行。
企业管理器的查询工具
选中一张表,点击“操作|打开表|查询”菜单。 选列操作、改变列顺序、别名、表达式列输入。 选表/换表操作 去重复行。