mysql select (单表查询)
world.sql 数据库测试样例文件下载:https://dev.mysql.com/doc/index-other.html
mysql: https://url69.ctfile.com/d/253469-56755836-403176?p=2206 (访问密码: 2206)
上传加载测试环境:
mysql> source ~/world-db/world.sql
-- 将world.sql数据库文件上传到数据库服务器中,根据存储路径进行加载恢复数据库数据
# 查看数据库信息和数据表信息
mysql> show databases;
-- 可以查看到world数据库信息
mysql> use world;
mysql> show tables;
-- 查看数据库中表信息
mysql> desc city;
-- 查看数据库中表结构信息
# 查询数据库表的前几行记录信息
mysql> select * from city limit 5;
1实际操作命令演示:select+from 结合使用情况
use world;
select * from city; -- > 等价于 cat a.txt
select id,name,countrycode,district,population from city;
-- 进入world数据库中,查询数据库中city表所有内容信息(企业应用不要对大表查看所有数据)
select name,population from city; -- > 等价于 awk $1 $2
-- 查询city表中的部分字段信息,显示查看城市名称和人口数量
2实际操作命令演示:select+from+where 结合使用情况
方式一:定义等值条件信息进行数据查询
# 查询中国的所有城市信息,中国代码信息 "CHN"
mysql > SELECT * FROM city WHERE countrycode='CHN';
# 查询中国的所有城市信息,只关注城市名称和人口数量列信息
mysql > SELECT NAME,population FROM city WHERE countrycode='CHN';
方式二:定义区间条件信息进行数据查询
可使用区间条件表示方法:
| 序号 | 符号 | 解释说明 | |----|-----------|-------------------| | 01 | < | 表示小于指定数值的信息作为条件 | | 02 | > | 表示大于指定数值的信息作为条件 | | 03 | <= | 表示小于等于指定数值的信息作为条件 | | 04 | >= | 表示大于等于指定数值的信息作为条件 | | 05 | != / <> | 表示不等于指定数值的信息作为条件 |
# 查询大于700万人的所有城市信息
mysql > SELECT * FROM city WHERE population>7000000;
# 查询小于等于1000人的所有城市信息
mysql > SELECT * FROM city WHERE population<=1000;
方式三:定义逻辑条件信息进行数据查询
可以使用逻辑判断符号,进行条件设定查找相应数据信息:
| 序号 | 逻辑判断符号 | 解释说明 | |----|---------------|-------------------| | 01 | and(并且)/ && | 表示多个条件均都满足才能被查找出来 | | 02 | or(或者)/ || | 表示多个条件之一满足就能被查找出来 | | 03 | not (取反) / ! | 表示查找除过滤查找的信息以外的内容 |
# 查询中国境内,大于520万人口的城市信息
mysql> SELECT * FROM city WHERE countrycode='CHN' AND population>5200000;
# 查询中国和美国的所有城市
mysql> SELECT * FROM city WHERE countrycode='chn' OR countrycode='USA';
# 查询人口数在100w到200w之间的城市信息
mysql> SELECT * FROM city WHERE population>=1000000 AND population<=2000000;
方式四:定义模糊条件信息进行数据查询(like )
# 查询国家代号是CH开头的城市信息
mysql> SELECT * FROM city WHERE countrycode LIKE 'CH%';
# 查询国家代号含US内容的城市信息
mysql> SELECT * FROM city WHERE countrycode LIKE '%US%';
-- 在模糊查询时,%符号在前面进行检索数据时,是不会走索引信息进行检索的,查询性能较慢
方式五:特殊查询条件组合进行数据查询(配合in, not in, between and )
# 查询中国和美国的所有城市
mysql> SELECT * FROM city WHERE countrycode in ('CHN','USA');
-- in的查询条件方式表示包含意思,实际应用更广泛
# 查询世界上的所有城市信息,但排除中国和美国的城市不查询
mysql> SELECT * FROM city WHERE countrycode not in ('CHN','USA');
-- not in的查询条件方式表示排除意思,实际应用比较少见,因为not in不能走索引扫描,查询检索性能较慢
# 查询人口数量在50w-100w之间的城市信息
mysql> SELECT * FROM city WHERE population between 500000 and 10000000;
-- between and的查询条件方式是包含边界取值信息的,即包含50w人口的城市,也包含100w人口的城市
方式六:查询数据信息取消重复信息(distinct)
mysql> select CountryCode from city where CountryCode='USA';
mysql> select Distinct CountryCode from city where CountryCode='USA';
+-----------------+
| CountryCode |
+-----------------+
| USA |
+-----------------+
1 row in set (0.19 sec)
-- 列字段信息必须完全相同内容,才可以实现去重;
方式七:查询数据信息为空的内容(is null)
mysql> select * from city where CountryCode is null;
-- 查询国家编码字段为空的信息
mysql> select * from city where CountryCode not null;
-- 查询国家编码字段为非空的信息
实际操作命令演示:select+from+where+group by+聚合函数(统计函数) 结合使用情况
在利用select语句查询数据信息,结合group by子句可以实现分组查询,并且还必须配合聚合函数对分组查询的数据做相应处理;
mysql group by 实战 : 连接
mysql 多表查询 :连接