MySQL常用函数、关键字解析。

目录

  • 引言
    • 一、数据库简介:
    • 二、SQL语句:
    • 三、MySQL常用函数:
    • 数学函数:
    • 日期函数:
    • MySQL其他命令:
    • 四、Navicat快捷键:

引言

暂时只想起来这些,有需要补充的或者文章内出现的错误欢迎指正(评论 or 私信)。
请努力提升自己!
划重点 点击下面连接,直接查看我的日常笔记,比csdn更新快,内容更丰富。
不断更新完善的笔记

一、数据库简介:

1、数据库常见的概念:
DB:数据库,存储数据的容器。
DBMS:数据库管理系统,又称为数据库软件或数据库管理产品,用于创建或管理DB。
SQL:结构化查询语言,数据库通信语言。不是某个数据库软件独有的,而是主流数据库软件之间通用的语言。
2、数据库存储数据的特点。
数据先存储到表中,在存储到数据库中。
一个数据库中可以有多个表,每张表都有唯一的表明来标识自己。
一个表中可以有一个或者多个列,列又称为“字段”,相当于JavaBean中的属性。
表中的每一行数据都相当于Java中的一个对象(一行数据就是一个对象)。

二、SQL语句:

1、模糊查询通配符%。
%代表一个或者多个字符。
like不仅仅限于字符型,在数值型也一样通用。
实列:查找last_name 包含a的员工。

select * from employees where last_name like '%a%';

2、模糊查询通配符_。
_代表一个字符。
实列:查找last_name 第二个字符为a,第五个字符为b的员工。

select * from employees where last_name like '_a__b%';

3、MySQL转义符 \ 。
MySQL中 \ 代表转义符。
实列:查找last_name 第二个字符为下划线 _ 的员工。

select * from employees where last_name like '_\_%';

4、MySQL自定义转义符。
ESCAPE 关键字可实现自定义转义符。
实列:自定义转义符。

select * from employees where last_name like '_$_%' ESCAPE '$';

5、Between and 关键字。
Between and 代表查找某个到某个范围的关键字。
实例:查询年龄在20岁到30岁之间的员工(不包含20岁和30岁)。

select * from employees where age between 21 and 29;

Between and 关键字注意事项:
使用Between and 可以提高语句的简洁度。
两个临界值不能调换顺序。
可理解为:and 前面是起点,and 后面为终点。
两个临界值的数据类型必须一致。
同理使用逻辑运算符也可以做到。
实例:查询年龄在20岁到30岁之间的员工(不包含20岁和30岁)。

select * from employees where age > 20 and age < 30;

拓展:not between and 关键字 指不在某个范围区间的数据。
6、in关键字。
in关键字作用:判断某字段的值是否属于in列表中的值相等。
实列:查找岗位为前端、UI美工、JAVA开发的员工的所有信息。

select * from employees where operating_post in ('前端', 'UI美工', 'JAVA开发');

in关键字使用注意事项:
in关键字的功能 or关键字也能实现,使用in关键字代码简洁度高。
in关键字列表中的值数据类型必须一致或者兼容(隐式转换)。
7、is null 关键字。
is null 判断某一段的值是否为null,为null则展示 is not null 则反之。
实例:查询没有奖金的员工的所有信息。

select * from employees where bonus IS NULL;

8、is not null 关键字。
is not null 关键字判断某一字段的值是否不为空。
实例:查询没有奖金的员工的所有信息。

select * from employees where bonus IS NOT NULL;

9、order by 关键字:
作用:排序。
order by 关键字 默认排序方式为从高到低
DESC:从高到低
ASC:从低到高 (默认)

#asc 从高到低
select * from employess where salary != 0 order by salary desc;
#asc 从低到高
select * from employess where salary != 0 order by salary asc;

order by 按表达式排序:

select last_name, salary*12 as 年薪, salary as 月薪
from employess order by salary*12 desc;

order by 按字段别名排序:
注意:不要使用单引号括起来别名:‘字段别名’,会引起排序出错。

select last_name, salary*12 as 年薪, salary as 月薪
from employess order by 年薪 desc;

order by 按函数排序:

select length(last_name) as 字节长度, last_name 
from employess order by 字节长度;

order by 多个字段排序:
先按第个order by 的字段排序,然后再按照第二个,以此类推。

select * from employess order by bonus desc, id asc;

三、MySQL常用函数:

常用函数:
1、concat函数:
功能:拼接字符。

select concat('字符1','字符2','字符3');

实例:字符串拼接。

select concat(last_name,'的奖金为:',bonus) from employess;

2、ifnull函数:
功能:判断字段是否有值,有值则显示本身的值,为null则显示null或者自己指定的字符或者数值。
#字符类型

select IFNULL(bonus,'a') as 奖金 from employess;

#数值类型

select IFNULL(bonus,0) as 奖金 from employess;

3、isnull函数:
功能:判断字段是否有值,有值返回0,为null返回1(类似boolean类型,0为true,1为false)。

select bonus,ISNULL(bonus) as 'isnull_函数'  from employess;

4、大小写转换函数:
upper函数:
upper将字符转换为大写。
如果本身就是大写则不变,小写就被转换为大写。
lower函数:
lower将字符转换为小写。
如果本身就是小写则不变,大写就被转换为小写。
5、length函数:
作用:返回字符的字节长度(在字符编码为UTF-8时,一个汉字返回3个字节。其它字符编码集中,一个汉字返回2个字节)。
查询last_name 字段值的字节长度。

select length(last_name) from employess;

查询 ‘abc’ 的字节长度:

select length('abc');

6、substr函数:
作用:截取字符。
MySQL的索引从1开始。
第一个参数为要截取的字符,第二个参数为从那个位置开始。

select substr('最美的烟火总是最先坠落',10);

第一个参数为要截取的字符,第二个参数为从那个位置开始,第三个参数限制截取的长度。

select substr('最美的烟火总是最先坠落',4,2);

7、instr函数:
作用:返回子串第一次出现的索引位置。
如果存在返回索引位置,不存在则返回0。
参数一为字符,参数二为子串。

select instr('最美的烟火总是最先坠落','烟火') as 索引位置;

8、trim函数:
作用:去除字符首尾的空格。
原始字符长度为:22

select length('     独孤求败     ') as 原始字符长度;

去除首尾空格后长度为:12

select length(trim('     独孤求败     ')) as 去除空格后的长度;

trim函数去除首尾位置的指定字符:

select trim('a' from '东邪西毒aaa');

9、lpad函数:
作用:lpad为左填充。
参数一为要填充的字符,参数二填充后索引长度,参数三为使用什么进行填充。
如果第二个参数你给出的长度果断,lpad函数会截断字符串,只显示靠前索引位置的字符。

select lpad('武夷山大红袍',10,'*'); //****武夷山大红袍

10、rpad函数:
作用:lpad为右填充。
参数一为要填充的字符,参数二填充后索引长度,参数三为使用什么进行填充。
如果第二个参数你给出的长度果断,lpad函数会截断字符串,只显示靠前索引位置的字符。

select lpad('武夷山大红袍',10,'*'); //武夷山大红袍****

11、replace替换函数:
作用:替换指定字符。

select replace('勿忘国耻,我辈自强','我','吾') as 振兴中华; //勿忘国耻,吾辈自强

12、if函数:
作用:流程控制函数,相当于Java中的if

select if(10>5,'大','小') as 流程控制函数;

实例:查找有奖金的员工信息。

select last_name, bonus, if(bonus is not null,'有奖金','无奖金')from employess;

13、case when表达式:
查询员工名字、月薪、岗位编号。将岗位编号为1的月薪提高1.4倍,将岗位编号为2的月薪提高1.6倍,将岗位编号为3的月薪提高1.5倍,其他岗位编号月薪提高1.3倍。

select last_name, salary,department_id as 原始工资, 
case department_id  
when 1 then salary*1.4
when 2 then salary*1.6
when 3 then salary*1.5
else salary*1.3
end as 调整后的薪资 from employess;

case when 第二种使用方式:

select last_name, salary,department_id as 原始工资, 
case   
when department_id = 1 then salary*1.4
when department_id = 2 then salary*1.6
when department_id = 3 then salary*1.5
else salary*1.3
end as 调整后的薪资 from employess;

数学函数:

1、round 函数:
作用:四舍五入,取整函数。

select round(1.65) as 四舍五入; //2

保留两位小数:

select round(1.657,2) as 四舍五入; //

2、ceil函数:
作用:向上取整。

select ceil(1.02); //2

3、floor函数:
作用:向下取整。

select floor(9.99); //9

4、truncate函数:
作用:截断函数(该函数不会进行四舍五入运算)。
参数一为要截断的数值,参数二为保留几位小数。

select truncate(3.666666,2) as 保留两位小数; //3.66

5、mod函数:
作用:取余数的函数,和%的作用一样(%也是取余数)。

select mod(10,3); //1
//计算公式为 a-a/b*b

日期函数:

日期格式符:

序号格式符功能
1%Y四位的年份
2%y二位的年份
3%m月份 0-11
4%c月份 1-12
5%d日期0-31
6%H小时(24小时制)
7%h小时(12小时制)
8%i分钟00-59
9%s秒00-59

1、now函数。
作用:返回当前时间

select now(); //2020-10-04 21:55:14

2、curdate函数。
作用:返回当前日期/不带时间

select curdate(); //2020-10-04

3、curtime函数。
作用:返回当前时间/不带日期

select curtime(); //21:54:55

4、year函数:
作用:只返回年份的时间。
实例:查询员工表中员工的入职时间,只显示年份。

select year(birthday) as 入职时间 from employess;

5、month函数:
作用:返回月份。

select month(now()); //返回阿拉伯数字
select monthname(now()); //返回英文月份

6、str_to_date函数:
作用:将指定字符转换为指定的日期格式。
实例:查询入职时间为2020-9-1的员工的所有信息。

select * from employess where birthday = str_to_date('2020-9-1', '%Y-%c-%d');

将特殊格式字符转换为日期类型:

select * from employess where birthday = str_to_date('9-1-2020', '%c-%d-%Y');

7、date_format函数:
作用:将指定的日期转换为字符

select date_format('2020/10/10', '%Y年%c月%d日'); //2020年10月10日

MySQL其他命令:

1、查看当前数据库:
select database();

2、查看所有数据库:
show databases;

3、查看当前用户:
select user();

4、查看当前MySQL的版本:
select version();

四、Navicat快捷键:

1,Ctrl+q就会弹出一个sql输入窗口
2,Ctrl+r就执行sql了
3,按f6会弹出一个命令窗口
4,Ctrl+/ 注释
5,Ctrl +Shift+/ 解除注释
6,Ctrl+R 运行选中的SQL语句
7,Ctrl+Shift+R 只运行选中的sql语句
8,Ctrl+L 删除选中行内容
9,Ctrl+D 表的数据显示显示页面切换到表的结构设计页面,但是在查询页面写sql时是复制当前行并粘贴到下一行
10,Ctrl+N 打开一个新的查询窗口
11,Ctrl+W 关闭当前查询窗口
12,鼠标三击选择当前行



本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部