MySQL零基础入门(四)

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: MySQL零基础入门(四)


博客简介:

MySQL专栏:MySQL零基础入门

博客主页:程序员飞鸟

哈喽,我是飞鸟,欢迎阅读,如果文章对你有帮助,点赞关注支持一下!🧡🧡🧡


文章目录


select语句

group by语句分组和having过滤

#增强group by的使用
#(1)显示每种岗位的雇员总数、平均工资
select count(*),avg(sal),job
       from emp
       group by job;
select count(*),count(comm)
       from emp;

字符串函数

#转换成大写
select ucase(list_name) from table_name;
#转换成小写
select lcase(list_name) from table_name;
#从str的position开始【从1开始计算】,取length个字符
select substring(list_name,1,2) from table_name;
#去除前端空格或后端空格
#去除左边空格
select ltrim('  list_name') from dual;
#去除右边空格
select rtrim('list_name  ') from dual;
#去除两边空格
select trim('  list_name  ') from dual;
#从str的position开始【从1开始计算】
substring(list_name,2)
#以首字母小写的方式显示所有员工<表名>的姓名
#先取出姓名的第一个字符,转成小写的
#把他和后面的字符串进行拼接输出
select concat(lcase(substring(list_name,1,1)), substring(list_name,2)) as new_name;


数学相关函数

#数学相关函数
#abs(number) 绝对值
select abs(-10) from dual;
#bin(decimal_number) 十进制转二进制
select bin(10) from dual;
#ceiling(number2) 向上取整,得到比number2的最小整数
select ceiling(1.1) from dual;
#conv(number2,from_base,to_base)  进制转换
select conv(9,10,2) from dual;
#floor(number2) 向下取整,得到比num2小的最大整数
select floor(1.2) from dual;
#format(number,decimal_places) 保留小数点(四舍五入),保留小数点后几位数
select format(45,23454,2) from dual;
#least(number,number2 [,...]) 求最小值
select least(0,1,4,-20,3) from dual;
#mod(numerator,denominator)  求余数
select mod(10,3) from dual;
#rand([seed]) rand([seed]) 返回随机数 其范围 0< v<1.0
#如果使用read() 每次返回不同的随机数,在0< v<1.0
#如果使用read(seed) 返回随机数,范围0< v<1.0,如果seed不变,该随机数也不变了。
select rand() from dual; 


时间日期相关函数


查询结果:

//创建空表
create table mes(
          id int,
          content varchar(30),
          send_time datetime
);
//查询表
select * from mes;
//插入数据到表中
insert into mes
          values(1,'北京新闻',current_timestamp());
 insert into mes
         values(2,'上海新闻',now());
 insert into mes
         values(3,'广州新闻',now());
 select now() from mes;
 //显示所有新闻信息,发布日期只显示日期,不显示时间
 select id,content,date(send_time)
           from mes;
//查询在10分钟内发布的新闻
select * from mes
          where date_add(send_time,interval 10 minute) >= now()
//在mysql的sql语句中求出2011-11-11和1990-2-2相差多少天
select datediff('2011-11-11','1990-02-02') from dual;
//查询date减去一个时间
select * from mes
         where send_time >= date_sub(now(),interval 40 minute);
//mysql的sql语句中求出你活了多少天?1998-06-18 出生
select datediff(now(),'1998-06-18') from dual;
//如果你能活80岁,求出你还能活多少天。1998-06-18 出生
//先求出活80岁时,是什么日期x
//然后再使用datediff(x,now());
select date_add('1998-06-18',interval 80 year),now()
      from dual;
select datediff(date_add('1998-06-18',interval 80 year),now())
      from dual;
select timediff('10:11:11','06:23:24') from dual;
//year|month|day|date(datetime)
select year(now()) from dual;
select month(now()) from dual;
select month('2013-11-10') from dual;
//UNIX_TIMESTAMP():返回的是1970-1-1到现在的秒数
select unix_timestamp() from dual;
//from_unixtime():可以把一个unix_timestamp秒数,转成指定格式的日期
select from_unixtime(1637990647,'%Y-%m-%d') from dual;
select from_unixtime(1637990647,'%Y-%m-%d %H:%i:%s') from dual;
//意义:使用int保存一个Unix时间戳,然后使用from_unixtime()进行转换,还是非常有实用价值的


秒数时间返回


查询结果


加密和系统函数

//加密函数和系统函数
//user() 查询用户
//可以查看登录到mysql的有哪些用户,以及登录的IP
select user() from dual;//用户@IP地址
//database() 查询当前使用数据库名称
select database() from dual;
//用户表存放密码时,是md5
create table hsp_user
          (id int,
          `name` varchar(32)not null default '',
          pwd char(32) not null default '');
select * from hsp_user;
insert into hsp_user
            values(100,'韩顺平',md5('hsp'));
select * from hsp_user  //sql
           where `name`='韩顺平' and pwd = md5('hsp')
//password(str) 
//加密函数,mysql数据库的用户密码就是password函数加密
select password('hsp')  from dual;
//
//select * from mysql.user\G 从原文密码str计算并返回密码字符串
//通常用于对mysql数据库的用户密码加密
//mysql.user 表示 数据库.表
select * from mysql.user


流程控制语句

//流程控制语句
#if(expr1,expr2,expr3) 如果expr1为true,则返回expr2否则返回expr3
select if(true,'北京','上海') from dual;
select ifnull(null,'hsp') from dual;
select case
       when true then 'jack'
       when false then 'tom'
       else 'mary' end
#1.查询emp表,如果comm是null,则显示0.0
# 老师说明,判断是否为null要使用is null,判断不为空 使用is not
select ename,if(comm is null,0.0,comm)
         from emp;
select * from mes;


mysql表查询–加强

select * from table_name
        order by 部门号 asc,sal desc;

欢迎大佬们投稿,优质文章我会加精,每天晚上11点我会给大佬们一键三连,诚邀大佬们加入社区,共同学习,一起努力💛💛

点击---->https://bbs.csdn.net/forums/TuRing


相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
4月前
|
存储 监控 关系型数据库
MySQL进阶(一)
MySQL进阶(一)
27 0
|
4月前
|
存储 安全 关系型数据库
MySQL进阶(二)
MySQL进阶(二)
26 0
|
存储 SQL 数据库
132.【MySQL_进阶】(八)
132.【MySQL_进阶】
86 0
|
SQL 关系型数据库 MySQL
132.【MySQL_进阶】(九)
132.【MySQL_进阶】
106 0
|
存储 SQL 关系型数据库
132.【MySQL_进阶】(四)
132.【MySQL_进阶】
62 0
|
11月前
|
存储 SQL 关系型数据库
MySQL进阶教程汇总
MySQL进阶教程汇总
102 0
|
SQL 关系型数据库 MySQL
132.【MySQL_进阶】(五)
132.【MySQL_进阶】
121 0
|
SQL 关系型数据库 MySQL
132.【MySQL_进阶】(三)
132.【MySQL_进阶】
78 0
|
存储 SQL 关系型数据库
132.【MySQL_进阶】(一)
132.【MySQL_进阶】
59 0
|
存储 SQL 关系型数据库
132.【MySQL_进阶】(六)
132.【MySQL_进阶】
105 0