数据库优化---MySQL查询

1. 基本查询

select基础语法:select * from 表名;
select完整语法:select 去重选项 字段列表 [as 字段别名] from 数据源 [where子句] [group by 子句] [having 子句] [order by 子句] [limit 子句];

查询所有字段:select * from 表名;

查询指定字段:select 字段1,字段2,… from 表名;

使用as给字段起别名:select 字段1 as 别名1,字段2 as 别名2,… from 表名;

使用as给表起别名:select * from 表名 as 别名;

2. 条件查询

比较运算符
select * from 表名 where 条件;

  • >:大于
  • <:小于
  • >=:大于等于
  • <=:小于等于
  • !=或<>:不等于

逻辑运算符
select * from 表名 where 条件;

  • and:逻辑和
  • or:逻辑或
  • not:逻辑非

模糊查询
select * from 表名 where 字段 like ‘…’;

  • %:替换任意多个或零个字符
  • _:替换任意一个字符

范围查询
select * from 表名 where 条件;

  • in:表示在一个非连续的范围内
  • not in:表示不在一个非连续的范围内
  • between … and …:表示在一个连续的范围内
  • not between … and …:表示不在一个连续的范围内

空判断
select * from 表名 where 条件;

  • is null:判空,不能用 =null

3. 聚合函数

总数:count()
select count(*) from 表名;

最大值:max()
select max(目标字段) from 表名;

最小值:min()
select min(目标字段) from 表名;

求和:sum()
select sum(目标字段) from 表名;

平均值:avg()
select avg(目标字段) from 表名;

四舍五入:round(…,…)
round(12.34,1) = 12.3

4. 分组

group by:按需求字段进行分组
select … from 表名 group by 字段;

group_concat():查看组内的信息
select …,group_concat(目标字段) from 表名 group by 字段;

having:分组后筛选
select … from 表名 group by … having…;

5. 排序

order by 字段 asc:从小到大排序,默认
select * from 表名 order by 字段 asc;

order by 字段 desc:从大到小排序
select * from 表名 order by 字段 desc;

order by 对个字段:先对前面的字段排序,再在这个基础上对后面的字段排序

6. 分页

限制查询出来的数据个数

limit start, count:起始位置(默认从0开始),查询数据个数
select * from 表名 limit start,count;

注意:limit子句要写在语句的最后

7. 连接查询

内连接:inner join … on …
select a.*,b.字段 from 表A as a inner join 表B as b on 条件(a.id = b.id);

左连接:left join … on …
select a.*,b.字段 from 表A as a left join 表B as b on 条件(a.id = b.id);

右连接:right join … on …
select a.*,b.字段 from 表A as a right join 表B as b on 条件(a.id = b.id);

8. 子查询

就是select语句里面嵌套一个select语句

子查询
举例:查询最高的男生信息
select * from students where height = (select max(height) from students where gender=‘男’) and gender=‘男’;

列级子查询
举例:查询学生的班级号能够对应的学生信息
select * from students where cls_id in (select id from classes);

9. 自关联

自关联是一种思想。来想一个问题,省市县在三张表上我们容易想到用外键的方法将省市县联系在一起,那么,如果省市县在一张表上面,我们怎样将他们关联起来呢?这里便用到了自关联,就是在这一张表上将省市县分级,给每个市一个pid,给每个县一个sid,你们分别存着上一级的id,这样就可以实现了。这样也可以使一行查询代码更好地复用。

举例:select * from table as p inner join table as c on c.pid = p.id having p.name = ‘…’;

10. 小结

这些知识点主要是关于数据库的查询,没有别的技巧,都要靠自己去记,去敲,熟能生巧,加油!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值