mysql学习(二)——基础:查询相关内容
数据库90%的工作都在做查询,所以需要重点掌握。
查询
select 字段名 from 表名 as 别名;
如select name from student as n;
select * from student;
-
distinct去重复
如select distinct gender from student;
上例结果只有两个。
但如果是 select distinct id,gender from student;
结果的个数则为 id的个数,因为两个字段都一样才算同一条记录。 -
where 满足条件的行显示,不满足的行不显示
如查询id大于3的学生姓名
select name from student where id>3; -
and or 逻辑运算符
如查询id大于3且未被删除的学生姓名
select name from student where id>3 and is_delete=0; -
like 模糊查询
%表示任意多个字符
-表示任意一个字符
如查询姓李的学生姓名
select name from student where name like ‘李%’;
查询姓李且名为一个字的学生
select * from student where name like ‘李_’; -
in 或 between…and…范围查询
in查询在一个非连续范围内的记录
如查询id为1,3,4的学生
select * from student where id in(1,3,4)
between…and…查询在一个范围内的记录
如查询id在3到8的记录
select * from student where id between 3 and 8 -
聚合函数
原始结果得不到,只能得到对查询结果的聚合结果。常用的有5个。
count(*)
max(列)和min(列)
sum(列)
avg(列) 默认保留5位小数 -
group by 分组
按照字段分组,表示此字段相同的数据会被放到同一个组中
分组后,只能查询出相同的数据列,对于有差异的数据列无法出现在结果集中
可以对分组后的数据进行统计,做聚合运算 -
having 筛选
与where有点相似,但面向的数据集不同。
原始集->where->一次结果集->分组->二次结果集->having->最终结果
即where面向最原始的数据,而having必须要在使用group by 的情况下才能使用。 -
order by 排序
asc 升序,即从小到大,desc 降序,从大到小,默认是升序
select * from student order by score desc;
按某一字段排序时,可能出现值相同的情况,可以再指定多个字段排序
select * from student order by score , id desc; -
limit 分页
当数据量过大时,一次性获得所有数据对数据库本身造成较大的负荷,对数据获得者来说也不一定有利
select 字段名 from 表名 limit start,count
其中 start表示从第几个开始,count表示获得几个。 -
join 连接查询
当要查询的内容来源于多张表时,需要利用join将多个表连接成一张大表,常用的有inner join、left join 、right join。
inner join 相当于取两张表的交集,显示两张表都有的记录。
left join 取join 关键字按左边的表有的全部显示,右表中如果没有的话显示NULL。
right join 取join关键字右边的表有的全部显示,左表中如果没有的话显示NULL。
例scores表中的学生stu_id字段外键为students表中的id,现查询学生姓名、科目和对应成绩
SELECT students.name, scores.subject, scores.score
FROM student
INNER JOIN score ON score.id = student.stu_id -
子查询
查询语句的嵌套,将一条查询语句的结果作为条件给另一条查询语句。
一条查询语句各关键字顺序如下:
select <distinct> 字段1,字段2
from 表1
inner join 表2 on 表1某字段=表2某字段
where 条件
group by 字段名 having 条件
order by 字段名 asc/desc
limit 起始序号,每页个数
;
- mysql 学习---->字符串、数值处理、日期、查询的逻辑处理、系统相关内容查询、IP地址相关、密码
- mysql 学习记录(五)--字符串、数值处理、日期、查询的逻辑处理、系统相关内容查询、IP地址相关、密码
- MySQL的子查询及相关优化学习教程
- MYSQL之DQL语言的基础查询学习
- Java 基础知识学习笔记——继承相关内容
- mysql之sql语句-数据库、表内容相关的基础操作
- 零基础学习java日记第二十一天 MySQL查询 聚合函数 备份与恢复数据库
- MySQL学习-0|基础架构:一条SQL查询语句是如何执行的?
- MySQL基础学习之数据查询
- MySQL 基础知识梳理学习(三)----InnoDB日志相关的几个要点
- MySQL的子查询及相关优化学习教程
- MySQL学习笔记(二)_基础查询
- 数据库学习2:MySQL 基础 (一)- 查询语句
- MySQL中表子查询与关联子查询的基础学习教程
- MySQL中表子查询与关联子查询的基础学习教程
- 【学习笔记】mysql查询执行的基础
- 44.笔记 MySQL学习——相关子查询
- MySQL 基础架构 1. 一条SQL查询语句的执行过程(个人学习笔记)
- MySQL基础学习知识点和重点(二)初级查询和事务
- MySQL学习 || 任务1&任务2 软件安装、数据库基础及查询语句