嵌牛IT观察

数据库学习(八)

2018-07-12  本文已影响10人  大猫_23fe

顾颖17021223250

转载自https://blog.csdn.net/tc_1337/article/details/80924588

【嵌牛导读】:单表查询

【嵌牛鼻子】:查询

【嵌牛提问】:如何操作数据库进行表的查询?

【嵌牛正文】:

一、简单查询

SELECT [DISTINCT] * | {字段名1, 字段名2, 字段名3,...}

FROM表名 [WHERE 条件表达式1]

[GROUP BY字段名 [HAVING 条件表达式2]]

[ORDER BY字段名 [ASC | DESC]]

[LIMIT [OFFSET]记录数]

说明: LIMIT[OFFSET]记录数: "LIMIT" 是可选参数,用于限制查询结果的数量. LIMIT后面可以跟两个参数,

第一个参数"OFFSET"表示偏移量, 如果偏移量为0则从查询结果的第一条记录开始,偏移量为1则从查询结

果的第二条记录开始,以此类推. OFFSET为可选值, 如果不指定其默认值为0.第二个参数"记录数"表示返回

查询记录的条数.

1.1查询所有字段

SELECT字段名1, 字段名2, ...FROM 表名;

SELECT * FROM表名;

1.2查询指定字段

SELECT字段名1, 字段名2, ... FROM 表名;

二、按条件查询

2.1带关系运算符的查询

SELECT字段名1, 字段名2, ... FROM 表名 WHERE 条件表达式

关系运算符包括:

>,  >=,  =,  <, <= , !=, <>

2.2带IN关键字的查询

IN关键字用于判断某个字段的值是否在指定的集合中,如果字段的值在集合中, 则满足条件,该

字段所在记录将被查询处理.

SELECT * |字段名1, 字段名2, ... FROM 表名

WHERE字段名 [NOT] IN (元素1, 元素2, ...)

2.3使用BETWEEN AND 关键字查询

BETWEEN AND用于判断某个字段的值是否在指定的范围之内,如果字段的值在指定范围则满足条件

该字段所在的记录将被查询出来,反之则不会被查询出来.

SELECT * | {字段名1, 字段名2, ...} FROM 表名

WHERE字段名 [NOT] BETWEEN 值1, AND 值2 ;

其中,值1 和 值2 都包含在结果集之内.

2.4空值查询

SELECT * |字段名1, 字段名2, ... FROM 表名

WHERE字段名 IS [NOT] NULL;

2.5带DISTINCT 关键字的查询

SELECT DISTINCT字段名 FROM 表名;

其中, DISTINCT关键字可以作用于多个字段

SELECT DISTINCT字段名1, 字段名2, ... FROM 表名;

当DISTINCT关键字作用于多个字段时,只有这个多个字段的值都对应相同,才被认为是重复记录.

2.6带LIKE关键字的查询

SELECT * | {字段名1, 字段名2,...} FROM 表名 WHERE 字段名[NOT] LIKE ‘匹配字符串’;

“匹配字符串”是指用来匹配的字符串,其值可以是一个普通字符串,也可以是包含百分号(%)和下划线

(_)的通配符字符串。

百分号(%)通配符:匹配任意长度的字符串,包括空字符串。

下划线(_)通配符:只能匹配单个字符,如果要匹配多个字符,需要使用多个下划线通配符。

如果使用多个下划线匹配多个连续的字符,下划线之间不能有空格。

注意:如果要匹配字符串中的百分号和下划线,就需要在通配字符串中使用右斜线(“\”)对百分号

和下划线进行转义。

2.7带AND关键字的多条件查询

SELECT * | {字段名1, 字段名2,...} FROM 表名

WHERE条件表达式1 AND 条件表达式2 [... AND 条件表达式n];

2.8带OR关键字的多条件查询

只要记录满足任意一个条件就会被查询出来。

SELECT * | {字段名1, 字段名2, ...} FROM 表名 WHERE 条件表达式1 OR 条件表达式2 [...OR条件表达式n];

注意:AND的优先级高于OR,当AND和OR关键字一起使用的时候,先运算AND两边的条件表达式,

再运算OR两边的条件表达式。

三、高级查询'

3.1聚合函数

常见函数:

COUNT( )返回某列的函数   MAX() 返回某列的最大值  MIN() 返回某列的最小值

SUM()返回某列值的和    AVG() 返回某列的平均值

SELECT COUNT(*) FROM表名;

SELECT SUM(字段名) FROM 表名;

SELECT AVG(字段名) FROM  表名;

....

3.2对查询结果排序

SELECT字段名1, 字段名2, ... FROM 表名 ORDER BY 字段名1 [ASC | DESC], 字段名2 [ASC|DESC]

注意:在按照指定字段进行升序排序时,如果某记录的字段值为NULL,则这条记录会在第一条显示,

这是因为NULL值可以被认为是最小值。

3.3分组查询

SELECT字段名1, 字段名2,... FROM 表名 GROUP BY 字段名1, 字段名2,...

[HAVING条件表达式]

说明:指定的字段名1,字段名2等是进行分组的依据。

HAVING关键字指定条件表达式对分组后的内容进行过滤。

GROUP BY和聚合函数一起使用,可以统计出某个或者某些字段在一个分组中的最大值、最小值、平均值等。

注意:HAVING关键字和WHERE关键字作用相同,都用于设置条件表达式对查询结果进行过滤,两者区别在于

HAVING关键字后可以跟聚合函数,而WHERE关键字后不能。

3.4使用LIMIT限制查询结果的数量

可以指定查询结果从哪一条记录开始以及一共查询多少条信息。

SELECT字段名1, 字段名2,... FROM 表名 LIMIT [OFFSET,] 记录数

说明:参数“OFFSET”表示偏移量,如果偏移量为0,则从查询结果的第一条记录开始,偏移量为1

则从查询结果的第二条记录开始,依次类推。

参数“记录数”表示返回查询记录的条数。

四、为表和字段取别名

SELECT * FROM表名 [AS] 别名;

SELECT字段名 [AS] 别名 [, 字段名[AS] 别名...] FROM 表名;

上一篇下一篇

猜你喜欢

热点阅读