3章mysql表连接查询_MySQL第三章——单表查询

数据查询

数据查询是数据库的核心操作,SQL提供了SELECT语句进行数据查询。

SELECT  [ALL|DISTINCT] [,]……

FROM [,……] |()[AS]

[WHERE ]

[GROUP BY [HAVING ]]

[ORDER BY [ASC|DESC]];

整个 SELECT 语句的含义是,根据 WHERE 字句的条件表达式从 FROM 字句指定的基本表、视图或派生表中找出满足条件的元组,再按 SELECT 字句中的目标列表达式选出元组中 的属性值形成结果表。         GROUP BY 字句:将结果按照的值进行分组,该属性列值相等的元组为一个组。通常会在每组中作用聚集函数,如果 GROUP BY 字句中带 HAVING 短语,则只有满足指定条件的组才予以输出;     ORDER BY 字句:结果表按的值升序或降序排列。             SELECT 语句既可以完成简单的单表查询,也可以完成复杂的连接查询和嵌套查询。

单表查询——仅涉及一个表的查询

选择表中的列——选择表中的全部列或者部分列即关系代数的投影运算。

(1)查询指定列——通过在SELECT字句的中指定要查询的属性列。

中各个列的先后顺序可以与表中的顺序不一样。

(2)查询全部列——将表中的所有属性列都选出来有两种方法,一种是在SELECT 关键字后列出所有列名;如果列的显示顺序与其在表中的顺序相同,也可以简单将指定为*。

(3)查询经过计算的值—— SELECT字句的不仅可以是表中的属性列,也可以是表达式。还可以是字符串常量、函数等。     用户可以通过指定别名来改变查询结果的列标题。

2. 选择表中的若干元祖

(1)消除取值重复的行——两个本来并不完全相同的元组 在投影到指定的某些列上后,可能会变成相同的行。可用 DISTINCT 消除它们。(在 SELECT 后面加上 DISTINCT )。如果没有指定 DISTINCT 则默认为ALL ,即保留结果表中取值重复的行。

(2)查询满足条件的元组——通过WHERE 字句来实现。

dd723c04656dc9fb15737d7e0e1e29b5.png

注意:

BETWEEN 后面跟数据小的那一个(低值/范围的下限)  AND后面跟的是数据较大的那一个(高值/范围的上限)

谓词IN可以用来查找属性值属于指定集合的元组。

谓词 LIKE 用来进行字符串的匹配——[NOT] LIKE '' [ESCAP '']——含义是查找指定的属性列值与相匹配的元组。可以是一个完整的字符,也可以是含有通配符%和_。(%:代表任意长度的字符串,字符串可以为0,例如a%b是以a开头并且以b结尾的任意长度的字符串;_:代表任意单个字符,例如a_b表示以a开头并且以b结尾的长度为3的任意字符串。),如果 LIKE 后面的匹配串中不含通配符,则可以用=符号取代 LIKE 谓词;用!=或<>(不等于)取代 NOT LIKE 谓词。

如果查询的字符串本身含有通配字符%或_,这时需要使用ESCAPE '' 短语对通配符进行转义:ESCAPE'\' 表示“\”为换码字符。这样匹配串中紧跟在“\”后面的字符“_”不再具有通配符的含义,转为普通的“_”字符。

多重条件查询——逻辑运算 AND 和 OR 可用来连接多个查询条件。AND 的优先级高于OR ,但用户可以用括号改变优先级。

3. ORDER BY 字句

用户可以用 PRDER BY 字句对查询结果按照一个或多个属性列的升序(ASC)或降序(DESC)排列,默认值是升序。对于空值,排序时显示的次序由具体的系统实现来决定。(按升序,含空值的元组最后显示;按降序,空值的元组最先显示)

4. 聚集函数——为了增强检索功能,SQL提供了许多聚集函数。

6c483e984e5739187df9a967cc8d67fe.png

c08416a50276bb558653788f156055ab.png

当聚集函数遇到空值时,出来 COUNT(*) 外,都跳过空值而只处理非空值。COUNT(*) 是对元组进行计数,某个元组的一个或部分列取空值不影响 COUNT 的统计结果。

WHERE 字句是不能用聚集函数作为条件表达式的,聚集函数只能用于 SELECT 字句和 GROUP BY 字句中的 HAVING 字句。

5. GROUP BY 字句

将查询结果按某一列或多列的值分组,值相等的位一组。对查询结果分组的目的是为了细化聚集函数的作用对象。如果未对查询结果分组,聚集函数将作用于整个查询结果,分组后聚集函数将作用于每一个组,即每一组都有一个函数值。

(WHERE 字句与 HAVING 短语的区别在于作用对象不同。WHERE 字句作用于基本表或者视图,从中选择满足条件的元组。HAVING 短语作用于组,从中选择满足条件的组)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值