MySQL代码笔记2

本文详细介绍了MySQL中的数据查询操作,包括选择查询特定列、全列查询、列的运算与别名设置、去除重复数据、排序查询、条件查询(如使用AND、OR、NOT及区间判断)、模糊查询、CASE分支结构、时间函数、字符串操作以及聚合函数的应用。此外,还讲解了分组查询、分组过滤查询和限定查询(用于分页)的概念和用法,帮助读者深入理解MySQL的数据处理能力。
摘要由CSDN通过智能技术生成

MySQL笔记2

数据查询

–select 指定查询的列
–from 指定查询的表
–查询部分列
select id,name from test;
–查询所有列

  1. select * from test;
  2. 使用列名:select id, name, emaiil from test;
    生产环境下,优先使用列名查询,*的方式效率低,可读性差

–对列中的数据进行运算
加减乘除一致,但%是占位符,不是模运算符

–列的别名
select id,name,salary*12 as ‘年薪’ from test;

–查询结果去重用distinct
select distinct manager_id from test;

排序查询

语法:select 列名 from 表名 order by 排序列【排序规则】
ASC:升序 desc:降序
–依据单列进行排序
select id,salary from test order by salary DESC;
–依据多列排序: 薪资相同时,按编号升序排列
select id,name,salary from test oeder by salary desc,id ASC;

条件查询

语法:select 列名 from 表名 WHERE 条件;WHERE是布尔表达式

–与JAVA不同,两值相等是=

–逻辑判断:and,or,not

–不等值判断:常规,不等于:!=,<>

–区间判断(between and)且是闭区间,前小值后大值

–查询NULL值(is null, is not null)
select id,name
from test
where manager_id is null;

–枚举查询 (in (值1,值2,值3))
select…
from…
where department_id in(70,80,90);

–模糊查询
语法:like_(单个任意字符) eg: 列名 Like ‘里_’
%(任意长度的字符) eg: 列名 Like ‘里%’

–分支结构查询
语法:
case
when 条件1 then 结果1
when 条件2 then 结果2
when 条件3 then 结果3
else 结果
end

时间查询

语法:select 时间函数([参数列表])
| 时间函数 |描述 |
|sysdate()|当前系统时间|
| curdate() |当前日期 |
| week(date) |获取指定日期为一年的第几周 |
|curtime()|获取当前时间|
| datadiff(data1,data2) |获取相隔的天数 |
adddata(data,n)|计算data加上n天后的日期

字符串查询

–多个字符串拼接
select concat(‘my’,‘dog’,‘play’);

–将str中指定pos位置开始len长度的内容替换为newstr
select insert(str,pos,len,newstr);

–大小写转换
lower(str)
upper(str)

–将str字符串指定num位置开始截取len个内容
substring(str,num,len)
与JAVA不同,mysql下标从1开始

聚合函数

对列做操作
sum()所有行中单列结果总和
avg()
max()
min()
count() 求总行数
聚合函数会自动忽略null值,不进行统计

分组查询

语法:select 列名 from 表名 where 条件 group by 分组依据(列)
分组依据必须在where之后生效

–查询各部门总人数:
按照部门编号进行分组(分组依据是department_id)
再针对各部门的人数进行统计(count)
select department_id, count(id)
from test
group by department_id;

–查询各个部门,各个岗位的总人数
select department_id,job_id, count(id)
from test
group by department_id,job_id;
分组查询中,select显示的列只能是分组依据列或者聚合函数列,不能出现其他列

–分组过滤查询
select 列名 from 表名 where 条件 group by 分组列 having 过滤规则

–统计68,78,98部门的最高工资
确定分组依据(department_id)
对分组后的数据,过滤出部门编号为68,78,98信息
max()函数处理
select department_id,max(salary)
from test
group by department_id
having department_id in (68,78,98);

限定查询(用于分页)

语法:select 列名 from 表名 limit 起始行, 查询行数;
查询行时,下标是从0开始

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值