SQL语句:复杂查询

在WHERE语句中,AND和OR同时存在的时候,通常AND运算符的优先级大于OR运算符。

condition1
OR condition2
AND condition3

实际上是

condition1
OR  (condition2 AND condition3)

IN运算符允许根据一行记录中是否有一列包含在一系列的值中选择改行

IDNAMECOURSEAGESEX
1李晓明机械工程20
2李晓明计算机20
3李晓明计算机20
4李晓明生物20
SELECT NAME, COURSE, AGE, SEX
FROM  STUDENT
WHERE COURSE IN ('计算机''生物''机械工程')
ORDER BY COURSE

IN运算符相对应还有NOT IN运算符。

与IN运算符相比,OR功能是一样的。

但是选择多个条件时,IN运算符很方便,在括号内罗列,效率也比OR高。
使用IN运算符时,后面可以是另外一条SELECT语句,既是子查询。

SELECT NAME, COURSE, AGE, SEX
FROM  STUDENT
WHERE   NOT NAME = '计算机'
ORDER BY NAME

查询结果就是

IDNAMECOURSEAGESEX
1李晓明机械工程20
1李晓明生物20

使用LIKE进行模糊查询
开头使用 / 结尾匹配
% 通配符

COURSENAMECOUNT
计算机理念李晓明20
计算机理念李晓明20
怎么学好计算机李晓明20
怎么学好计算机李晓明20

要查询以 计算机开头 的课程

SELECT NAME, NAME, COUNT
FROM COURSE
WHERE COURSE LIKE '计算机%'

就会查询出第一列和第二列的数据 – 计算机理念

如果需要查询 计算机结尾, 实现方式是 LIKE ‘%计算机’

如果查询计算机开头,理念结尾,实现是 LIKE ‘计算机%理念’

”通配符只表示任意一个字符的匹配,如果是两个字符的匹配,就要写成“__

因此,计算机理念就要写成 LIKE ‘计算机_ _’

“[]”通配符满足出现在[]中的字符,字符串就满足查询条件

LIKE ‘abc[def]’ 表示 abcd, abce, abcf

查询所有以“机” 或者 “怎”为开头的课程
COURSE LIKE ‘[计怎]%’

在[]通配符 列出的字符前 加符号“^”,表示否定的意思

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值