您的位置:首页 > 数据库

数据库复习⑥

2016-06-18 20:02 459 查看
数据库复习⑥

2016年6月18日

18:16

Main SQL 增删改查

1.SQL 核心内容


DDL(Data Definition Language)数据定义语言



Query Language 数据查询语句



DML(Data Manipulation language)数据操纵语言



DCL(DataControl language)数据控制语言


2.Queries 查询


Single-relation queries 单表查询



Multi-relation queries 多表查询



Subqueries 子查询



Grouping and Aggregation 分组和聚集


3.Select-From-Where Statements


语句格式:



SELECT [ ALL | DISTINCT ] <目标列表达式> [ ,<目标列表达式> ]…



FROM <表名或视图名> [ ,<表名或视图名> ]…



[ WHERE <条件表达式> ]



[ GROUP BY <列名1> [ HAVING <条件表达式> ] ]



[ ORDER BY <列名2> [ASC|DESC]]



解释:(1)上面中括号中的内容为选择内容,可以有也可以没有,注意前面有一个逗号"," ;



(2)WHERE语句里面不能有集函数,同时WHERE语句可以省略;



(3)GROUP BY 语句用来进行分组,后面的HAVING 语句可以包括集函数,用来进行判断;



(4)ORDER BY语句用来进行排序,排序操作实际上是在查询结束之后进行的,默认为ASC 递增排序,也可以选择DESC为递减排序;



(5)SQL查询语句对字母大小写不敏感,因此Select 和SELECT均可以被识别,不过建议使用大写;



(6)GROUP BY语句应该在WHERE语句之后,其实GROUP BY语句应该在查询语句的最后面,由于ORDER BY语句不属于查询语句了,因此可以放在ORDER BY 之前;



(7)尽管SELECT语句放在查询语句的最前面但是其执行为最后的,也就是在GROUP BY语句之后,因此在GROUP BY语句内不能使用SELECT 语句里面的别名;



(8)SELECT 语句中的ALL 与DISTINCT对应的是:查询结果保留重复、查询结果不包括重复;



(9)SELECT 语句是用来选择属性列,不过可以使用* 操作符可以选择出表中的所有属性列。


3.Single-Relation Queries 单表查询


单表查询相对于多表查询属于最基本的查询操作。



可以在SELECT语句中选择结果表的属性列以及使用别名甚至使用集函数、由于表只有一个因此在FROM语句中只要写上表名即可、在WHERE语句中可以使用AND关键字来进行多项判断和筛选、在GROUP BY语句中可以选择某一个属性列进行分组、在ORDER BY语句进行排序选择。


举例说明:





































Range comparison:between

使用谓词: BETWEEN…AND…大于等于并且小于等于

NOT BETWEEN …AND…

Set operator: in

使用谓词 IN <值表>, NOT IN <值表>







Patterns 字符串匹配问题

使用关键字Like

% = “any string”; _ = “any character.”







4.三种逻辑值 TRUE = 1 , FALSE = 0 , UNKNOWN = 1/2

AND = MIN ; OR = MAX ; NOT(x) = 1-x

NULL 空值比较特殊,需要特别对待













5.Aggregation 集函数

SUM求和函数、AVG求平均值函数、COUNT计数函数、MIN最小值函数、MAX最大值函数、COUNT(*)元组个数













6.Grouping 分组

举例:













7.HAVING 字句







8.Multi-Relation Queries 多表查询

















































9.Subqueries 子查询


子查询返回一个结果表Subqueries that return one Tuple



通常该返回表只有一个属性列Usually, the tuple has one component



如果不止一个属性列则会产生运行时错误A run-time error occurs if there is no tuple or more than one tuple



子查询中不可以使用ORDER BY



带有IN的子查询:循环元组,当该元组的值在返回表中时输出到结果表中


带有EXISTS谓词的子查询













举例:













10.ANY and ALL Operator


















数据库复习⑦摘要: DDL、DML、Views视图

[b]数据库复习⑦友情链接:http://www.cnblogs.com/zpfbuaa/p/5596903.html[/b]

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: