期末自主复习 之 简单数据查询(二)

单表有条件查询

        单表有条件查询要用到查询的五个子句, 语法格式如下:

SELECT [ALLDISTINCT]表达式列表

FROM <基本表名>

[WHERE <查询条件>]

[ORDER BY[ASC|DESC]]

[LIMIT [起始记录,]显示的行数]

80c086b826c9440eb81c7fb8ec7629b1.jpeg

1.关系运算符

        又称为比较运算符,语法格式如下:

WHERE 表达式1 关系运算符 表达式2

    


2.范围运算符

        在WHERE子句中可以使用BETWEEN...AND查询在某个范围内的数据,还可以在前面加NOT关键字,表示查找不在某个范围内的数据,语法格式如下:

WHERE 表达式 [NOT]BETWEEN 初始值 AND 终止值

等价于

WHERE 表达式 [NOT](表达式>=初始值 AND 表达式<=终止值)

3.列表运算符

        在WHERE子句中可以使用IN关键字指定一个值表,在值表中列出所有可能的值,当要判断的表达式与值表中的任意值匹配时,结果返回TRUE,否则返回FALSE。 可以在IN前面加NOT关键字,表示当要判断的表达式与值表中的任意值匹配时,结果返回TRUE,否则返回FALSE。语法格式如下:

WHERE 表达式 [NOT] IN(值1,值2,···,值n)


4.模糊匹配运算符


        在WHERE子句中,使用运算符LIKENOT LIEK可以对字符串进行模糊查找。语法格式如下:

WHERE  字段名 [NOT]LIKE '字符串' [ESCAPE '转义字段']

       

 '字符串'表示要进行比较的字符串 

*各通配符及其含义

0fb7021ea40b42c1999158b984d49e00.jpeg

      

        ESCAPE '转义字段'的作用是当用户要查询的字符串本身含有通配符时,可以使用该选项进行通配符进行转义。

5.空值判断

 判断某个字段是否为空值时,语法格式如下:

WHERE 字段名 IS [NOT]NULL

6.逻辑运算符

逻辑运算符可以将多个查询条件连接起来组成更复杂的查询条件。语法格式如下:

WHERE NOT 逻辑表达式 | 逻辑表达式1 {AND|OR} 逻辑表达式2

:逻辑运算符的运算对象是逻辑表达式。 


例子

 提供以下题目中所需的两张数据表:①学生基本信息表 stuinfo、②学生选课成绩表 stumarks

9a760dbc755f418ab2f46d9d7ca3fae6.jpeg

a0d354823a2347babceb231f2b7e5ac8.jpeg

1.查询成绩在80~90分之间的所有选课记录

代码如下:

SELECT *
FROM stumarks
WHERE stuscore BETWEEN 80 AND 90;

其中 WHERE 表达式等价于 “stuscore >= 80 AND stuscore <= 90

2.查询学号为“S001” “S003” “S005”的学生的基本信息

代码及结果(结果含第一题)如下:

SELECT *
FROM stuinfo
WHERE stuno IN('S001','S003','S005');

c31dab7bcdbc46c99e2e08d3751c202d.png

3.查询所有姓“张”的学生的基本信息

注:题中 姓“张” ,“张”在最前面

代码及结果如下:

SELECT *
FROM stuinfo
WHERE stuname LIKE'张%';

cd516cbb2dd44ceb92ebb009e9e95787.png

4.查询姓名中包含“东”字的所有学生的学号及姓名

 注:题中 包含“东”字 ,表示“东”字前后都可以有别的字

代码及结果如下:

SELECT stuno,stuname
FROM stuinfo
WHERE stuname LIKE'%东%';

0a892c4d34bc477db9a2dd76c8b54039.png

5.查询成绩为空值的选课记录,将结果按学号升序排序

分析:用IS NULL进行判断,用ORDER BY对结果进行排序

代码及结果如下:

SELECT *
FROM stumarks
WHERE stuscore IS NULL
ORDER BY stuno;

2e6d9c47aa5143de8695bdefbb48a19f.png

6.查询学号为“S001”和“S003”的学生选修课程号为“0002”的课程的选课记录

 注:题目中 “S001”和“S003” 容易直接翻译为代码中的“AND”

代码及结果如下:

SELECT *
FROM stumarks
WHERE (stuno IN('S001','S003')AND(cno='0002'));

11d2a4a4e2f647879c6813b30ffdd090.png


~over~

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值