注意:
-
MySQL中事务默认是自动提交
-
使用事务时应先关闭自动提交
-
使用set语句来改变自动提交模式
SET autocommit = 0; /*关闭*/
SET autocommit = 1; /*开启*/
- 开始一个事务,标记事务的起点,从这个之后的sql,都在一个事务内
start transaction
- 提交一个事务给数据库(持久化成功)
commit
- 回滚事务,将数据回到本次事务的初始状态
rollback
- 还原MySQL数据库的自动提交
SET autocommit =1;
[](
)1.3、模拟事务
A在线买一款价格为500元商品,网上银行转账,A的银行卡余额为2000,然后给商家B支付500,商家B一开始的银行卡余额为10000
- – 创建数据库shop和创建表account并插入2条数据
-- character set utf8 设置数据库编码为utf-8
-- collate utf8_general_ci 设置数据库校对规则
CREATE DATABASE `shop` CHARACTER SET utf8 COLLATE utf8_general_ci;
USE `shop`;
-- 创建表account
CREATE TABLE `account` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`name` VARCHAR(32) NOT NULL,
`cash` DECIMAL(9,2) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=INNODB DEFAULT CHARSET=utf8;
INSERT INTO account (`name`,`cash`) VALUES
('A',2000.00),
('B',10000.00)
-- 转账实现
SET autocommit = 0; -- 关闭自动提交
START TRANSACTION; -- 开始一个事务,标记事务的起始点
UPDATE account SET cash=cash-500 WHERE `name`='A';
UPDATE account SET cash=cash+500 WHERE `name`='B';
COMMIT; -- 提交事务,数据就被持久化了!
# rollback;
SET autocommit = 1; -- 恢复自动提交
[](
)2、索引
======================================================================
[](
)2.1、索引的分类
-
主键索引(
Primary Key
)- 唯一的标识,主键不可重复,只能有一个列作为主键
-
唯一索引(
Unique
)- 避免重复的列出现,唯一索引可以重复,多个列都可以标识为唯一索引
-
常规索引(
Index
)- 默认的
-
全文索引(
FullText
)- 在特定的数据库引擎下才有
[](
)2.2、唯一索引
作用 : 避免同一个表中某数据列中的值重复
与主键索引的区别
-
主键索引只能有一个
-
唯一索引可能有多个
CREATE TABLE `Grade`(
`GradeID` INT(11) AUTO_INCREMENT PRIMARYKEY,
`GradeName` VARCHAR(32) NOT NULL UNIQUE
-- 或 UNIQUE KEY `GradeID` (`GradeID`)
)
[](
)2.3、常规索引
作用 : 快速定位特定数据
注意:
-
index 和 key 关键字都可以设置常规索引
-
应加在查询找条件的字段
-
不宜添加太多常规索引,影响数据的插入,删除和修改操作
CREATE TABLE `result`(
-- 省略一些代码
INDEX/KEY `ind` (`studentNo`,`subjectNo`) -- 创建表时添加
)
– 创建后添加
ALTER TABLE result
ADD INDEX ind
(studentNo
,subjectNo
);
[](
)2.4、全文索引
--------------------------------------------------------------------------
百度搜索:全文索引
作用 : 快速定位特定数据
**注意** :
* 只能用于CHAR , VARCHAR , TEXT数据列类型
* 适合大型数据集
[](
)2.5、索引准则
--------------------------------------------------------------------------
* 索引不是越多越好
* 不要对经常变动的数据加索引
* 小数据量的表建议不要加索引
* 索引一般应加在查找条件的字段
[](
)3、权限管理
========================================================================
[](
)3.1、SQLyog可视化操作
---------------------------------------------------------------------------------
1. 添加新用户
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210630192511918.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0F1Z2Vuc3Rlcm5fUVhM,size_16,color_FFFFFF,t_70#pic_center)
2. 创建用户
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210630192547208.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0F1Z2Vuc3Rlcm5fUVhM,size_16,color_FFFFFF,t_70#pic_center)
3. 选择用户权限
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210630192600447.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0F1Z2Vuc3Rlcm5fUVhM,size_16,color_FFFFFF,t_70#pic_center)
4. 使用创建的新用户名与密码进行连接
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210630192611932.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0F1Z2Vuc3Rlcm5fUVhM,size_16,color_FFFFFF,t_70#pic_center)
5. 可以选择删除创建的用户
![在这里插入图片描述](https://img-blog.csdnimg.cn/2021063019262374.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0F1Z2Vuc3Rlcm5fUVhM,size_16,color_FFFFFF,t_70#pic_center)
[](
)3.2、SQL基本命令操作
-------------------------------------------------------------------------------
用户的信息表是:`mysql.user`
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210630192633559.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0F1Z2Vuc3Rlcm5fUVhM,size_16,color_FFFFFF,t_70#pic_center)
### [](
)3.2.1、创建用户
语法:`create user 用户名 inentified by '密码'`
* 用户名需要加引号
* 密码也需要加引号,纯数字密码也要加引号
– 新创建一个用户名为’kuangshen’,密码为’123456’
CREATE USER kuangshen IDENTIFIED BY ‘123456’;
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210630192644180.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0F1Z2Vuc3Rlcm5fUVhM,size_16,color_FFFFFF,t_70#pic_center)
### [](
)3.2.2、修改当前用户密码
格式:`set password = password('密码')`
SET PASSWORD = PASSWORD(‘111111’);
### [](
)3.2.3、修改指定用户密码
格式:`set password for 用户名 = password('密码')`
– 修改kuangshen用户的密码为111111
SET PASSWORD FOR kuangshen = PASSWORD(‘111111’);
### [](
)3.2.4、重命名用户名
格式:`rename user 原来的名字 to 新的名字`
RENAME USER kuangshen TO kuangshen2;
Java核心架构进阶知识点
**[CodeChina开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频】](
)**
面试成功其实都是必然发生的事情,因为在此之前我做足了充分的准备工作,不单单是纯粹的刷题,更多的还会去刷一些Java核心架构进阶知识点,比如:JVM、高并发、多线程、缓存、Spring相关、分布式、微服务、RPC、网络、设计模式、MQ、Redis、MySQL、设计模式、负载均衡、算法、数据结构、kafka、ZK、集群等。而这些也全被整理浓缩到了一份pdf——《Java核心架构进阶知识点整理》,全部都是精华中的精华,本着共赢的心态,好东西自然也是要分享的
内容颇多,篇幅却有限,这就不在过多的介绍了,大家可根据以上截图自行脑补
en TO kuangshen2;
Java核心架构进阶知识点
**[CodeChina开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频】](
)**
面试成功其实都是必然发生的事情,因为在此之前我做足了充分的准备工作,不单单是纯粹的刷题,更多的还会去刷一些Java核心架构进阶知识点,比如:JVM、高并发、多线程、缓存、Spring相关、分布式、微服务、RPC、网络、设计模式、MQ、Redis、MySQL、设计模式、负载均衡、算法、数据结构、kafka、ZK、集群等。而这些也全被整理浓缩到了一份pdf——《Java核心架构进阶知识点整理》,全部都是精华中的精华,本着共赢的心态,好东西自然也是要分享的
[外链图片转存中…(img-36RjzGeI-1631190029113)]
[外链图片转存中…(img-4mFLA9wI-1631190029115)]
[外链图片转存中…(img-QsEDxasH-1631190029116)]
内容颇多,篇幅却有限,这就不在过多的介绍了,大家可根据以上截图自行脑补