当前位置:网站首页>MySQL数据库(四)事务和函数
MySQL数据库(四)事务和函数
2022-07-06 09:25:00 【手可摘鑫晨】
1,事务
概念:就是将一组SQL语句放在同一批次内去执行,如果一个SQL语句出错,则该批次内的所有SQL都将被取消执行。
2,事务的原则
3,实现事务的方法
4,实现事务的步骤
-- 事务的操作
-- 1,关闭自动提交
SET autocommit = 0;
-- 2,开启事务
START TRANSACTION;
-- 3,执行一组SQL语句
update bank set bmoney = bmoney-1000 where bname='马智';
update bank set bmoney = bmoney+1000 where bname='刘鑫淼';
-- 4,结束事务
-- 4.1 提交
COMMIT;
-- 4.2 回滚
ROLLBACK;
SET autocommit = 1;
5,MySQL的四种隔离级别
(1)Read Uncommitted(读取未提交内容)也称“脏读”
(2)Read Committed(读取提交内容 也叫做不可重复读)
(3)Repeatable Read(可重读)新增对应“幻读”
(4)Serializable(可串行化)
-- 查看当前隔离级别
select @@global.transaction_isolation,@@transaction_isolation;
6,MySQL函数
函数名 | 返回值 |
---|---|
curdate() | 返回当前的日期 |
curtime() | 返回当前的时间 |
now() | 返回当前的日期和时间 |
date_format(date,fmt) | 依照指定的fmt格式格式化日期date值 |
year(date) | 返回日期date的年份(1000~9999) |
month(date) | 返回date的月份值(1~12) |
day(date) | 返回date的日 |
# 函数
-- 必须出现在SQL语句中,不能单独出现
-- 日期函数
SELECT CURDATE();
SELECT CURTIME();
SELECT NOW();
SELECT DAYOFWEEK(NOW()) - 1 星期;
-- 请查询当月过生日的学生
SELECT * FROM student WHERE MONTH(birthday) = MONTH(NOW());
-- 格式化日期
SELECT DATE_FORMAT(NOW(),'%Y-%c-%d');
7,计算日期的差值
-- 时间差(天数)
SELECT DATEDIFF(NOW(),'2022-5-1');
-- 时间差计算日期
-- + 多长时间以后的日期 - 多长时间以前的日期
SELECT NOW() + INTERVAL 14 DAY;
SELECT * FROM student WHERE MONTH(birthday) = MONTH(NOW());
8,常用的字符串函数
函数名 | 返回值 |
---|---|
concat(s1,s2...sn) | 将s1,s2...,sn连接成字符串 |
concat_ws(sep,s1,s2...sn) | 将s1,s2...,sn连接成字符串,并用sep 字符间隔 |
-- 字符串函数
SELECT CONCAT('hello','你好');
SELECT CONCAT_WS('!','hello','你好');
8,常用数学函数
函数名 | 返回值 |
---|---|
ceiling(x) | 返回大于x的最小整数值 |
floor(x) | 返回小于x的最大整数值 |
round(x,y) | 返回参数x的四舍五入的有y位小数的值 |
truncate(x,y) | 返回数字x截短为y位小数的结果 |
-- 向上取整
SELECT CEILING(68.15);
-- 向下取整
SELECT FLOOR(68.15);
-- 四舍五入
SELECT ROUND(68.55,1);
-- 截断
SELECT TRUNCATE(68.55,1);
-- 聚合函数
SELECT ssex,COUNT(*),GROUP_CONCAT(sname) FROM student GROUP BY ssex;
9,慢查询
概念:MySQL默认10秒内没有响应SQL结果,则为慢查询。
# 慢查询
select count(*) from emp;
select count(1) from emp;
select count(eid) from emp;
show create table emp;
CREATE TABLE `emp` (
`eid` bigint(20) DEFAULT NULL,
`ename` varchar(10) DEFAULT NULL,
`esex` varchar(5) DEFAULT NULL,
`ebirthday` datetime DEFAULT NULL,
`ehisday` datetime DEFAULT NULL,
`job` varchar(15) DEFAULT NULL,
`emoney` decimal(10,2) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
-- 查看连接数
show status like 'connections';
-- 慢查询的状态 OFF 关闭 ON 开启
Show variables like '%slow_query%';
-- 开启慢查询
set global slow_query_log='ON';
set global log_output='TABLE';
-- 慢查询的次数
show status like 'slow_queries';
select * From mysql.slow_log ;
select convert(sql_text using utf8) sql_text from mysql.slow_log
ALL:这个连接类型对于前面的每一个记录联合进行完全扫描,这一般比较糟糕,应该尽量避免。
explain select eid,ename,esex,ebirthday,ehisday,job ,emoney
from emp where eid = 20000;
10,索引
概念:索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息。
特点:
(1)高效性:利用索引可以提高数据库的查询效率。
(2)完整性:用户可以加速表和表之间的连接, 实现表与表之间的参照完整性。
(3)唯一性 :索引可以确保所查的数据的唯一性。
(4)特殊能力 :通过使用索引,可以在查询过程中,使用优化隐藏器,提高系统性能。
缺点:
(1)虽然索引大大提高了查询速度,同时却会降低更新表的速度,如对表进行INSERT、
11,索引的分类
(1)主键索引 在数据库关系图中为表定义一个主键将自动创建主键索引。
(2)唯一索引 不允许具有索引值相同的行,从而禁止重复的索引或键值。
(3)常规索引 最基本的索引类型,没有唯一性之类的限制。
(4)全文索引 搜索引擎的关键技术,用于检索文本信息,可以是词语或者段落。
alter table emp add primary key (eid);
explain select eid,ename,esex,ebirthday,ehisday,job ,emoney
from emp where eid = 44040;
explain select * from emp where ename = '韦崔'
-- 添加常规索引
alter table emp add index(ename);
create table wenzhang(
wid int PRIMARY KEY auto_increment,
title varchar(20),
content text,
zuozhe varchar(20),
FULLTEXT(title,content,zuozhe) with parser ngram
);
insert into wenzhang(title,content,zuozhe)
values
('西安往事','这是一个古老的城市,在这个城市中有很多的人,工厂,建筑物','老薛'),
('山西往事','这是一个古老的城市,这里有很多的人,工厂,建筑','老许'),
('地球往事','这是一个古老的星球,这里有很多的人','老刘在西安'),
('银河往事','这是一个系,打算在这个系之外造一个西安','小彭');
-- 是一种模糊查询
select * from wenzhang where match(title,content,zuozhe) AGAINST('西安');
select * from wenzhang where match(title,content) AGAINST('西安');
alter table wenzhang add fulltext(title,content) with parser ngram;
-- 查看索引
show index from student;
cardinality / count(*) 越接近1 越好 越接近0 越差
show index from emp;
边栏推荐
- Fundamentals of digital circuits (III) encoder and decoder
- 150 common interview questions for software testing in large factories. Serious thinking is very valuable for your interview
- [HCIA continuous update] working principle of static route and default route
- Transplant hummingbird e203 core to Da Vinci pro35t [Jichuang xinlai risc-v Cup] (I)
- [oiclass] maximum formula
- Emqtt distribution cluster and node bridge construction
- 全网最详细的postman接口测试教程,一篇文章满足你
- Fundamentals of digital circuit (IV) data distributor, data selector and numerical comparator
- China's county life record: go upstairs to the Internet, go downstairs' code the Great Wall '
- ucore lab8 文件系统 实验报告
猜你喜欢
Fundamentals of digital circuits (I) number system and code system
王爽汇编语言学习详细笔记一:基础知识
The latest query tracks the express logistics and analyzes the method of delivery timeliness
Investment operation steps
如何成为一个好的软件测试员?绝大多数人都不知道的秘密
Query method of database multi table link
接口测试面试题及参考答案,轻松拿捏面试官
Vysor uses WiFi wireless connection for screen projection_ Operate the mobile phone on the computer_ Wireless debugging -- uniapp native development 008
[Ogg III] daily operation and maintenance: clean up archive logs, register Ogg process services, and regularly back up databases
Dlib detects blink times based on video stream
随机推荐
UCORE lab1 system software startup process experimental report
The number of reversing twice in leetcode simple question
Statistics 8th Edition Jia Junping Chapter 1 after class exercises and answers summary
Flash implements forced login
My first blog
Detailed introduction to dynamic programming (with examples)
如何成为一个好的软件测试员?绝大多数人都不知道的秘密
[pointer] use the insertion sorting method to arrange n numbers from small to large
数字电路基础(三)编码器和译码器
Investment operation steps
[pointer] find the largest string
想跳槽?面试软件测试需要掌握的7个技能你知道吗
Quaternion -- basic concepts (Reprint)
Fundamentals of digital circuit (V) arithmetic operation circuit
Global and Chinese market of portable and handheld TVs 2022-2028: Research Report on technology, participants, trends, market size and share
Pointers: maximum, minimum, and average
Global and Chinese market of barrier thin film flexible electronics 2022-2028: Research Report on technology, participants, trends, market size and share
Face and eye recognition based on OpenCV's own model
Using flask_ Whooshalchemyplus Jieba realizes global search of flask
数字电路基础(二)逻辑代数