SQL查询的艺术-第五章:简单的查询 + 第六章:复杂的条件查询

一.Select语句:

1.select语句基本结构:

select [distinct] select_items from table_name
	[where search_condition]
	[group by group_rules]
	[having search_condition] ---->对group by产生的结构进行筛选
	[order by oder_expression [asc|desc]]

2.select语句执行顺序:

1.DBMS首先执行from子句,根据from子句中一个或者多个表创建工作表。
	注:工作表--->如果from子句中含有两个或者多个表,DBMS会对表进行交叉连接,交叉连接后的表成为工作表

2.如果含有where语句,则会根据where语句中的搜索条件作用于1中的工作表。DBMS会保留满足搜索条件的行,并删除不满足条件的行。

3.如果含有group by语句,DBMS会将2中的结果的行分成多个组,每个组所有行的group_rules字段具有相同的值(也就是会将含有相同group_rules字段的行合并)

4.如果含有having子句,会将having中的条件作用于3中生成的结果,类似where

5.DBMS将select子句作用于4中的结果(也就是筛选需要的字段)

6.order by语句对5中的结果进行排序

二.where中的复杂条件查询:

1.in运算符

where 字段 in (select语句、值的集合。。。)

等同于

where 字段 = 值1
or 字段 = 值2
...

注:使用in的好处:运行效率比or高,而且在in后面的括号内可以使用子查询
	

2.not运算符

not运算符主要是用于对布尔值进行取反

not boolean_expression

例子:where not name = "123"

3.like使用的一些通配符

1.%通配符:表示任意多个字符的匹配

2._通配符:表示任意一个字符的匹配

3.[]通配符:用来标识[]中出现的任意一个字符 
	例子:[%,#]:标识%或者#都满足此规则

4.escape将通配字符转义

like 'm%%' escape 'm':搜索以m%开头的任意值

escape作用:表示escape标识的字符后面的一个字符是转义字符,不是通配符
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值