5 mySQL(DQL数据查询:select)

在这里插入图片描述

from join on
where
group by
having
select distinct ⭐️
order by
limit

(一)合并处理,对象的值:分组函数

计算表内非空总行数

方式函数名代码
方式1(推荐)计算表内非空总行数select count(*) from 表
方式2(不推荐)计算表内非空总行数select count(“常量”) from 表

(二)单条处理,对象的值:(普通字段,系统函数,自定义函数)

普通字段

select代码
常量100,跟日期一样,占一位
单个字段select 字段
多个字段select 字段,字段
全部字段select *

自定义函数:mysql高级讲,应该很有用对字段统一处理,后期看
系统函数

  1. sql中的函数都有返回值
  2. 参数与返回值一对一的
  3. sql索引从1开始
  4. sql语句中,加号➕只做加法运算,没有拼接的概念
  5. null+数字=null,字符型+数字=0+数字,null+任何=null

(1)字符函数

名称代码返回值解释
拼接字符concat(字符1,字符2,字段1,字段2)字符1字符2字段1字段2数据拼接在了一起
转化nullif null(可能是null的字段,“自定义字”)参数2如果参数1为null,则转化为参数2
获取字节长度lenght(字段/字符)字节个数一个汉字3个字节
获取字符长度char_lenght(字段/字符)字符个数一个汉字1个字符
截取字符串substr(字段/字符,截取的开始的索引,截取的长度)截取的字符串
从左侧截取字符串left(字段/字符,截取的长度)截取的字符串
从右侧截取字符串right(字段/字符,截取的长度)截取的字符串
获取字符第一次出现的索引instr(字段1/字符串1,字段2/字符串2)1里面包含2的第一次索引
去前后空格trim(字符/字段)没有前后空格的字符/字段
去除字段最前,最后的指定字符trim(“指定字符” from 字符/字段)没有前后特殊字段的字符/字段
从左开始填充字符lpad(字符/字段,要占满的字符长度,填充内容)xxxxxx字段主要看要求的字符长度,如果写个1会把字段隐藏一部分
从右开始填充字符rpad(字符/字段,要占满的字符长度,填充内容)字段xxxxxx主要看要求的字符长度,如果写个1会把字段隐藏一部分
将字母变成大写upper(字符/字段)大写内容
将字母变成小写lower(字符/字段)小写内容
比较两个字符大小strcmp(字符1,字符2)字符1大:1,字符1小:-1,相等:026个英文字母,b的字符比a大

(2)数学函数

名称代码返回值解释
字段直接运算select 100%3;每个对象的值%3
绝对值ABS(字段/数字)正数
向上取整数cell(字段/数字)整数
向下取整数floor(字段/数字)整数
四舍五入round(字段/数字,2)小数四舍五入,参数2的2是保留两位小数的意思
截断truncate(字段/数字,2)小数截断小数点后位数
取余mod(数字1,数字2)余数= 数字1%数字2

(2)日期+时间 函数 :

名称代码返回值解释
获取当前日期+时间now(空)当前的日期+时间跟常量一样占一位
获取当前日期curdate()当前的日期
获取当前时间curtime()当前的时间
计算两个日期之间的天数datediff(1998-01-02”,1998-02-02”)日期1-日期2的天数
日期转化成自定义格式字符串date_format(“2020-01-02”,“%y年%m月%d日%h小时”%i分钟%s秒)转换后的格式需要前后对应一致
自定义格式字符串转化成日期str_to_date(自定义格式,%m/%d %y“2020-01-02”参数2与参数1对应的,连空格都需要保持一致的格式
将日期中的年提取出来year(字段)
将日期中的月提取出来month(字段)

(三)更改处理,对象的值:流程控制

if结构:判断true/false

//判断字段1是true,对象值输出固定值1/固定值2
if(字段1>"2",固定值1,固定值2

多重if-else结构:sql语句中没有if-else,用case,when替代

//判断多重条件,输出结果
case 
when 条件1 then 结果1
when 条件2 then 结果2
...
else 结果n
end

case结构:等值判断,例如switch case

//判断多重条件,输出结果
case 字段x
when x的值1 then 结果1
when x的值2 then 结果2
...
else 结果n
end

(四)去重数据,和上面所有内容都可配合

select distincy 字段  from 表名;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值