数据库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、取别名
表名过长的话可以去一个暂时的别名
【数据库MYSQL的查询】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;
文章插图
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;
文章插图
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;
文章插图
取其中的一些字段可以这样
文章插图
三、字表查询
方法一:先将两张表合为一张表
文章插图
再将学院表与临时表连接
文章插图
方法二:
我们知道学院的id就可以查人了
文章插图
然后执行下列操作
首先查你想知道的学院id
文章插图
然后执行下列操作
文章插图
四、排序
通常我们创建表排列顺序都是按创建的先后
文章插图
排序用order方法
①从小到大
默认的order就是从小到大
文章插图
select *from work order by age asc
文章插图
②从大到小
文章插图
③限制取值
select *from work order by age desc limit2
如取前2个
文章插图
④区间取值
如取第二个和第三个
文章插图
五、统计
分组是个常见的操作,常用于分组统计,使用GROUP BY后,会按照GROUP BY后面的字段进行分组,且必须是明确的字段,不能是*,因此SELECT后面也不能是*.其次可以使用 HAVING 可以对分组之后的结果进行筛选,注意:HAVING 后的字段必须是SELECT后出现过的
如果想看每个学院有多少人,则用group by方法
文章插图
分组后的统计
文章插图
六、mysql常用函数
文章插图
1.尽量避免整表扫描,如SELECT *
七、
1.尽量避免整表扫描,如SELECT *
2.建立合适的索引
3.使用合适的存储引擎
4.在JOIN中,尽量用小表LEFT JOIN 大表
推荐阅读
- 胎菊泡水喝的五大禁忌,胎菊泡水喝的大禁忌
- 金骏眉红茶礼盒价格,金骏眉红茶的副作用
- 如何在 Mac、iphone 中快速清除已完成的提醒?
- 如何正确使用,如何正确的使用决明子
- 什么颜色的杜鹃花最名贵,杜鹃花有什么寓意
- 音箱前倒相与后倒相的优点和缺点
- 适合发朋友圈的冷酷文案有哪些?
- “双喜临门”是我国哪个省市的名字?
- 世界百米纪录排名是怎样的?
- 智能插座的大表哥:向日葵智能插线板P1拆解小测