<返回更多

数据库MYSQL的查询

2021-07-14    切勿按键伤人
加入收藏

数据库MySQL的查询一、单表查询

1、条件查询

select *from test where name='libai'

①查询名字为李白且年龄为18:select *from test where name='libai' and age=18

②查询手机号以0结尾的:select *from test where phone like ‘%0’

③查询名字中带小的:select *from test where name like'xiao%';

④查询名字中带o的:select *from test where name like '&o%',%表示通配符

2、取别名

表名过长的话可以去一个暂时的别名

select lixin.name from lixin;

select t.name from lixin as t:

临时表,取别名

二、多表查询

1、内连接

①无条件连接

SELECT * FROM `department` INNER JOIN(内连接) `students`;

SELECT * FROM `department` , `students`;

SELECT * FROM `department` CROSS JOIN `students`;

SELECT * FROM `department` JOIN `students`;

以上这个四个SQL的结果都一样,都是笛卡尔积,也叫无条件连接/交叉连接等。

②有条件连接

常用select *from department as t inner join student as d on t.d_id=d.dept_id;

select *from department as t,student as d where t_id=d_id;

数据库MYSQL的查询

 

2、外连接

左连接

表示表格以左边为主select *from department as t left join student as d on t.d_id=d.dept_id;

右连接

表示表格以右边为主select *from department as t right join student as d on t.d_id=d.dept_id;

数据库MYSQL的查询

 

3、多张表连接

select *from department as t right join student as d on t.d_id=d.dept_id inner join stu_detail on d.s_id=stu_datail.stu_id;

数据库MYSQL的查询

 

取其中的一些字段可以这样

数据库MYSQL的查询

 

三、字表查询

方法一:先将两张表合为一张表

数据库MYSQL的查询

 

再将学院表与临时表连接

数据库MYSQL的查询

 

方法二:

我们知道学院的id就可以查人了

数据库MYSQL的查询

 

然后执行下列操作

首先查你想知道的学院id

数据库MYSQL的查询

 

然后执行下列操作

数据库MYSQL的查询

 

四、排序

通常我们创建表排列顺序都是按创建的先后

数据库MYSQL的查询

 

排序用order方法

①从小到大

默认的order就是从小到大

数据库MYSQL的查询

 

select *from work order by age asc

数据库MYSQL的查询

 

②从大到小

数据库MYSQL的查询

 

③限制取值

select *from work order by age desc limit2

如取前2个

数据库MYSQL的查询

 

④区间取值

如取第二个和第三个

数据库MYSQL的查询

 

五、统计

分组是个常见的操作,常用于分组统计,使用GROUP BY后,会按照GROUP BY后面的字段进行分组,且必须是明确的字段,不能是*,因此SELECT后面也不能是*.其次可以使用 HAVING 可以对分组之后的结果进行筛选,注意:HAVING 后的字段必须是SELECT后出现过的

如果想看每个学院有多少人,则用group by方法

数据库MYSQL的查询

 

分组后的统计

数据库MYSQL的查询

 

六、mysql常用函数

数据库MYSQL的查询

 

1.尽量避免整表扫描,如SELECT *

七、

1.尽量避免整表扫描,如SELECT *

2.建立合适的索引

3.使用合适的存储引擎

4.在JOIN中,尽量用小表LEFT JOIN 大表

5.除非十分必要,尽量不要使用ORDER BY,GROUP BY 和 DISTINCT(去重),尽量用索引来代替

 

ISTINCT(去重),尽量用索引来代替

 

尽量用小表LEFT JOIN 大表

5.除非十分必要,尽量不要使用ORDER BY,GROUP BY 和 DISTINCT(去重),尽量用索引来代替

 

ISTINCT(去重),尽量用索引来代替

声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多资讯 >>>