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
- MYSQL学习(三)
- MYSQL学习(三)
- MySQL学习(三)
- MySQL学习(三)
- MySQL学习(三)
- Mysql学习(三)
- MySQL学习(三)
- MySql学习(三)
- MySQL学习(三)
- MySQL入门学习(三)
- MySQL入门学习(三)
- MySQL入门学习(三)
- MySQL入门学习(三)
- MySQL入门学习(三)
- MySQL学习笔记(三)
- MYSQL学习笔记(三)
- MySQL学习笔记(三)
- linux mysql 学习 (三)
- Android系统OTG_usb链接摄像头的驱动和使用
- wpf学习笔记
- Cannot open channel to 5 at election address node5/192.168.1.204:3887
- AndroidStudio使用详细介绍
- Android-2048
- Mysql学习(三)
- ARP操作
- tensorflow 中 name_scope和variable_scope
- Socket通用TCP通信协议设计及实现(防止粘包,可移植,可靠)
- jQuery Easing 使用方法及其图解
- Android Studio 实用插件
- 项目练习—天天记账
- powerdesigner设计oracle数据库注意事项
- StrutsPrepareAndExecuteFilter 与 FilterDispatcher的区别