栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

【MySQL】mysql学习笔记04 事务

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【MySQL】mysql学习笔记04 事务

– =事务============
– 事务原则:ASID原则
– 原子性
– 一致性
– 隔离性
– 持久性
– mysql是自动开启事务提交的
1.建表

CREATE DATABASE shop CHARACTER SET utf8 COLLATE utf8_general_ci
USE shop
CREATE TABLE `account`(
`id` INT(3) NOT NULL AUTO_INCREMENT,
`name` VARCHAr(30) NOT NULL,
`money`DECIMAL(9,2) NOT NULL,
PRIMARY KEY(`id`)
)ENGINE=INNODB DEFAULT CHARSET=utf8

2、插入数据

INSERT INTO account(`name`,`money`) VALUES('诗怀雅',100000),('杰西卡',99996) 
INSERT INTO account(`name`,`money`) VALUES('Dr.dkt',0) 

– 模拟转账

SET autocommit =0; -- 关闭自动提交
START TRANSACTION  -- 开启事务
UPDATe account SET `money`=`money`-168 WHERe `name`='杰西卡' -- a-168
UPDATE account SET `money`=`money`+168 WHERe `name`='Dr.dkt' -- b+168
COMMIT;            -- 提交事务,持久化
ROLLBACK;          -- 失败回滚
SET autocommit =1; -- 恢复

– ======索引=

USE school
CREATE TABLE `app_user` (
`id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
`name` VARCHAr(50) DEFAULT'' COMMENT'用户昵称',
`email` VARCHAr(50) NOT NULL COMMENT'用户邮箱',
`phone` VARCHAr(20) DEFAULT'' COMMENT'手机号',
`gender` TINYINT(4) UNSIGNED DEFAULT '0'COMMENT '性别(0:男;1:女)',
`password` VARCHAr(100) NOT NULL COMMENT '密码',
`age` TINYINT(4) DEFAULT'0'  COMMENT '年龄',
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP,
`update_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=INNODB DEFAULT CHARSET=utf8 COMMENT = 'app用户表'

– ===插入一百万条数据=

DELIMITER $$ -- 写函数之前必须要写,标志
CREATE FUNCTION mock_data2()
RETURNS INT 
BEGIN 
     DECLARE num INT DEFAULT 1000000;
     DECLARE i INT DEFAULT 0;
  WHILE i< num DO
     INSERT INTO `app_user`(`name`,`email`,`phone`,`gender`,`password`,`age`)VALUES (CONCAt('用户',i),'3402962193@qq.com',CONCAt(15,FLOOR(RAND()*((999999999-10000000)+10000000))),FLOOR(RAND()*2),UUID(),FLOOR(RAND()*100));
     SET i=i+1;
  END WHILE;
  RETURN i;
END;

查询

SELECT mock_data2()
SELECT * FROM `app_user`WHERe `name`='用户9999'
EXPLAIN SELECt * FROM `app_user`WHERe `name`='用户9999'-- 未添加索引耗时近1秒

– 添加索引
– 命名格式: id_表名_字段名

CREATE INDEX id_app_user_name ON `app_user`(`name`);
SELECt * FROM `app_user`WHERe `name`='用户9999' -- 添加后 0.001秒

– ==== 用户=====

CREATE USER zjm IDENTIFIED BY '123456'    -- 创建用户
SET PASSWORD = PASSWORd('654321')         -- 修改密码
SET PASSWORD FOR zjm = PASSWORd('123456') -- 修改指定用户密码
RENAME USER zjm TO zjm2                   -- 重命名
GRANT ALL PRIVILEGES ON *.* TO zjm        -- 授权 all privileges 全部权限 *.* 全部库表
SHOW GRANTS FOR zjm                       -- 查看指定用户权限
SHOW GRANTS FOR root@localhost            -- 查看root用户权限
REVOKE ALL PRIVILEGES ON *.* TO zjm       -- 撤销权限
DROP USER zjm                             -- 删除用户
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/943815.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号