MySQL数据库查缺补漏——基础篇

MySQL数据库查缺补漏-基础篇

基础篇

net start mysql80[服务名]

net stop mysql80

create database pshdhx default charset utf8mb4;

为什么不使用utf8?因为其字符占用三个字节,有四个字节的字符,所有需要设置为utf8mb4;

数值类型:

在这里插入图片描述

字符串类型:

在这里插入图片描述

日期类型:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

用户管理

use mysql;

create user ‘pshdhx’@‘localhost’ identified by ‘123456’

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

alter user ‘pshdhx’@‘%’ identified with mysql_native_password by ‘123456789’;

用户权限控制:

在这里插入图片描述

查询权限:

show grants for ‘pshdhx’@‘localhost’;

授予权限

grant all on db1.* to ‘pshdhx’@‘localhost’

撤销权限:

revoke all on db1.* from ‘pshdhx’@‘localhost’

MySQL函数

字符串函数:

在这里插入图片描述

数值函数:

在这里插入图片描述

日期函数:

在这里插入图片描述

流程函数:

在这里插入图片描述

MySQL约束

在这里插入图片描述

alter table emp add constraint fk_emp_detp_id foreign key (dept_id) references dept(id);

alter table emp drop foreign key fk_emp_dept_id;

cascade:级联删除外键。

alter table emp add constraint fk_emp_detp_id foreign key (dept_id) references dept(id) on update cascasd on delete cascade;

set null:设置 null

多表查询

内连接

​ SELECT * FROM emp ,dept where emp.emp_id = dept.dept_id and dept.dept_id = 2;

​ SELECT * FROM emp INNER JOIN dept on emp.emp_id = dept.dept_id;

​ 注意:如果emp的id为空,则该条记录不展示,取的是交集

外连接

​ 左外连接

​ 右外连接

​ 通常,右外连接可以调换顺序可以改成左外连接

自连接

​ 注意都要起别名

联合查询

union 【合并后去重】,union all 【不去重】

子查询

​ 单行子查询:=

​ select * from emp where (salary,managerid) = (12500,1);

​ select * from emp where (salary,managerid) = (select salary,managerid from emp where name=‘pshdhx’);

​ 多行多列子查询:in

事务

操作的集合。

查看事务的提交方式:

​ select @@autocommit; 为1就是自动提交。为0就是手动提交。

​ set @@autocommit=0; 设置手动提交。

事务操作:

​ 开启事务:start transaction 或者是begin

​ 提交事务:commit

​ 回滚事务:rollback

事务四大特性:

​ 1、原子性(Atomicity):事务是不可分割的最小操作单元,要么全部成功,要么全失败。

​ 2、 一致性(Consistence):事务完成时,必须使所有的数据都保持一致。

​ 3、隔离性(Isolation):数据库提供的隔离机制,保证事务不受外部并发操作影响的独立环境下运行。

​ 4、持久性(Durability):事务一旦提交或回滚,它对数据库中的数据的改变是永久的。【持久化到data目录下】

并发事务问题:

​ 1、脏读:一个事务读取到另外一个事务没有提交的数据。

​ 2、不可重复度【修改】:一个事务先后读取同一条记录,但是两次读取的数据不同。

​ 3、幻读【新增】:一个事务按照条件查询数据时,没有对应的数据行。但是在插入数据时,又发现这行数据已经存在。

事务隔离级别:

脏读不可重复度幻读
读未提交
读已提交[Oracle默认]
可重复度[Mysql默认]
串行化【加锁】

select @@Transactoin_isolation

set [session | global] transaction isolation level {read uncommitted | read committed | repeatable read| serializable}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值