MySQL全面瓦解6:查询的基本操作

前端之家收集整理的这篇文章主要介绍了MySQL全面瓦解6:查询的基本操作前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

提到查询,就回到我们第四篇的sql语言分类了,DQL(Data QueryLanguage),也就是数据查询语言,实际就是从数据库获取数据的一种命令方式。我们给数据库发送一个查询语句的命令,数据库按需返回相应的数据。

select column_name1,column_name2,... from tname;

sql 中不区分大小写,select语句中不区分大小写,SELECT和select、FROM和from效果一样。

查询的结果放在一个表格中,表格的第1行称为列头,第2行开始是数据,类属于一个二维数组。

查询单个字段

配置字段名称,格式如下:

1 select column_name1 from tname;

 

 1 MysqL> use test;
 2 Database changed
 3 
 4 MysqL> select name from user3;
 5 +-------+
 6 | name  |
 7 +-------+
 8 | brand |
 9 | sol     |
10 +-------+
11 2 rows in set

 

查询多个字段

多个字段使用逗号隔开,语法格式如下

column_name1,column_name2,1)">select id,age,name  5 +----+-----+-------+
 6 | id | age | name  |
 7 +----+-----+-------+
 8 |  1 |  20 | brand |
 9 |  2 |  22 | sol   |
10 +----+-----+-------+
set

 

查询所有字段

使用*号通配符来表示,语法格式如下

* from tname;

 

select * set

 

常量的查询

对于常量值的查询,可以不来源于表,格式如下

select const1,const2,const3;
1 MysqL> select 100,'brand',1)">1.5;
2 +-----+-------+-----+
3 | 100 | brand | 1.5 |
4 +-----+-------+-----+
5 | 6 +-----+-------+-----+
7 1 row set

 

表达式的查询

sql的加减乘除等等表达式的查询,格式如下:

select expression1,expression2,...;

 

1+2,1)">1-1*7,1)">17/17%2+3)*5,1)">8>7=42 +-----+-----+-----+------+------+---------+-----+-----+
2 | 7 | 2 | (4 |
4 +-----+-----+-----+------+------+---------+-----+-----+
5 |   3 |  -1 |   8.5  |    1 |      25 |   0 |
6 +-----+-----+-----+------+------+---------+-----+-----+
set

 

函数查询

可以在查询加上各种类型的系统函数或者用户自定义函数,来简化一些较复杂的查询过程。格式如下:

select func1,func2,func3,...;

 

select abs(-6),round(5.7),length('),now();
2 +---------+------------+-----------------+---------------------+
3 | abs(-6) | round(5.7) | length(') | now()               |
4 +---------+------------+-----------------+---------------------+
5 |       6 | 6          |               2020-11-06 21:07:41 |
6 +---------+------------+-----------------+---------------------+
set

 

表和字段的查询

查询列名都会以列的定义名称显示,这样显示的时候查看不方便,还容易暴露数据库的信息给业务,为了增强脚本可阅读性,我们经常使用字段别名。

设置表的别名更主要的还是在于书写查询语句时候的便利,并避免多表查询时的字段混淆。格式如下:

select talias.column_name1 col1,talias.column_name2 col2 from  tname [as] talias;

 

select u.id as 主键,u.age as 年龄,u.name as 名称  user3 u;
 5 +------+------+-------+
 6 | 主键 | 年龄 | 名称  |
 7 +------+------+-------+
 8 |     9 |    2 |   10 +------+------+-------+
set

混合查询

查询具体表的字段是可以跟表达式,常量等混合在一起的,这样才能应付复杂的业务。

中国2020人口普查' as 标题,u.id as 名称,now() as 查询时间,1)">2020*rand() as 随机2 +------------------+------+------+-------+---------------------+--------------------+
3 | 标题             | 主键 | 年龄 | 名称  | 查询时间            | 随机数             |
4 +------------------+------+------+-------+---------------------+--------------------+
5 | 中国2020人口普查 |    20 | brand | 23:39 | 1236.3585094328582 |
6 | 中国2020人口普查 |    22 | sol   | 344.21752367561453 |
7 +------------------+------+------+-------+---------------------+--------------------+
8 set

1、本片只是查询的基础篇,后续会引出 查询的过滤条件、排序、分页、分组、正则匹配过滤,以及复杂查询性能优化等等。

2、查询数据的时候,应遵循应需而查,查询需要的字段即可,切勿随意的使用*,数据量大的时候性能差距就明显了。

猜你在找的MySQL相关文章