SQL的数据查询

SELECT [ALL     |   DISTINCT    ] <目标列表达式> FROM  <表名后视图名>或<子查询>
WHERE <条件表达式> GROUP BY <列名1> [HAVING<条件表达式>]
ORDER BY <列名> [ASC|DESC]。

上面的查询语句的意思:
①根据WHERE子句的条件表达式从FROM子句指定的基本表、视图或派生表中找出满足条件的元组,
②再按SELECT子句的目标列表达式选出元组中的属性值形成的结果表。
③如果有GROUP BY子句,则按相应的列名1分组,列名1相同分为一组,通常在每组中作用聚集函数(聚集函数类似于AVG()求平均数等函数)。
④如果GROPU BY子句带有HAVING短语,则只有满足条件的组才能被输出。 
⑤如果有ORDER BY子句,则还需要按ORDER BY子句后的列名进行排序(升序或者降序。)



①select 子句中的目标列表达式不仅可以是属性列,还可以是目标表达式,还可以是字符串常量和函数。
②其中的DISTINCT是用来消除重复行的。
下面给出常用的查询条件:(查询条件一般是位于where子句中)。
比较:=,>,<等。
确定范围:BETWEEN AND ,NOT BETWEEN AND
确定集合:IN,NOT IN
字符匹配:LIKE,NOT LIKE。
空值:IS NULL ,IS NOT NULL。
多重条件(逻辑运算):AND ,OR,NOT

聚集函数:
① COUNT(*)         统计元组个数。
②SUM(DISTINCT  |  ALL  列名) 统计一列中值的个数。
③AVG   (DISTINCT  |  ALL  列名 )统计一列中值的平均数。
④MAX    DISTINCT  |  ALL  列名  求一列中的最大值。
⑤MIN DISTINCT  |  ALL  列名  求一列中的最小值。
!!!!!注意!!!!!!!!!!!!!
WHERE子句中是不能用聚集函数作为条件表达式。
聚集函数只能用于SELECT子句和GROUP BY中的HAVING子句。

GROUP BY 子句
GROUP BY子句将查询结果按某一列或多列的值分组,值相等的为一组。
如果我们分组后还要求其需要满足一定的条件才行。则可以使用HAVING短语指定筛选条件。

WHERE 子句和HAVING子短语的区别在于作用对象不同。
WHERE子句的作用对象:其作用于基本表或视图,从中选择满足条件的元组。
HAVING短语作用于组,从中选择满足条件的组。


在连接查询中,WHERE子句中用来连接两个表的条件称为连接条件或连接谓词。 


嵌套查询:
一个SELET-FROM-WHERE语句称为一个查询块。将一个查询块嵌套在另一个查询块的WHERE子句或HAVING短语的条件中的查询称为嵌套查询。



​​集合查询
SELECT语句的查询结果是元组的集合,所以多个SELECT 语句的结果可进行集合操作,集合操作主要包括并操作UNION、交操作INTERSECT和差操作EXCEPT。
注意:参加集合操作的各查询结果的列数必须相同,对应项的数据类型也必须相同。

基于派生表的查询
子查询不仅可以出现在WHERE子句中,还可以出现在FROM子句中,这时子查询生成的临时派生表成为主查询的查询对象。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值