MySQL基础(SQL 字符串函数 数值函数 日期函数 流程函数)

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 1.Mysql下载安装启动2.图形化界面工具3.SQL1.DDL2.DML3.DQL4.DCL1.管理用户2.权限控制4.函数字符串函数数值函数日期函数流程函数

1.Mysql下载安装启动


Mysql下载安装启动





2.图形化界面工具


图形化界面工具


3.SQL

1.DDL

1.DDL


2.DML


2022最新超详MySQL基础(mysql下载,界面工具,增删改查)_一个热爱编程的小白白的博客-CSDN博客


3.DQL


2022最新超详MySQL基础(mysql下载,界面工具,增删改查)_一个热爱编程的小白白的博客-CSDN博客


4.DCL


DCL英文全称是 Data Control Language(数据控制语言),用来管理数据库用户、控制数据库的访


问权限



1.管理用户


1). 查询用户


select * from mysql.user;

查询的结果如下:



其中 Host代表当前用户访问的主机, 如果为localhost, 仅代表只能够在当前本机访问,是不可以


远程访问的。 User代表的是访问该数据库的用户名。在MySQL中需要通过Host和User来唯一标识一 个用户。


2). 创建用户


CREATE USER '用户名'@'主机名' IDENTIFIED BY '密码';

3). 修改用户密码


ALTER USER '用户名'@'主机名' IDENTIFIED WITH mysql_native_password BY '新密码' ; 1

4). 删除用户


DROP USER '用户名'@'主机名' ; 1

注意事项:


• 在MySQL中需要通过用户名@主机名的方式,来唯一标识一个用户。


• 主机名可以使用 % 通配。


• 这类SQL开发人员操作的比较少,主要是DBA( Database Administrator 数据库 管理员使用


案例:


A. 创建用户itcast, 只能够在当前主机localhost访问, 密码123456;


create user 'itcast'@'localhost' identified by '123456';

B. 创建用户heima, 可以在任意主机访问该数据库, 密码123456;


create user 'heima'@'%' identified by '123456';

C. 修改用户heima的访问密码为1234;


alter user 'heima'@'%' identified with mysql_native_password by '1234';

D. 删除 itcast@localhost 用户


drop user 'itcast'@'localhost';

2.权限控制


MySQL中定义了很多种权限,但是常用的就以下几种:




上述只是简单罗列了常见的几种权限描述,其他权限描述及含义,可以直接参考 官方文档。


1). 查询权限


SHOW GRANTS FOR '用户名'@'主机名' ;

2). 授予权限


GRANT 权限列表 ON 数据库名.表名 TO '用户名'@'主机名';

3). 撤销权限


REVOKE 权限列表 ON 数据库名.表名 FROM '用户名'@'主机名';

注意事项:


• 多个权限之间,使用逗号分隔

• 授权时, 数据库名和表名可以使用 * 进行通配,代表所有

案例:


A. 查询 'heima'@'%' 用户的权限


show grants for 'heima'@'%';

B. 授予 'heima'@'%' 用户itcast数据库所有表的所有操作权限


grant all on itcast.* to 'heima'@'%';

C. 撤销 'heima'@'%' 用户的itcast数据库的所有权限


revoke all on itcast.* from 'heima'@'%';

4.函数


函数 是指一段可以直接被另一段程序调用的程序或代码。 也就意味着,这一段程序或代码在MySQL中 已经给我们提供了,我们要做的就是在合适的业务场景调用对应的函数完成对应的业务需求即可。 那么,函数到底在哪儿使用呢?


我们先来看两个场景:


1). 在企业的OA或其他的人力系统中,经常会提供的有这样一个功能,每一个员工登录上来之后都能


够看到当前员工入职的天数。 而在数据库中,存储的都是入职日期,如 2000-11-12,那如果快速计


算出天数呢?


2). 在做报表这类的业务需求中,我们要展示出学员的分数等级分布。而在数据库中,存储的是学生的


分数值,如98/75,如何快速判定分数的等级呢?


其实,上述的这一类的需求呢,我们通过MySQL中的函数都可以很方便的实现 。


MySQL中的函数主要分为以下四类: 字符串函数、数值函数、日期函数、流程函数。

字符串函数


MySQL中内置了很多字符串函数,常用的几个如下:


演示如下:


A. concat : 字符串拼接


select concat('Hello' , ' MySQL');


B. lower : 全部转小写

select lower('Hello');


C. upper : 全部转大写

select upper('Hello');


D. lpad : 左填充

select lpad('01', 5, '-'); 1


E. rpad : 右填充

select rpad('01', 5, '-');


F. trim : 去除空格(去除首尾空格)

select trim(' Hello MySQL ');


G. substring : 截取子字符串

select substring('Hello MySQL',1,5);


案例:



由于业务需求变更,企业员工的工号,统一为5位数,目前不足5位数的全部在前面补0。比如: 1号员工的工号应该为00001。


update emp set workno = lpad(workno, 5, '0')

处理完毕后, 具体的数据为:



数值函数


常见的数值函数如下:



演示如下:


A. ceil:向上取整

select ceil(1.1);


B. floor:向下取整

select floor(1.9); 1


C. mod:取模

select mod(7,4);


D. rand:获取随机数

select rand();


E. round:四舍五入

select round(2.344,2);


案例:

通过数据库的函数,生成一个六位数的随机验证码。


思路: 获取随机数可以通过rand()函数,但是获取出来的随机数是在0-1之间的,所以可以在其基础上乘以1000000,然后舍弃小数部分,如果长度不足6位,补0


select lpad(round(rand()*1000000 , 0), 6, '0');



日期函数


常见的日期函数如下:



演示如下:


A. curdate:当前日期


select curdate();

B. curtime:当前时间


select curtime()

C. now:当前日期和时间


select now();

D. YEAR , MONTH , DAY:当前年、月、日


select YEAR(now()); select MONTH(now()); select DAY(now());

E. date_add:增加指定的时间间隔


select date_add(now(), INTERVAL 70 YEAR );

F. datediff:获取两个日期相差的天数


select datediff('2021-10-01', '2021-12-01');

案例:


查询所有员工的入职天数,并根据入职天数倒序排序。


思路: 入职天数,就是通过当前日期 - 入职日期,所以需要使用datediff函数来完成。

select name, datediff(curdate(), entrydate) as 'entrydays' from emp order by entrydays desc;

流程函数


流程函数也是很常用的一类函数,可以在SQL语句中实现条件筛选,从而提高语句的效率。演示如下:


A. if

select if(false, 'Ok', 'Error');


B. ifnull

select ifnull('Ok','Default');
select ifnull('','Default');
select ifnull(null,'Default');




C. case when then else end


需求: 查询emp表的员工姓名和工作地址 (北京/上海 ----> 一线城市 , 其他 ----> 二线城市)

selectname, ( case workaddress when '北京' then '一线城市' when '上海' then '一线城市' else '二线城市' end ) as '工作地址' from emp;

案例:


首先 准备一张表

create table score( 
id int comment 'ID', name varchar(20) 
comment '姓名',
math int comment '数学',
english int comment '英语', chinese int comment '语文' )
comment '学员成绩表'; 
insert into score(id, name, math, english, chinese) 
VALUES (1, 'Tom', 67, 88, 95 ), (2, 'Rose' , 23, 66, 90),(3, 'Jack', 56, 98, 76);



select id, name,
       (case when math >= 85 then '优秀' when math >=60 then '及格' else '不及格' end )   '数学',
       (case when english >= 85 then '优秀' when english >=60 then '及格' else '不及格' end ) '英语',
       (case when chinese >= 85 then '优秀' when chinese >=60 then '及格' else '不及格' end ) '语文' from score;


相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
1月前
|
JSON 关系型数据库 MySQL
Mysql(5)—函数
MySQL提供了许多内置的函数以帮助用户进行数据操作和分析。这些函数可以分为几类,包括聚合函数、字符串函数、数值函数、日期和时间函数、控制流函数等。
72 1
Mysql(5)—函数
|
19天前
|
关系型数据库 MySQL
MySQL中的字符串函数有哪些?
本文介绍了几个常用的字符串函数,包括计算字符串字符数的`CHAR_LENGTH`、计算字符串长度的`LENGTH`、合并字符串的`CONCAT`和`CONCAT_WS`、替换字符串的`INSERT`,以及字母大小写转换的`LOWER`、`LCASE`、`UPPER`和`UCASE`。每个函数都有详细的说明和示例。
MySQL中的字符串函数有哪些?
|
17天前
|
关系型数据库 MySQL Serverless
MySQL函数
最常用的MySQL函数,包括聚合函数,字符串函数,日期时间函数,控制流函数等
|
20天前
|
SQL NoSQL 关系型数据库
|
1月前
|
关系型数据库 MySQL 数据库
mysql中tonumber函数使用要注意什么
在处理这类转换操作时,考虑周全,利用提供的高性能云服务器资源,可以进一步提升数据库处理效率,确保数据操作的稳定性和安全性,尤其是在处理大量数据转换和运算密集型应用时。
92 0
|
1月前
|
关系型数据库 MySQL 数据处理
企业级应用 mysql 日期函数变量,干货已整理
本文详细介绍了如何在MySQL8.0中使用DATE_FORMAT函数进行日期格式的转换,包括当日、昨日及不同时间段的数据获取,并提供了实际的ETL应用场景和注意事项,有助于提升数据处理的灵活性和一致性。
41 0
|
10天前
|
SQL 关系型数据库 MySQL
12 PHP配置数据库MySQL
路老师分享了PHP操作MySQL数据库的方法,包括安装并连接MySQL服务器、选择数据库、执行SQL语句(如插入、更新、删除和查询),以及将结果集返回到数组。通过具体示例代码,详细介绍了每一步的操作流程,帮助读者快速入门PHP与MySQL的交互。
26 1
|
12天前
|
SQL 关系型数据库 MySQL
go语言数据库中mysql驱动安装
【11月更文挑战第2天】
29 4
|
1月前
|
存储 关系型数据库 MySQL
Mysql(4)—数据库索引
数据库索引是用于提高数据检索效率的数据结构,类似于书籍中的索引。它允许用户快速找到数据,而无需扫描整个表。MySQL中的索引可以显著提升查询速度,使数据库操作更加高效。索引的发展经历了从无索引、简单索引到B-树、哈希索引、位图索引、全文索引等多个阶段。
63 3
Mysql(4)—数据库索引
|
19天前
|
监控 关系型数据库 MySQL
数据库优化:MySQL索引策略与查询性能调优实战
【10月更文挑战第27天】本文深入探讨了MySQL的索引策略和查询性能调优技巧。通过介绍B-Tree索引、哈希索引和全文索引等不同类型,以及如何创建和维护索引,结合实战案例分析查询执行计划,帮助读者掌握提升查询性能的方法。定期优化索引和调整查询语句是提高数据库性能的关键。
90 1
下一篇
无影云桌面