本人已参与「新人创作礼」活动,一起开启掘金创作之路。
持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第20天,点击查看活动详情
目录
今天阿文介绍的内容
- 数据查询
单表查询
数据查询
在使用数据库时,我们需要去查询数据库中的数据供我们使用,在数据库管理系统的一个重要功能就是数据查询,数据查询不应只是简单返回数据库中存储的数据,还应该根据需要对数据进行筛选以及确定数据以什么样的格式显示。
一、基本查询语句
在MySQL语句中从数据表中查询数据的基本语句为SELECT语句。
SELECT语句的基本格式是:
SELECT {字段1,字段2,...,字段n} FROM {表或视图} WHERE {查询条件};
其实SELECT的可选参数比较多,这里无法一下完全说全,在下面的介绍中,会对各种参数进行说明。
二、单表查询
所谓的单表查询,字面意思上是从一张表数据中查询所需的数据。
1.查询所有字段
- 1.在SELECT语句中使用星号(*)同配符查询所有字段
语法格式如下:
SELECT * FROM 表名;
使用星号(*)通配符时,将返回所有列,列按照定义表时候的顺序显示。
例子:
SELECT * FROM empolyee;
查询结果为:
- 2.在SELECT语句中指定所有字段
因为SELECT关键字后面的字段名为将要查找的数据,因此可以将表中所有字段的名称跟在SELLECT子句后面,如果忘了字段名称,可以使用DESC命令查看表的结构。
语法格式如下:
SELECT 字段1,字段2,... FROM 表名;
例子:
SELECT id, name, deptId, salary, loc, managerId, gender, column1 FROM employee;
查询结果为:
可以看出,查询的结果与使用\*号的结果是一样的,使用*号会更加简便
2.查询指定字段
- 1.查询单个字段
语法格式如下:
SELECT 列名 FROM 表名;
输出结果显示该表中单列的所有数据。
例子:
SELECT name FROM employee;
查询结果为:
- 2.查询多个字段
当需要查询多个字段下的数据时,SELECT后的不同字段名称之间使用逗号(,)分隔开。
语法格式如下:
SELECT 字段1,字段2,...,字段n FROM 表名;
输出结果显示为该表所需查询各个字段下的所有数据。
例子:
SELECT name, deptId, salary FROM employee;
查询结果为:
- 3.查询制定记录
数据库中包含大量的数据,有时根据特殊的要求,只需要查询表中的指定数据,即对数据进行过滤和筛选。在SELECT语句中,通过WHERE子句可以对数据进行过滤和筛选。
语法格式如下:
SELECT 字段1,字段2,...,字段n FROM 表名 WHERE 约束条件;
注意:在MySQL中需表达是否相等是使用的是"="而不是"=="
例子:
SELECT name, deptId, salary FROM employee WHERE deptId=1003;
查询结果为:
可以看出,只有deptId等于1003的数据被查询出来了,这是因为在SQL语句中加了筛选条件deptId = 1003。
- 4.带IN关键字的查询
IN操作符是用来查询满足指定范围内的条件的记录,将所有检索条件用括号括起来,检索条件之间用逗号分隔开,只要满足条件范围内的一个值即为匹配项。
语法格式如下:
SELECT 字段1,字段2,...,字段n FROM 表名 WHERE 字段x IN (X,Y,Z,...);
例子:
SELECT name, deptId, salary FROM employee WHERE deptId IN (1003,1001);
查询结果为:
可以看到,只有deptId等于1001或者1003的数据被查询出。
在IN操作符前加上关键字NOT在检索不在条件范围内的记录。
语法格式如下:
SELECT 字段1,字段2,...,字段n FROM 表名 WHERE 字段x NOT IN (X,Y,Z,...);
例子:
SELECT name, deptId, salary FROM employee WHERE deptId NOT IN (1003,1001);
查询结果为:
可以看出,deptId不等于1001或者1003的数据被查询出来。刚好与上面例子相反。
- 5.带BETWEEN AND的范围查询
BETWEEN AND用来查询某个范围内的值,该操作符需要一个开始值和结束值。
语法格式如下:
SELECT 字段1,字段2,...,字段n FROM 表名 WHERE 字段x BETWEEN a AND b;
例子:
SELECT name, deptId, salary FROM employee WHERE deptId BETWEEN 1001 AND 1003;
查询结果为:
可以看到,deptId在1001到1003范围内的数据全部都查询出来了。
在BETWEEN AND操作符前加上关键字NOT,表示在该范围外的值。
语法格式如下:
SELECT 字段1,字段2,...,字段n FROM 表名 WHERE 字段x NOT BETWEEN a AND b;
例子:
SELECT name, deptId, salary FROM employee WHERE deptId NOT BETWEEN 1001 AND 1003;
查询结果为:
可以看出,deptId在范围1001到1003的数据都没有被查询出来。
总结
- MySQL的单表查询就有许多关键字,且其作用也不相同
好了,今天阿文就介绍到这了...
byebye