【MySQL】数据处理(数据的查询)
所谓的查询就是我们通过编写代码可以查到数据库中表格里的数据,当然不只是数据。查询产生一个虚拟表看到的是以表格的形式展现的,但结果并不真正地储存,每一次的查询只是从数据表中提取数据。
How?SELECT [ALL | DISTINCT] 输出列表达式, … /SELECT子句/
FROM 表名1 [ , 表名2] …] /FROM子句/
[WHERE 条件] /WHERE子句/
[GROUP BY {列名 | 表达式 | 列编号}
[ASC | DESC], … /* GROUP BY 子句*/
[HAVING 条件] /* HAVING 子句*/
[ORDER BY {列名 | 表达式 | 列编号}
[ASC | DESC] , …] /ORDER BY子句/
[LIMIT {[偏移量,] 行数|行数OFFSET偏移量}] /LIMIT子句/
顺序严格地排序。例如,一个HAVING子句必须位于GROUP BY子句之后,并位于ORDER BY子句之前。
表格查询
select*from <表名>;
mysql> SELECT*FROM 图书信息;
+----------------+---------------------------------+--------+------+--------+------------+----------+----------+----------+
| ISBN编号 | 图书名称 | 作者 | 价格 | 出版社 | 出版日期 | 图书类型 | 封面图片 | 图书简介 |
+----------------+---------------------------------+--------+------+--------+------------+----------+----------+----------+
| 9787121204178 | oracle11g数据库应用、设计与管理 | 陈承欢 | 38 | 4 | 2014-07-01 | T | NULL | NULL |
| 9787040393293 | 实用工具软件任务驱动式教程 | 陈承欢 | 26 | 3 | 2014-11-01 | T | NULL | NULL |
| 9787040393293 | 网页美化与布局 | 陈承欢 | 39 | 1 | 2015-08-01 | T | NULL | NULL |
| 9787115374035 | 跨平台的移动Web开发实战 | 陈承欢 | 29 | 2 | 2015-03-01 | T | NULL | NULL |
| 9787121052347 | 数据库应用基础实例教程 | 陈承欢 | 29 | 4 | 2008-12-30 | T | NULL | NULL |
| 9787121052348 | JAVA编程教学 | 赵天逸 | 33 | 5 | 2008-12-29 | T | NULL | NULL |
| 9787121052349 | MYSQL基础教学 | 赵天逸 | 30 | 3 | 2009-12-29 | T | NULL | NULL |
| 9787121052350 | 计算机基础教程 | 赵天宇 | 45 | 1 | 2000-12-29 | S | NULL | NULL |
| 9787121052352 | 网络技术与应用 | 张泽段 | 100 | 4 | 2020-11-11 | M | NULL | NULL |
| 9787121052351 | 计算机基础 | 赵天宇 | 45 | 5 | 2000-12-29 | | NULL | NULL |
| 9787121052358 | 计算机教程 | 马宇 | 45 | 1 | 2000-12-29 | | NULL | NULL |
| 97871212041478 | oracle11g数据库应用、设计与管理 | 陈承欢 | 38 | 4 | 2014-07-01 | T | NULL | NULL |
| 9787040393293 | 实用工具软件任务驱动式教程 | 陈承欢 | 26 | 3 | 2014-11-01 | T | NULL | NULL |
| 9787040393293 | 网页美化与布局 | 陈承欢 | 39 | 1 | 2015-08-01 | T | NULL | NULL |
| 9787115374035 | 跨平台的移动Web开发实战 | 陈承欢 | 29 | 2 | 2015-03-01 | T | NULL | NULL |
| 9787121052347 | 数据库应用基础实例教程 | 陈承欢 | 29 | 4 | 2008-12-30 | T | NULL | NULL |
| 9787121052348 | JAVA编程教学 | 赵天逸 | 33 | 5 | 2008-12-29 | T | NULL | NULL |
| 9787121052349 | MYSQL基础教学 | 赵天逸 | 30 | 3 | 2009-12-29 | T | NULL | NULL |
| 9787121052350 | 计算机基础教程 | 赵天宇 | 45 | 1 | 2000-12-29 | S | NULL | NULL |
| 9787121052352 | 网络技术与应用 | 张泽段 | 100 | 4 | 2020-11-11 | M | NULL | NULL |
| 9787121052351 | 计算机基础 | 赵天宇 | 45 | 5 | 2000-12-29 | | NULL | NULL |
| 9787121052358 | 计算机教程 | 马宇 | 45 | 1 | 2000-12-29 | | NULL | NULL |
+----------------+---------------------------------+--------+------+--------+------------+----------+----------+----------+
22 rows in set (0.11 sec)
部分数据列查询
select <列名> from <表名>;
mysql> select 图书名称,作者,价格,图书类型 from 图书信息;
+---------------------------------+--------+------+----------+
| 图书名称 | 作者 | 价格 | 图书类型 |
+---------------------------------+--------+------+----------+
| oracle11g数据库应用、设计与管理 | 陈承欢 | 38 | T |
| 实用工具软件任务驱动式教程 | 陈承欢 | 26 | T |
| 网页美化与布局 | 陈承欢 | 39 | T |
| 跨平台的移动Web开发实战 | 陈承欢 | 29 | T |
| 数据库应用基础实例教程 | 陈承欢 | 29 | T |
| JAVA编程教学 | 赵天逸 | 33 | T |
| MYSQL基础教学 | 赵天逸 | 30 | T |
| 计算机基础教程 | 赵天宇 | 45 | S |
| 网络技术与应用 | 张泽段 | 100 | M |
| 计算机基础 | 赵天宇 | 45 | |
| 计算机教程 | 马宇 | 45 | |
| oracle11g数据库应用、设计与管理 | 陈承欢 | 38 | T |
| 实用工具软件任务驱动式教程 | 陈承欢 | 26 | T |
| 网页美化与布局 | 陈承欢 | 39 | T |
| 跨平台的移动Web开发实战 | 陈承欢 | 29 | T |
| 数据库应用基础实例教程 | 陈承欢 | 29 | T |
| JAVA编程教学 | 赵天逸 | 33 | T |
| MYSQL基础教学 | 赵天逸 | 30 | T |
| 计算机基础教程 | 赵天宇 | 45 | S |
| 网络技术与应用 | 张泽段 | 100 | M |
| 计算机基础 | 赵天宇 | 45 | |
| 计算机教程 | 马宇 | 45 | |
+---------------------------------+--------+------+----------+
22 rows in set (0.10 sec)
部分数据行查询
select*<列名>from <表名> where <条件>;
#where子句用来查找满足条件的相关数据行#
where子句常用运算符值:
1.比较运算符
2.逻辑运算符
通过逻辑运算符(and、or、xor 和 not)组成更为复杂的查询条件。逻辑运算操作的结果是“1”或“0”,分别表示“true”或“false”。
mysql> select 图书名称,作者,价格,图书类型 from 图书信息 where 价格>40;
+----------------+--------+------+----------+
| 图书名称 | 作者 | 价格 | 图书类型 |
+----------------+--------+------+----------+
| 计算机基础教程 | 赵天宇 | 45 | S |
| 网络技术与应用 | 张泽段 | 100 | M |
| 计算机基础 | 赵天宇 | 45 | |
| 计算机教程 | 马宇 | 45 | |
| 计算机基础教程 | 赵天宇 | 45 | S |
| 网络技术与应用 | 张泽段 | 100 | M |
| 计算机基础 | 赵天宇 | 45 | |
| 计算机教程 | 马宇 | 45 | |
+----------------+--------+------+----------+
8 rows in set (0.07 sec)
mysql> select distinct 图书名称,作者,价格,图书类型 from 图书信息 where 价格>40 and 作者='赵天宇';
+----------------+--------+------+----------+
| 图书名称 | 作者 | 价格 | 图书类型 |
+----------------+--------+------+----------+
| 计算机基础教程 | 赵天宇 | 45 | S |
| 计算机基础 | 赵天宇 | 45 | |
+----------------+--------+------+----------+
2 rows in set (0.06 sec)
数据查询列别名
一般在搜索的列名后加上 as ,但有时也可以不加。
select<列名>as <别名>from <表名> where <条件>;
mysql> select distinct 图书名称 as a,作者 as b,价格 as c,图书类型 as d from 图书信息 where 价格>40 and 作者='赵天宇';
+----------------+--------+----+---+
| a | b | c | d |
+----------------+--------+----+---+
| 计算机基础教程 | 赵天宇 | 45 | S |
| 计算机基础 | 赵天宇 | 45 | |
+----------------+--------+----+---+
2 rows in set (0.06 sec)
mysql> select distinct 图书名称 a,作者 b,价格 c,图书类型 d from 图书信息 where 价格>40 and 作者='赵天宇';
+----------------+--------+----+---+
| a | b | c | d |
+----------------+--------+----+---+
| 计算机基础教程 | 赵天宇 | 45 | S |
| 计算机基础 | 赵天宇 | 45 | |
+----------------+--------+----+---+
2 rows in set (0.06 sec)
替换查询结果中的数据
select <替换的列名>,
case
when <条件1> then <别名1>
when <条件2> and <条件2.1> then <别名2>
when <条件3> then <别名3>
end as <列别名1>
from <表名>;
mysql> select 图书名称,
-> case
-> when 价格>=35 then '高价'
-> when 价格>=28 and 价格<35 then '中价'
-> when 价格<28 then '低价'
-> end as '价值'
-> from 图书信息;
+---------------------------------+------+
| 图书名称 | 价值 |
+---------------------------------+------+
| oracle11g数据库应用、设计与管理 | 高价 |
| 实用工具软件任务驱动式教程 | 低价 |
| 网页美化与布局 | 高价 |
| 跨平台的移动Web开发实战 | 中价 |
| 数据库应用基础实例教程 | 中价 |
| JAVA编程教学 | 中价 |
| MYSQL基础教学 | 中价 |
| 计算机基础教程 | 高价 |
| 网络技术与应用 | 高价 |
| 计算机基础 | 高价 |
| 计算机教程 | 高价 |
+---------------------------------+------+
11 rows in set (0.06 sec)
模糊查询-between and-in
between and 是搜索一定范围,且一定是由低到高
in 是查询某个集合里的,()中是一个集合,满足集合中的数据将被查询出来
mysql> select 图书名称,作者,价格 from 图书信息 where 价格 between 25 and 40;
+---------------------------------+--------+------+
| 图书名称 | 作者 | 价格 |
+---------------------------------+--------+------+
| oracle11g数据库应用、设计与管理 | 陈承欢 | 38 |
| 实用工具软件任务驱动式教程 | 陈承欢 | 26 |
| 网页美化与布局 | 陈承欢 | 39 |
| 跨平台的移动Web开发实战 | 陈承欢 | 29 |
| 数据库应用基础实例教程 | 陈承欢 | 29 |
| JAVA编程教学 | 赵天逸 | 33 |
| MYSQL基础教学 | 赵天逸 | 30 |
+---------------------------------+--------+------+
7 rows in set (0.05 sec)
mysql> select 图书名称,作者,价格,出版社 from 图书信息 where 出版社 in (1,3);
+----------------------------+--------+------+--------+
| 图书名称 | 作者 | 价格 | 出版社 |
+----------------------------+--------+------+--------+
| 实用工具软件任务驱动式教程 | 陈承欢 | 26 | 3 |
| 网页美化与布局 | 陈承欢 | 39 | 1 |
| MYSQL基础教学 | 赵天逸 | 30 | 3 |
| 计算机基础教程 | 赵天宇 | 45 | 1 |
| 计算机教程 | 马宇 | 45 | 1 |
+----------------------------+--------+------+--------+
5 rows in set (0.06 sec)
数据查询单列排序
select<列名>as <别名>from <表名> where <条件>order by <排序列名>;
系统默认的是升序,但有时我们会用到降序(desc)。
mysql> select 图书名称,作者,价格,出版社 from 图书信息 where 出版社 in (1,3) order by 出版社;通配符
+----------------------------+--------+------+--------+
| 图书名称 | 作者 | 价格 | 出版社 |
+----------------------------+--------+------+--------+
| 网页美化与布局 | 陈承欢 | 39 | 1 |
| 计算机基础教程 | 赵天宇 | 45 | 1 |
| 计算机教程 | 马宇 | 45 | 1 |
| 实用工具软件任务驱动式教程 | 陈承欢 | 26 | 3 |
| MYSQL基础教学 | 赵天逸 | 30 | 3 |
+----------------------------+--------+------+--------+
5 rows in set (0.05 sec)
mysql> select 图书名称,作者,价格,出版社 from 图书信息 where 出版社 in (1,3) order by 出版社 desc;
+----------------------------+--------+------+--------+
| 图书名称 | 作者 | 价格 | 出版社 |
+----------------------------+--------+------+--------+
| 实用工具软件任务驱动式教程 | 陈承欢 | 26 | 3 |
| MYSQL基础教学 | 赵天逸 | 30 | 3 |
| 网页美化与布局 | 陈承欢 | 39 | 1 |
| 计算机基础教程 | 赵天宇 | 45 | 1 |
| 计算机教程 | 马宇 | 45 | 1 |
+----------------------------+--------+------+--------+
5 rows in set (0.06 sec)
mysql> select 出版社ID,出版社简称,出版社地址,邮政编码 from 出版社 where 邮政编码 like '1000%' order by 出版社ID desc;
+----------+------------+----------------------------+----------+
| 出版社ID | 出版社简称 | 出版社地址 | 邮政编码 |
+----------+------------+----------------------------+----------+
| 6 | 疯狂 | 南京市江宁区龙眠大道 | 100038 |
| 5 | 机工 | 北京市西城区百万庄大街22号 | 100037 |
| 4 | 电子 | 北京市海淀区万寿路173信箱 | 100036 |
| 3 | 清华 | 北京清华大学学院大厦 | 100084 |
| 2 | 人邮 | 北京市崇文区夕照寺街14号 | 100061 |
| 1 | 高教 | 北京西城区德外大街4号 | 100011 |
+----------+------------+----------------------------+----------+
6 rows in set (0.05 sec)
mysql> select 出版社ID,出版社简称,出版社地址 from 出版社 where 出版社地址 like '__市__区%' order by 出版社ID;
+----------+------------+----------------------------+
| 出版社ID | 出版社简称 | 出版社地址 |
+----------+------------+----------------------------+
| 2 | 人邮 | 北京市崇文区夕照寺街14号 |
| 4 | 电子 | 北京市海淀区万寿路173信箱 |
| 5 | 机工 | 北京市西城区百万庄大街22号 |
| 6 | 疯狂 | 南京市江宁区龙眠大道 |
| 7 | 呆呆 | 南京市江宁区龙眠大道南交院 |
| 8 | 人民 | 上海市虹桥区 |
+----------+------------+----------------------------+
6 rows in set (0.05 sec)
版权声明
本文仅代表作者观点,不代表博信信息网立场。