Mysql学习(三)

来源:互联网 发布:qq邮箱stmp服务器端口 编辑:程序博客网 时间:2024/06/05 16:14

Mysql学习(三)

1.查询所有字段

1.SELECT 字段1,字段2,字段3.....FROM 表名; //这样查询可以自己调整字段排列的顺序,可以规定查询的字段。

mysql> SELECT id,stuName,sex,age,gradeName FROM t_student;

+----+----------+------+-----+-----------+

| id | stuName  | sex  | age | gradeName |

+----+----------+------+-----+-----------+

|  1 | 张三     | 男   |  23 | 二年级    |

|  2 | 李四     | 男   |  25 | 二年级    |

|  3 | 王五     | 女   |  21 | 二年级    |

|  4 | 小1      | 男   |  21 | 二年级    |

|  5 | 小2      | 男   |  21 | 二年级    |

|  6 | 张三丰   | 男   |  88 | 三年级    |

|  7 | 张三逼   | 女   |  23 | 一年级    |

|  8 | 小张三   | 男   |  24 | 四年级    |

|  9 | 张三装逼 | 女   |  24 | 五年纪    |

| 10 | 魏震洲   | NULL |  25 | 大五      |

+----+----------+------+-----+-----------+

10 rows in set

 

2.SELECT * FROM 表名

mysql> SELECT * FROM t_student;

+----+----------+-----+------+-----------+

| id | stuName  | age | sex  | gradeName |

+----+----------+-----+------+-----------+

|  1 | 张三     |  23 | 男   | 二年级    |

|  2 | 李四     |  25 | 男   | 二年级    |

|  3 | 王五     |  21 | 女   | 二年级    |

|  4 | 小1      |  21 | 男   | 二年级    |

|  5 | 小2      |  21 | 男   | 二年级    |

|  6 | 张三丰   |  88 | 男   | 三年级    |

|  7 | 张三逼   |  23 | 女   | 一年级    |

|  8 | 小张三   |  24 | 男   | 四年级    |

|  9 | 张三装逼 |  24 | 女   | 五年纪    |

| 10 | 魏震洲   |  25 | NULL | 大五      |

+----+----------+-----+------+-----------+

10 rows in set

 

2.查询指定字段

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

mysql> SELECT stuName,age FROM t_student;

+----------+-----+

| stuName  | age |

+----------+-----+

| 张三     |  23 |

| 李四     |  25 |

| 王五     |  21 |

| 小1      |  21 |

| 小2      |  21 |

| 张三丰   |  88 |

| 张三逼   |  23 |

| 小张三   |  24 |

| 张三装逼 |  24 |

| 魏震洲   |  25 |

+----------+-----+

10 rows in set

 

3.Where条件查询

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

mysql> SELECT id,stuName,sex,age,gradeName FROM t_student WHERE age>22;

+----+----------+------+-----+-----------+

| id | stuName  | sex  | age | gradeName |

+----+----------+------+-----+-----------+

|  1 | 张三     | 男   |  23 | 二年级    |

|  2 | 李四     | 男   |  25 | 二年级    |

|  6 | 张三丰   | 男   |  88 | 三年级    |

|  7 | 张三逼   | 女   |  23 | 一年级    |

|  8 | 小张三   | 男   |  24 | 四年级    |

|  9 | 张三装逼 | 女   |  24 | 五年纪    |

| 10 | 魏震洲   | NULL |  25 | 大五      |

+----+----------+------+-----+-----------+

7 rows in set

 

4.IN关键字查询

1.SELSEC 字段1,字段2,字段3....FROM 表名 WHERE 字段 [NOT]IN(元素1,元素2,元素3);

mysql> SELECT id,stuName,sex,age,gradeName FROM t_student WHERE age IN(22,23,88);

+----+---------+-----+-----+-----------+

| id | stuName | sex | age | gradeName |

+----+---------+-----+-----+-----------+

|  1 | 张三    | 男  |  23 | 二年级    |

|  6 | 张三丰  | 男  |  88 | 三年级    |

|  7 | 张三逼  | 女  |  23 | 一年级    |

+----+---------+-----+-----+-----------+

3 rows in set

 

mysql> SELECT id,stuName,sex,age,gradeName FROM t_student WHERE age NOT IN(22,23,88);

+----+----------+------+-----+-----------+

| id | stuName  | sex  | age | gradeName |

+----+----------+------+-----+-----------+

|  2 | 李四     | 男   |  25 | 二年级    |

|  3 | 王五     | 女   |  21 | 二年级    |

|  4 | 小1      | 男   |  21 | 二年级    |

|  5 | 小2      | 男   |  21 | 二年级    |

|  8 | 小张三   | 男   |  24 | 四年级    |

|  9 | 张三装逼 | 女   |  24 | 五年纪    |

| 10 | 魏震洲   | NULL |  25 | 大五      |

+----+----------+------+-----+-----------+

7 rows in set

 

5.BETWEEN AND 的查询范围

1.SELECT 字段1,字段2,字段3....FROM 表名 WHERE 字段 [NOT]BETWEEN 取值1 AND 取值2;

SELECT id,stuName,sex,age,gradeName FROM t_student WHERE age BETWEEN 21 AND 25

;

+----+----------+------+-----+-----------+

| id | stuName  | sex  | age | gradeName |

+----+----------+------+-----+-----------+

|  1 | 张三     | 男   |  23 | 二年级    |

|  2 | 李四     | 男   |  25 | 二年级    |

|  3 | 王五     | 女   |  21 | 二年级    |

|  4 | 小1      | 男   |  21 | 二年级    |

|  5 | 小2      | 男   |  21 | 二年级    |

|  7 | 张三逼   | 女   |  23 | 一年级    |

|  8 | 小张三   | 男   |  24 | 四年级    |

|  9 | 张三装逼 | 女   |  24 | 五年纪    |

| 10 | 魏震洲   | NULL |  25 | 大五      |

+----+----------+------+-----+-----------+

9 rows in set

 

mysql> SELECT id,stuName,sex,age,gradeName FROM t_student WHERE age NOT BETWEEN 21 AND 25;

+----+---------+-----+-----+-----------+

| id | stuName | sex | age | gradeName |

+----+---------+-----+-----+-----------+

|  6 | 张三丰  | 男  |  88 | 三年级    |

+----+---------+-----+-----+-----------+

1 row in set

 

6.LIKE的模糊查询

1.SELECT  字段1,字段2,字段3..... FROM 表名 WHERE 字段 [NOT]LIKE 字符串;

“%”代表任意字符

mysql> SELECT id,stuName,sex,age,gradeName FROM t_student WHERE stuName LIKE'张三%';

+----+----------+-----+-----+-----------+

| id | stuName  | sex | age | gradeName |

+----+----------+-----+-----+-----------+

|  1 | 张三     | 男  |  23 | 二年级    |

|  6 | 张三丰   | 男  |  88 | 三年级    |

|  7 | 张三逼   | 女  |  23 | 一年级    |

|  9 | 张三装逼 | 女  |  24 | 五年纪    |

+----+----------+-----+-----+-----------+

4 rows in set

“_”代表单个字符

mysql> SELECT id,stuName,sex,age,gradeName FROM t_student WHERE stuName LIKE'张三_';

+----+---------+-----+-----+-----------+

| id | stuName | sex | age | gradeName |

+----+---------+-----+-----+-----------+

|  6 | 张三丰  | 男  |  88 | 三年级    |

|  7 | 张三逼  | 女  |  23 | 一年级    |

+----+---------+-----+-----+-----------+

2 rows in set

 

7.空值查询

1.SELECT * FROM 表名 WHERE 字段 IS [NOT] NULL;

mysql> SELECT id,stuName,sex,age,gradeName FROM t_student WHERE sex IS NULL;

+----+---------+------+-----+-----------+

| id | stuName | sex  | age | gradeName |

+----+---------+------+-----+-----------+

| 10 | 魏震洲  | NULL |  25 | 大五      |

+----+---------+------+-----+-----------+

1 row in set

 

8.AND的多条件查询

1.SELECT * FROM 表名 WHERE 条件表达式1 AND 条件表达式2 【......AND 条件表达式n】

mysql> SELECT * FROM t_student WHERE gradeName='二年级' AND age<23;

+----+---------+-----+-----+-----------+

| id | stuName | age | sex | gradeName |

+----+---------+-----+-----+-----------+

|  3 | 王五    |  21 | 女  | 二年级    |

|  4 | 小1     |  21 | 男  | 二年级    |

|  5 | 小2     |  21 | 男  | 二年级    |

+----+---------+-----+-----+-----------+

3 rows in set

 

9.OR的多条件查询

1.SELECT 字段1,字段2,字段3...FROM 表名 WHERE 条件表达式1 OR 条件表达式2 【...OR条件表达式n】

mysql> SELECT * FROM t_student WHERE gradeName='二年级' OR

 age<23;

+----+---------+-----+-----+-----------+

| id | stuName | age | sex | gradeName |

+----+---------+-----+-----+-----------+

|  1 | 张三    |  23 | 男  | 二年级    |

|  2 | 李四    |  25 | 男  | 二年级    |

|  3 | 王五    |  21 | 女  | 二年级    |

|  4 | 小1     |  21 | 男  | 二年级    |

|  5 | 小2     |  21 | 男  | 二年级    |

+----+---------+-----+-----+-----------+

5 rows in set

 

10.DISTINCT去重复查询

SELECT DISTINCT 字段名 FROM 表名;

mysql> SELECT DISTINCT sex

 FROM t_student;

+------+

| sex  |

+------+

| 男   |

| 女   |

| NULL |

+------+

3 rows in set

 

11.对查询结果排序

1.SELECT 字段1,字段2,字段3...FROM 表名 ORDER BY 属性名【ASC|DESC】

mysql> SELECT * FROM t_student ORDER BY age ASC;

+----+----------+-----+------+-----------+

| id | stuName  | age | sex  | gradeName |

+----+----------+-----+------+-----------+

|  3 | 王五     |  21 | 女   | 二年级    |

|  4 | 小1      |  21 | 男   | 二年级    |

|  5 | 小2      |  21 | 男   | 二年级    |

|  1 | 张三     |  23 | 男   | 二年级    |

|  7 | 张三逼   |  23 | 女   | 一年级    |

|  9 | 张三装逼 |  24 | 女   | 五年纪    |

|  8 | 小张三   |  24 | 男   | 四年级    |

| 10 | 魏震洲   |  25 | NULL | 大五      |

|  2 | 李四     |  25 | 男   | 二年级    |

|  6 | 张三丰   |  88 | 男   | 三年级    |

+----+----------+-----+------+-----------+

10 rows in set

 

mysql> SELECT * FROM t_student ORDER BY age DESC;

+----+----------+-----+------+-----------+

| id | stuName  | age | sex  | gradeName |

+----+----------+-----+------+-----------+

|  6 | 张三丰   |  88 | 男   | 三年级    |

| 10 | 魏震洲   |  25 | NULL | 大五      |

|  2 | 李四     |  25 | 男   | 二年级    |

|  8 | 小张三   |  24 | 男   | 四年级    |

|  9 | 张三装逼 |  24 | 女   | 五年纪    |

|  7 | 张三逼   |  23 | 女   | 一年级    |

|  1 | 张三     |  23 | 男   | 二年级    |

|  3 | 王五     |  21 | 女   | 二年级    |

|  4 | 小1      |  21 | 男   | 二年级    |

|  5 | 小2      |  21 | 男   | 二年级    |

+----+----------+-----+------+-----------+

10 rows in set

 

12.GROUP BY分组查询

GROUP BY 属性名[HAVING 条件表达式][WITH ROLLUP]

1.单独使用

mysql> SELECT gradeName FROM t_student GROUP BY gradeName;

+-----------+

| gradeName |

+-----------+

| 大五      |

| 二年级    |

| 三年级    |

| 四年级    |

| 五年纪    |

| 一年级    |

+-----------+

6 rows in set

 

2.GROUP_CONCAT()函数一起使用;

mysql> SELECT gradeName ,GROUP_CONCAT(stuName) FROM t_student GROUP BY gradeName;

+-----------+------------------------+

| gradeName | GROUP_CONCAT(stuName)  |

+-----------+------------------------+

| 大五      | 魏震洲                 |

| 二年级    | 张三,小2,小1,王五,李四 |

| 三年级    | 张三丰                 |

| 四年级    | 小张三                 |

| 五年纪    | 张三装逼               |

| 一年级    | 张三逼                 |

+-----------+------------------------+

6 rows in set

 

3.COUNT()聚合函数一起使用;

mysql> SELECT gradeName,COUNT(stuName) FROM t_student GROUP BY gradeName;

+-----------+----------------+

| gradeName | COUNT(stuName) |

+-----------+----------------+

| 大五      |              1 |

| 二年级    |              5 |

| 三年级    |              1 |

| 四年级    |              1 |

| 五年纪    |              1 |

| 一年级    |              1 |

+-----------+----------------+

6 rows in set

 

4.HAVINC一起使用(限制输出结果);

mysql> SELECT gradeName,COUNT(stuName) FROM t_student GROUP BY gradeName HAVING COUNT(stuName)>2;

+-----------+----------------+

| gradeName | COUNT(stuName) |

+-----------+----------------+

| 二年级    |              5 |

+-----------+----------------+

1 row in set

 

5.WITH ROLLUP 一起使用(最后加入一个总和行);

mysql> SELECT gradeName,COUNT(stuName) FROM t_student GROUP BY gradeName  WITH ROLLUP;

+-----------+----------------+

| gradeName | COUNT(stuName) |

+-----------+----------------+

| 大五      |              1 |

| 二年级    |              5 |

| 三年级    |              1 |

| 四年级    |              1 |

| 五年纪    |              1 |

| 一年级    |              1 |

| NULL      |             10 |

+-----------+----------------+

7 rows in set

 

13.LIMIT分页查询

SELECT 字段1,字段2,字段3.....FROM 表名 LIMIT 初始位置,记录数;

`mysql> SELECT * FROM t_student LIMIT 0,2;

+----+---------+-----+-----+-----------+

| id | stuName | age | sex | gradeName |

+----+---------+-----+-----+-----------+

|  1 | 张三    |  23 | 男  | 二年级    |

|  2 | 李四    |  25 | 男  | 二年级    |

+----+---------+-----+-----+-----------+

2 rows in set

 

mysql> SELECT * FROM t_student LIMIT 2,4;

+----+---------+-----+-----+-----------+

| id | stuName | age | sex | gradeName |

+----+---------+-----+-----+-----------+

|  3 | 王五    |  21 | 女  | 二年级    |

|  4 | 小1     |  21 | 男  | 二年级    |

|  5 | 小2     |  21 | 男  | 二年级    |

|  6 | 张三丰  |  88 | 男  | 三年级    |

+----+---------+-----+-----+-----------+

4 rows in set

 

mysql> SELECT * FROM t_student LIMIT 5,9;

+----+----------+-----+------+-----------+

| id | stuName  | age | sex  | gradeName |

+----+----------+-----+------+-----------+

|  6 | 张三丰   |  88 | 男   | 三年级    |

|  7 | 张三逼   |  23 | 女   | 一年级    |

|  8 | 小张三   |  24 | 男   | 四年级    |

|  9 | 张三装逼 |  24 | 女   | 五年纪    |

| 10 | 魏震洲   |  25 | NULL | 大五      |

+----+----------+-----+------+-----------+

5 rows in set

 

 

1 0
原创粉丝点击