Mysql——入门(下)

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: mysql数据库管理软件:C/S(1)服务器必须先启动(2)客户端连接服务器端

函数

字符串函数

(1)length (zx):求字节数,和字符集有关

(2)char_length (zz):求字符数

(3)CONCAT(str1,str2,…)

( 4)CONCAT_WS(分隔符,strl,str2,…)

UPPER(S)或UCASE(S)

将字符串s的所有字母转成大写字母

LOWER(s)缆LCASE(s)

将字符串s的所有字母转成小写字母

LEFT(s,n)

返回字符串S最左边的n个字符

RIGHT(s,n)

返回字符串s最右边的n个字符

LPAD(str, len, pad)

用字符串pad对str最左边进行填充,直到str的长度为len个字符

RPAD(str ,len, pad)

用字符串pad对str最右边进行填充,直到tr的长度为len个字符

LTRIM(S)

去掉字符串s左侧的空格

RTRIM(s)

去掉字符串s右侧的空格

TRIM(s)

去掉字符串s开始与结尾的空格

TRIM( [BOTH ] s1 FROMs)

去掉字符串s开始与结尾的s1

TRIM( [LEADING] s1 FROM s)

去掉字符串s开始处的s1

TRIM( [TRALING] s1 FROM s)

去掉字符串s结尾处的s1

数学函数

ROUND(x,y)

返回参数x的四舍五入的有y位的小数的值

TRUNCATE(x.y)

返回数字x截断为y位小数的结果

SORT(x)_

返回的平方根

POW(x,y)

返回x的y次方

时间函数

CURDATE()或CURRENT _DATE()

返回当前日期

CURTIME()或CURRENT TIME()

返回当前时间

NOW() / SYSDATE() / CURRENT TIMESTAMP() / LOCALTIME()/

返回当前系统日期时间

LOCALTIMESTAMP()

YEAR(date) / MONTH(date) / DAY(date) 1 HOUR(time) 1

返回具体的时间值

MINUTE(time) / SECOND(time)

WEEK(date) / WEEKOFYEAR(date)

返回一年中的第几周

DAYOFWEEK()

返回周几,注意:周日是1,周一是

2,。。。周六是7

WEEKDAY(date)"

返回周几,注意,周1是0,周2是

1…。。周日是6

DAYNAME(date)

返回星期:

MONDAY,TUESDA…UNDAY

MONTHNAME(date)

返回月份:January…。

DATEDIFF(date1,date2) / TIMEDIFF(time1, time2)

返回date1 - date2的日期间隔/返回

time1 - time2的时间间隔

DATE ADD(datetime, INTERVAL expr type)

返回与给定日期时间相差INTERVAL时间

段的日期时间

DATE FORMAT(datetime ,fmt)

按照字符串fmt格式化日期datetime值

其他函数、

password(str)

返回字符串str的加密版本, 41位长的字符串

md5(str)

返回字符串str的md5值,也是一种加密方式

组函数

组函数类型

。AVG()【求平均数】

。SUM()【求总和】

。MAX()【求最大值】

。MIN()【求最小值】

。COUNT()【求数量之和】

连接

1、I内连接:inner join

2、外连接(1)ANB

(1)左外连:left join

(2)A

(3)A-ANB

(2)右外连接:rightjoin

(4)B

(5)B-AnB

(3)全外连接:full join但是可以使用union(合并)结果来实现以下两种结果

但是不直接支持全外连接,(2) Aunion(合并)(4)B

(6) AUB 用

(7)AUB-AnB用(3) A - A nB union(合并)(5)B-AnB

内连接:AnB、

两张表内连接关联查询

select字段列表

from A表名inner joinB表名

on 1个关联条件

where其他条件等

三张表内连接关联查询

select字段列表

from A表名inner joinB表名inner joinc表名

on 2个关联条件

where其他条件等

关联条件的个数=表数- 1

如果少了关联条件,就会笛卡尔积

全外连接

使用union来实现全外连接的查询结果:

(1)AUB

(2)AUB- A B 迂回成

(1)A UNION B

(2)A - A B UNION B - A∩B

Select的六大子句

使用规则:按顺序使用

(1)form子句:后面跟字段列表等表状工具

(2)where子句:后面跟条件 where意思取那几行,要哪些行(where后面不能跟分组语句)

(3) group by:后面跟字段 group by意思是分组

select结果字段列表

from表名称

where条件

group by.分组字段列表;

要求:结果字段列表中不要出现和分组无关的字段

(4)having:后面跟条件

having:意味着在分组统计结果中再次对统计结果加条件,不是对原表中的记录加条件

(5)order by: 后面跟字段或表达式

order by:. 排序

升序:省略asc或加asc

降序: desc

(6)limit:取几条记录

limit m, n

m表示从第几天记录开始取,n表示最多取n条件 通常用于分页

查询

查询的学习的顺序:

1、简单查询

2、联合查询

3、select的6个子句

4、子查询


子查询:

在一个查询中嵌套了另一个查询,那么这个嵌套在里面的查询称为子查询。 子查询的结果作为外部查询的条件或者数据的筛选范围来使用。

子查询分为三类:

1、 where

子查询的结果作为外部查询的条件使用的

(1) 子查询结果是: 单值结果

比较运算符后面可以跟单值的结果

(2)子查询结果是:一列多行的多值结果

in(),比较运算符all(), 比较运算符any()

2、 from

子查询的结果是作为外部查询的筛选范围来使用

注意:

对子查询的多行多列的二维表结构的临时表取别名

给用分组函数统计的结果列取别名

3、exists型

子查询的结果是作为外部查询的条件使用的

Mysql事务

1、事务处理(事务操作)︰保证所有事务都作为一个工作单元来执行,即使出现了故障,都不能改变这种执行方 式。当在一个事务中执行多个操作时,要么所有的事务都被提交(commit),那么这些修改就永久地保存下来;要 么数据库管理系统将放弃所作的所有修改,整个事务回滚(rollback)到最初状态。

2、事务的ACID属性∶

( 1)原子性(Atomicity )

原子性是指事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生。

( 2)一致性(Consistency )

事务必须使数据库从一个一致性状态变换到另外一个一致性状态。

(3)隔离性( lsolation )

事务的隔离性是指一个事务的执行不能被其他事务干扰,即一个事务内部的操作及使用的数据对并发的其他事务是 隔离的,并发执行的各个事务之间不能互相干扰。

(4)持久性(Durability )

持久性是指一个事务一旦被提交,它对数据库中数据的改变就是永久性的,接下来的其他操作和数据库故障不应该 对其有任何影响


事务:

事务是表示一组操作要么同时成功,要么同时失败,而且事务与事务之间是独立。

事务有ACID的特性。

(1)原子性(2)一致性(3)隔离性(4)持久性

mysql默认是自动提交事务,一句SQL是一个事务,执行成功一句就提交一句。

手动开始事务,取消自动提交。

方式一:

set autocommit = false;

这次客户端连接,在你恢复自动提交之前,

r接下来所有的sQL执行都必须手动提交了,否则就不生效。

这个设置只管一个连接,和其他的连接(登录)无关。

set autocommit = false;

…都是需要手动提交的。

set autocommit = true;

当只是部分的SQL需要构成事务,手动提交,而其他SQL还是想要自动提交的。 那么我们选择方式二。

方式二:

start transaction;

一个事务

commit;或rollback;

start transaction; 另一个事务

commit;或rollback;

tip:事务对ddl语句无效

用户与权限

1、身份认证:

( 1 )IP+用户名作为身份验证

例如:root@localhost:只允许在本机使用root用户登录

root@%:运行在任意机器上使用root用户登录

root@192.168.11.56:只运行在192.168.11.56主机上使用root用户登录 chailinyan@%∶运行在任意机器上使用chailinyan用户登录

( 2)密码

2、给每个用户权限,4个权限级别∶

( 1)全局

( 2)数据库

(3)表 l

( 4)字段

依次校验权限,如果前面通过了,后面就不校验了∶

全局>数据库>表>字段

2、忘记root用户密码问题

1:通过任务管理器或者服务管理,关掉mysqld(服务进程)

2:通过命令行+特殊参数开启mysqld

mysqld --skip-grant-tables

3:此时,mysqld服务进程已经打开,并且,不需要权限检查.

4:mysql-uroot无密码登陆服务器.

5:修改权限表

( 1 ) use mysql;

( 2 ) update user set Password = password(123456’) where User = ‘root’;

( 3 ) flush privileges;

6:通过任务管理器,关掉mysqld服务进程.

7:再次通过服务管理,打mysql服务。

8:即可用修改后的新密码登陆.

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
打赏
0
0
0
0
3
分享
相关文章
PHP与MySQL交互:从入门到实践
【9月更文挑战第20天】在数字时代的浪潮中,掌握PHP与MySQL的互动成为了开发动态网站和应用程序的关键。本文将通过简明的语言和实例,引导你理解PHP如何与MySQL数据库进行对话,开启你的编程之旅。我们将从连接数据库开始,逐步深入到执行查询、处理结果,以及应对常见的挑战。无论你是初学者还是希望提升技能的开发者,这篇文章都将为你提供实用的知识和技巧。让我们一起探索PHP与MySQL交互的世界,解锁数据的力量!
轻松入门Mysql:MySQL性能优化与监控,解锁进销存系统的潜力(23)
轻松入门Mysql:MySQL性能优化与监控,解锁进销存系统的潜力(23)
131 0
轻松入门MySQL:深入探究MySQL的ER模型,数据库设计的利器与挑战(22)
轻松入门MySQL:深入探究MySQL的ER模型,数据库设计的利器与挑战(22)
683 0
轻松入门MySQL:数据库设计之范式规范,优化企业管理系统效率(21)
轻松入门MySQL:数据库设计之范式规范,优化企业管理系统效率(21)
177 0
轻松入门MySQL:MySQL 备份与恢复,保护数据安全,提高工作效率(20)
轻松入门MySQL:MySQL 备份与恢复,保护数据安全,提高工作效率(20)
120 0
MySQL基础入门:数据库操作全攻略
MySQL基础入门:数据库操作全攻略
179 0
「Python入门」python操作MySQL和SqlServer
**摘要:** 了解如何使用Python的pymysql模块与MySQL数据库交互。首先,通过`pip install pymysql`安装模块。pymysql提供与MySQL的连接功能,例如创建数据库连接、执行SQL查询。在设置好MySQL环境后,使用`pymysql.connect()`建立连接,并通过游标执行SQL(如用户登录验证)。注意防止SQL注入,使用参数化查询。增删改操作需调用`conn.commit()`来保存更改。pymssql模块类似,但导入和连接对象创建略有不同。
71 0
「Python入门」python操作MySQL和SqlServer
【MySQL从入门到精通】常用SQL语句分享
【MySQL从入门到精通】常用SQL语句分享
66 2
AI助理

阿里云 AI 助理已上线!

快来体验一下吧。