MYSQL基础七--单表数据查询

1.查询所有字段

SELECT *FROM tab_red;

2.查询指定字段

SELECT dname FROM tab_red;

3.避免重复数据查询

SELECT DISTINCT dname FROM tab_red;

添加关键字DISTINCT后,dname序列中将避免重复的内容。出现的值为唯一的。

4.对查询的内容进行四则运算

SELECT id*12 FROM tab_red;

将查询到id的内容乘以12。

5.条件数据查询

(1).带关系运算符和逻辑运算符的条件数据查询;

SELECT dname FROM tab_red WHERE job = 'work'&& sal > 800;

(2).带BETWEEN AND关键字的条件数据查询;

SELECT dname FROM tab_red WHERE sal BETWEEN 1000 AND 2000;

SELECT dname FROM tab_red WHERE sal NOT BETWEEN 1000 AND 2000;

(3).带IS NULL关键字的条件数据查询

1).SELECT dname FROM tab_red WHERE sal IS NULL;表示该值为空时

2).SELECT dname FROM tab_red WHERE sal NOT IS NULL;表示该值不为空

3).SELECT dname FROM tab_red WHERE NOT sal IS NULL;表示非sal为空

2)和3)意义一样。

(4).带IN关键字的条件数据查询

范围查询条件,在IN(50,203,502,320)这个范围内查询。

SELECT dname FROM tab_red WHERE sal IN (50,203,502,320);

在使用关键字IN的时候,查询的集合中如果存在NULL,则不会影响查询结果。如果使用关键字NOT IN,查询的集合中如果存在NULL,则不会有任何的查询结果。

(5).带LIKE关键字的条件数据查询

 如果查询的名字中包含文本"cj"的所有名字,此时就需要通过通配符来实现模糊查询。

“_”通配符,该通配符能匹配单个字符;

“%”通配符,该通配符值可以匹配任意长度的字符串,既可以是0个字符串,1个字符串,也可以是多个字符串。

SELECT dname FROM tab_red WHERE dname LIKE 'A%';包含A的任意长度的字符串

SELECT dname FROM tab_red WHERE dname LIKE '_A%';第二个字母为A的任意长度字符串;

通过NOT LIKE来查找不包括'A'字母的字符串

SELECT dname FROM tab_red WHERE NOT dname LIKE '%A%';

使用%A%是因为A%为首字母是A的字符串,但是在前面加%和后面加%表示字符串任意位置中包含A的字符串。

6.排序数据查询

通过关键字ORDER BY来设置查询结果的顺序

(1).按照单字段排序

1).升序排序

SELECT *FROM tab_red ORDER BY sal ASC;

由于ORDER BY 默认为升序,因此也可以改为

SELECT *FROM tab_red ORDER BY sal;

2).降序排序

SELECT *FROM tab_red ORDER BY sal DESC;

(2).按照多字段排序

SELECT *FROM tab_red ORDER BY sal,id DESC;

7.限制数据查询数量

通过关键字LIMIT来限制查询结果的数量

(1).不指定初始位置方式

如果不指定初始位置,默认值为0,表示从第一条记录开始显示

SELECT *FROM tab_red WHERE sal IS NULL LIMIT 2;

表示最多显示两条数据

(2).指定初始位置方式

LIMIT 关键字经常备用在分页系统中,对于第一页数据记录,可以通过不指定初始位置来实现,但是对于第二页或者其他页必须指定初始位置,否则无法实现分页。

LIMIT关键字海经常与ORDER BY关键字一起使用。

SELECT *FROM tab_red WHERE sal IS NULL ORDER BY sal LIMIT 5,10;

以上语句表示,从第五条语句开始,最多显示十条数据。

8.统计函数

COUNT():实现记录数据的条数

SELECT COUNT(dname) FROM tab_red;

AVG():实现计算字段值得总和

SUM():实现字段值得总和

MAX():实现字段值的最大值

MIN():实现字段值的最小值

9.分组查询

(1).简单分组查询

通过关键字GROUP BY来实现分组查询

SELECT * FROM tab_red GROUP BY dname;

(2).实现统计功能分组查询

通过关键字GROUP_CONCAT()字段来显示每个分组中所指定的字段值。

SELECT GROUP_CONCAT(dname) FROM tab_red GROUP BY mygroup;

只显示指定的dname字段的分组内容;

(3).多个字段的分组查询

SELECT * FROM tab_red GROUP BY mygroup,id;

通过 mygroup,id进行分组。

10.分组查询的条件限定

当在通过GROUP BY关键字进行分组查询的时候,不能使用WHERE关键字进行条件限定。这时就需要用到关键字HAVING关键字进行条件限定

SELECT id,GROUP_CONCAT(dname) FROM tab_red GROUP BY mygroup HAVING AVG(sal) > 2000;

 

posted @ 2017-03-20 16:58  墨VS雪  阅读(206)  评论(0编辑  收藏  举报