mysql 修改日期年月日_MySql基础知识点扫盲

点击上方「10分钟编程」关注我呦

让我们每天「博学」一点点

MySql

1、MySql的基本概念

1.1、客户端与数据库服务器的关系09a8a8fcc520e97fea6babac0aa655a0.png

客户机--服务器应用分为两个不同的部分,服务器部分是负责所有数据访问和处理的一个软件,这个软件所在的计算机成为数据库服务器。与数据打交道的只有服务器软件,关于数据、数据的添加、删除和数据的更新的所有请求都在服务器软件来完成,这些请求和更改来自客户机软件的计算机。客户机是与用户打交道的软件。

列如:你请求一个按字母排序的列出的产品表,则客户机软件通过网络提交该申请给数据库服务器,服务器处理这个请求,根据需要过滤、丢弃和排序数据。然后把结果送回到你的客户机软件。

1.2、什么是数据库?

数据库从表面上可以理解为存储数据的仓库,可等价于存储在电脑上的文件。常见的数据库有Oracle、MySql、DB2、SqlServer,这些都是关系型数据库。

1.3、数据库有什么用?

把有用的信息存储到文件中,便于以后的查找与使用。对数据库的操作可以直观上可以理解为对文件的操作,如CRUD(create增/delete删/update改/retrieve查)。

1.4、怎么对数据库进行操作

不管是什么类型的数据库,均是采用SQL语言来操作的。

1.5、SQL的分类

SQ可以分为DML(Data Manipulation Language)数据操纵语言、DDL(Data Definition Language)数据定义语言、DCL(Data Control Language)数据控制语言。

  • DML,对数据库中的数据进行操作

主要有INSERT、UPDATE、DELETE、SELECT

INSERT:添加数据到数据库中

UPDATE:修改数据库中的数据

DELETE:删除数据库中的数据

SELETE:选择(查询)数据

  • DDL,对数据库中的表进行操作

主要有CREATE、DROP、ALTER

CREATE TABLE:创建数据库表

ALTER TABLE:更改表结构、添加、删除、修改列长度

DROP TABLE:删除表

lCREATE INDEX:在表上建立索引

lDROP INDEX:删除索引

  • DCL,用于控制数据库的访问

GRANT:授予访问权限

REVOKE:撤销访问权限

COMMIT:提交事务处理

ROLLBACK:事务处理回退

SAVEPOINT:设置保存点

LOCK:对数据库的特定部分进行锁定

1.6、表

如果数据库是文件柜,则表就是文件,它是一种结构化的文件,可用来存储某种特定类型的数据。

是某种特定类型数据的结构化清单。

1.7、行、列和数据类型

:表中的数据时是按行存储的,表示了详细的信息。

:表中的一个字段,所有的表都是有一个或多个列组成。

数据类型:所容许的数据的类型。每个表都有相应的数据类型,它限制(或容许)该列中存储的数据。

1.8、主键

表中的每一行都应该有唯一表示自己的一列(或一组列),即主键就是就是一列(或一组列)的值,其值能够唯一区分表中的每个行,用来表示一个特定的行。

1.9、连接数据库Mysql

①:主机名(计算机名):若连接本地的MySql服务器,为localhost

②:端口:默认3036

③:一个合法的用户名

④:用户口令

选择数据库: USE 数据库名

2、数据库的基本类型和操作

2.1、数据库的基本类型

  • int:整数类型 ;

  • varchar:字符串型

  • name varchar(20):姓名最大为20个字符,李四2个字符,lisi四个字符。

  • double:小数类型,如double(5,2)

  • data:日期,仅包含年月日(yyyy--MM--dd)

  • datatime:日期,包含年月日时分秒(yyyy--MM--dd--HH::mm::ss)

  • timestamp:时间戳,包含年月日时分秒(yyyy--MM--dd--HH::mm::ss),若不给这个时间戳赋值或赋值为null,则默认赋值为系统时间。

2.2、数据库的基本操作(DCL)

定义6个字段

nameididCardBirthdaytallEnrol
simon1M0202181995-02-06179.122018-9-16-8::30::19
  • 创建表Create
create table(

name varchar(20),

Id int,

IdCard int,

Birthday data,

Tall double(5,2),

Enrol datastamp

);
  • 复制表

create table 表2 like 表1(被复制的表)

  • 删除表(Delete)

drop table 表名

drop table if exist 表名

  • 修改表Update

更改表名 :alter table 旧表名 rename to 旧表名

更改表中的字符集:alter table 表名 character set 字符集的名称

在表中增加一列 :updata table 表名 add 列名 数据类型

如在表中增加一条性别的列:alter table student add sex varchar(5)

修改某一列的数据类型:

alter table 表名 modify 列名 新数据类型

alter table 表名 change 列名 新列名 新数据类型

  • 查(Retrieve)

查找数据库总所有表的名称:show tables

查询表的结构:desc表名

3、DML中的数据操作

DML(Data Manipulation Language)是数据操纵语言,针对的是表中的数据

3.1数据的查询

在SQLyog中查询表中的结构  SELECT * FROM 表名;7f5a264cde0174545ba3f235954bf973.png

3.2数据的添加

语法形式:INSERT INTO 表名(列名1,列名2,列名3,....) VALUES(值1,值2,值3,......)

其中的列名与值的要保持相对应的关系且数据类型要一致。

当要为列添加全部的数据时,有两种方式

  • 方式一
INSERT INTO stu(id,NAME,age,score,birthday,enroll)VALUES(1,'Simeon',24,99.5,'1995--02--06',CURRENT_TIMESTAMP)
  • 方式二:
INSERT INTO stu VALUES(2,'Snow',23,99.6,'1995--02--02',CURRENT_TIMESTAMP)

显示结果66d091f4d6a73a15dd7fc9e6034ae591.png

3.3数据的修改

语法形式:UPDATE 表名 SET 列名1=值1,列名2,值2,... WHERE 条件

如:UPDATE stu SET age=21 WHERE id=1f60e7f34edff89e83d89c48c965f0c06.png

若不加WHERE条件 则会修改表中的所有选定列的所有值。

如UPDATE stu SET age=257f3ee8428321d2899760aaacdd8572fb.png

3.3删除数据

语法形式:DELETE FROM 表名 where条件

如:DELETE FROM stu WHERE id=2dcf88f882f7c3c13f5c01f7f3797759a.png

若不加WHERE条件,则会删除表中的所有数据

删除表中的所有数据有两种方式:

  • 方式一

DELETE FROM 表名(表中有多少数据就进行多少次操作,不推荐使用)。

  • 方式二:

TRUNCATE TABLE 表名(先删除表,在创建一模一样的空白表,推荐使用)。

4、数据的查询Select

以一个表为例

CREATE TABLE student(   id INT,  -- 编号  
 NAME VARCHAR(20), -- 姓名  
 age INT, -- 年龄  
 sex VARCHAR(5),  -- 性别  
 address VARCHAR(100),  -- 地址  
 math INT, -- 数学  
 english INT -- 英语 
     ); 
 
INSERT INTO student(id,NAME,age,sex,address,math,english) VALUES 
(1,'Simeon',55,'男', ' 杭州',66,78),
(2,'Snow',45,'女','深圳',98,87),
(3,'Lcay',55,'男','香港',56,77),
(4,'LiLi',20,'女','湖南',76,65),
(5,'Long',20,'男','湖南',86,NULL),
(6,'Steven',57,'男','香港',99,99),
 
(7,'Mike',22,'女','香港',99,99),
(8,'LeiLei',18,'男','南京',56,65);
5546fca59f0a99cfeb6ce00526bb1795.png

查询语句的语法形式

select 字段列表 from 表名列表 where 条件列表 
group by 分组字段
having 分组之后的条件
order by 排序方式
limit 分页限定

4.1基础查询

  • 多个字段查询
 select 字段名1,字段名2,.... from 表名

若查询所有的字段,可以用 *来代替,即 select * from 表名

  • 去除重复distinct
SELECT DISTINCT address FROM student
03b633721a52e3714399a10eb48614bb.png
  • 计算列的值

一般可以使用四则运算计算一些列的值(一般只会进行数值型的计算)

计算形式:select 字段名1 四则运算符 字段名2 from 表名

SELECT math+english FROM student
e6f48558f4b2ccbc0451a14ae2ee926c.png

若所在的列含有null值(null与任何值计算都为null),则有如下形式

select 字段名1 四则运算符 IFNULL(表达式1,表时式2) from 表名

表达式1:那个字段需要判断为null

表达式2:null的替换值

SELECT math+IFNULL(english,0) FROM student
36cad513742f2b35d1744f2b49c768e8.png
  • 起别名 as(as可以省略)
SELECT math+IFNULL(english,0) AS 总分数 FROM student
9d1afb5efdd7d355f519853363a01e5d.png

4.2条件查询

  • where子句后跟条件

常用的运算符

> 、< 、<= 、>= 、= 、<>

BETWEEN...AND

IN( 集合)

LIKE:模糊查询

占位符:

_:单个任意字符

%:多个任意字符

IS NULL

and 或 &&

or 或 ||

not 或 !

案例测试

①查询年龄大于20岁

SELECT * FROM student WHERE age > 20
SELECT * FROM student WHERE age >= 20;

②查询年龄等于20岁

SELECT * FROM student WHERE age = 20;

③查询年龄不等于20岁

SELECT * FROM student WHERE age != 20;
SELECT * FROM student WHERE age <> 20;

④查询年龄大于等于20 小于等于30

SELECT * FROM student WHERE age >= 20 &&  age <=30;
SELECT * FROM student WHERE age >= 20 AND  age <=30;
SELECT * FROM student WHERE age BETWEEN 20 AND 30;

⑤查询年龄22岁,18岁,25岁的信息

SELECT * FROM student WHERE age = 22 OR age = 18 OR age = 25
SELECT * FROM student WHERE age IN (22,18,25);

⑥查询英语成绩为null和不为null

SELECT * FROM student WHERE english IS NULL;
SELECT * FROM student WHERE english IS NOT NULL;

4.3、模糊查询

%表示任何字符出现的任意次数,下划线_匹配单个字符

SELECT NAME FROM student WHERE NAME LIKE '%S%'
SELECT NAME FROM student WHERE NAME LIKE '_n%'

4.4排序查询

语法形式:order by子句

  • ASC:升序,默认的

  • DESC:降序。

order by 排序字段1  排序方式1,排序字段2,排序方式2......

如果有多个排序条件,当第一个条件值相等时,才会对第二个排序

SELECT * FROM student ORDER BY math ASC
2ced4e376839e9fece614b5861f22024.png
SELECT * FROM student ORDER BY math DESC,english ASC
0ee393a1a078e46e70ccb1df3798faa1.png

4.5聚合函数

聚合函数是将一列数据作为一个整体来进行纵向的计算

  • count:计算个数,count(*)表示任意字符
SELECT COUNT(id) FROM student
SELECT COUNT(*) FROM student
  • max:计算最大值
SELECT MAX(english) ,MAX(math)FROM student
  • 计算最小值
SELECT MIN(english) ,MIN(math)FROM student
  • 计算和
SELECT SUM(english) ,SUM(math)FROM student
  • 计算平均值
SELECT AVG(english) ,AVG(math)FROM student

NOTE:聚合函数的计算要排除null值,有两种解决方案①选择不包含非空列进行计算②IFNULL函数

4.6分组查询

语法形式:group by 分组字段

分组之后查询的字段:分组字段、聚合函数

where和having的区别

  • where在分组之前进行限定,如果不满足条件,则不参与分组。having在分组之后进行限定,如果不满足结果,则不会被查询出来
  • where之后可以不跟聚合函数,having可以进行聚合函数的判断
  • 按照性别分组。分别查询男、女同学的平均分
SELECT sex ,AVG(english+math)FROM student GROUP BY sex
813b5aeddde0fe9fa3ca53dc7107f639.png
  • 按照性别分组。分别查询男、女同学的平均分,人数
SELECT sex ,AVG(english+math) AS 平均分,COUNT(sex) AS 人数 FROM student GROUP BY sex
6dc6809f06933afdf672a8a9dd2f3dca.png
  • 按照性别分组。分别查询男、女同学的平均分,人数 要求:数学分数低于70分的人,不参与分组
SELECT sex ,AVG(english+math) AS 平均分,COUNT(sex) AS 人数 FROM student WHERE math>70 GROUP BY sex
464298ef51c3b4401f27ab8598538afd.png
  • 按照性别分组。分别查询男、女同学的平均分,人数 要求:分数低于70分的人,不参与分组,分组之后。人数要大于2个人
SELECT sex ,AVG(english+math) AS 平均分,COUNT(sex) AS 人数 FROM student WHERE math>70 GROUP BY sex HAVING 人数>2
db4b9218e4645be024cae40df65bbc5d.png

4.7分页查询

limit仅能在MySql中使用,在其它DBMS中不能使用。

语法:limit 开始的索引,每页查询的条数。

公式:开始的索引 = (当前的页码 - 1) * 每页显示的条数

以每页显示3条记录为例

  • 第一页
SELECT * FROM student LIMIT 0,3
de0de62da7043bb9d638e1e2b3b460b9.png
  • 第二页
SELECT * FROM student LIMIT 3,3
f5f6af6c26db6456542623afc6b64a90.png
  • 第三页
SELECT * FROM student LIMIT 6,3
61fec3edee21e3a5731cb76fa87dd956.png

5、约束

约束是对表中的数据进行限定,保证数据的正确性,有效性和完整性

约束的分类

  • 主键约束
  • 非空约束
  • 唯一约束
  • 外键约束

5.1非空约束

非空约束:not null,值不能为null

  • 创建表时添加约束
CREATE TABLE stu1(
id INT NOT NULL,
NAME VARCHAR(20)
);
  • 创建表完成后,添加非空约束
CREATE TABLE stu2(
id INT ,
NAME VARCHAR(20)
);
ALTER TABLE stu2 MODIFY id INT NOT NULL
  • 删除id的非空约束
ALTER TABLE stu2 MODIFY id INT IS NULL

5.2唯一约束

唯一约束:unique,值不能重复

  • 创建表时,添加唯一约束
CREATE TABLE stu3(
id INT UNIQUE ,
NAME VARCHAR(20)
);

在mysql中,唯一约束限定的列的值可以有多个null

  • 在创建表后,添加唯一约束
CREATE TABLE stu4(
id INT ,
NAME VARCHAR(20)
);
ALTER TABLE stu4 MODIFY id INT UNIQUE
  • 删除唯一约束
ALTER TABLE stu3 DROP INDEX id

5.3主键约束

主键约束:primary key。

非空且唯一

一张表只能有一个字段为主键

主键就是表中记录的唯一标识

  • 在创建表时,添加主键约束
CREATE TABLE stu5(
id INT PRIMARY KEY,
NAME VARCHAR(20)
);
  • 创建完表后,添加主键
CREATE TABLE stu6(
id INT ,
NAME VARCHAR(20)
);
ALTER TABLE stu6 MODIFY id INT PRIMARY KEY
  • 删除主键
ALTER TABLE stu5 DROP PRIMARY KEY
  • 自动增长

概念:如果某一列是数值类型的,使用 auto_increment 可以来完成值得自动增长

在创建表时,添加主键约束,并且完成主键自增长

CREATE TABLE stu7(
id INT PRIMARY KEY AUTO_INCREMENT,
NAME VARCHAR(20)
);

5.4外键约束

外键约束:foreign key,让表于表产生关系,从而保证数据的正确性。

  • 在创建表时,添加外键
create table 表名(
 ....
 外键列
 constraint 外键名称 foreign key (外键列名称) references 主表名称(主表列名称)
         );
  • 删除外键
ALTER TABLE 表名 DROP FOREIGN KEY 外键名称;
  • 创建表之后,添加外键
ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY (外键字段名称) REFERENCES 主表名称(主表列名称);
  • 级联操作

①添加级联操作

语法形式

ALTER TABLE 表名 ADD CONSTRAINT 外键名称 
   FOREIGN KEY (外键字段名称) REFERENCES 主表名称(主表列名称) 
  ON UPDATE CASCADE ON DELETE CASCADE  ;

②分类

  • 级联更新:ON UPDATE CASCADE
  • 级联删除:ON DELETE CASCADE

6、数据库的设计

6.1、多表之间的关系

  • 分类

①一对一

人和身份证,一个人只有一个身份证,一个身份证只能对应一个人

②一对多(多对一)

部门和员工,一个部门有多个员工,一个员工只能对应一个部门

③多对多

学生和课程,一个学生可以选择很多们课程,一个课程也可以被很多学生选择

  • 实现关系

①一对一了解即可

实现方式:一对一关系实现,可以在任意一方添加唯一外键指向另一方的主键。

②一对多(多对一)

实现方式:在多的一方建立外键,指向一的一方的主键。122281ac380beba9af2ff690a7905629.png

③多对多

实现方式:多对多关系实现需要借助第三张中间表。中间表至少包含两个字段,这两个字段作为第三张表的外键,分别指向两张表的主键aaa5b13fa705f0cd01888ce35036bd9d.png

6.2、数据库设计的范式

概念:设计数据库时,需要遵循的一些规范。要遵循后边的范式要求,必须先遵循前边的所有范式要求。

设计关系数据库时,遵从不同的规范要求,设计出合理的关系型数据库,这些不同的规范要求被称为不同的范式,各种范式呈递次规范,越高的范式数据库冗余越小。目前关系数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴斯-科德范式(BCNF)、第四范式(4NF)和第五范式(5NF,又称完美范式)。

  • 分类

①第一范式

每一列都是不可分割的原子数据项

②第二范式

在1NF的基础上,非码属性必须完全依赖于码(在1NF基础上消除非主属性对主码的部分函数依赖)

概念解释

  • 函数依赖:A-->B,如果通过A属性(属性组)的值,可以确定唯一B属性的值。则称B依赖于A。例如:学号-->姓名。 (学号,课程名称) --> 分数
  • 完全函数依赖:A-->B, 如果A是一个属性组,则B属性值的确定需要依赖于A属性组中所有的属性值。例如:(学号,课程名称) --> 分数
  • 部分函数依赖:部分函数依赖:A-->B, 如果A是一个属性组,则B属性值得确定只需要依赖于A属性组中某一些值即可。例如:(学号,课程名称) -- > 姓名
  • 传递函数依赖:A-->B, B -- >C . 如果通过A属性(属性组)的值,可以确定唯一B属性的值,在通过B属性(属性组)的值可以确定唯一C属性的值,则称 C 传递函数依赖于A。例如:学号-->系名,系名-->系主任
  • 码:如果在一张表中,一个属性或属性组,被其他所有属性所完全依赖,则称这个属性(属性组)为该表的码,如表中的学号和课程。

③第三范式

在2NF基础上,任何非主属性不依赖于其它非主属性(在2NF基础上消除传递依赖)

7、多表查询

语法形式:语法形式:select   列名列表  from 表名列表   where....

我们将以例子的形式学习多表查询

7.1创建表

  • 创建部门表
CREATE TABLE dept(
  id INT PRIMARY KEY AUTO_INCREMENT,
  NAME VARCHAR(20)
  );
INSERT INTO dept(NAME) VALUES ('开发部'),('市场部'),('财务部');
  • 创建员工表
CREATE TABLE emp (
  id INT PRIMARY KEY AUTO_INCREMENT,
  NAME VARCHAR(10),
  gender CHAR(1), -- 性别
  salary DOUBLE, -- 工资
  join_date DATE, -- 入职日期
  dept_id INT,
  FOREIGN KEY (dept_id) REFERENCES dept(id) -- 外键,关联部门表(部门表的主键)
  );
  
INSERT INTO emp(NAME,gender,salary,join_date,dept_id) VALUES('Simron','男',7200,'2013-02-24',1);
INSERT INTO emp(NAME,gender,salary,join_date,dept_id) VALUES('Snow','男',3600,'2010-12-02',2);
INSERT INTO emp(NAME,gender,salary,join_date,dept_id) VALUES('Far','男',9200,'2008-08-28',2);
INSERT INTO emp(NAME,gender,salary,join_date,dept_id) VALUES('Lucy','女',5000,'2015-10-07',3);
INSERT INTO emp(NAME,gender,salary,join_date,dept_id) VALUES('lili','女',4500,'2011-03-14',1);

7.2多表查询的分类

笛卡尔积的概念:若有两个集合A、B,取这两个集合的所有组成情况,而完成多表查询,需要消除无用的数据。

  • 内连接查询

①隐式内连接:使用where条件消除无用数据

查询所有员工信息和对应的部门信息

SELECT * FROM emp,dept WHERE emp.dept_id=dept.`id`

查询员工表的名称,性别,部门表的名称

   SELECT emp.`NAME`,emp.`gender`,dept.`NAME`
          FROM emp ,dept WHERE emp.dept_id=dept.`id`

②显式内连接

语法形式:select 字段列表 from 表名1 [inner]  join 表名2 on 条件

SELECT * FROM emp INNER JOIN dept ON emp.`dept_id`=dept.`id`
SELECT * FROM emp JOIN dept ON emp.`dept_id`=dept.`id`

查询步骤

  • 从哪些表中查询数据
  • 条件是什么
  • 查询哪些字段
  • 外连接查询

①左外连接

语法形式:select 字段列表 from 表1  left [outer] join 表2 on 条件

查询的是左表所有数据以及其交集部分。

查询所有员工信息,如果员工有部门,则查询部门名称,没有部门,则不显示部门名称

SELECT  t1.*,t2.`name` FROM emp t1 LEFT JOIN dept t2 ON t1.`dept_id` = t2.`id`;

②右外连接

语法形式:select 字段列表 from 表1  right [outer] join 表2 on 条件

查询的是右表所有数据以及其交集部分。

SELECT  * FROM dept t2 RIGHT JOIN emp t1 ON t1.`dept_id` = t2.`id`;
  • 子查询

①子查询的结果是单行单列的

子查询可以作为条件,使用运算符去判断。 运算符: > >= < <= =

查询员工工资小于平均工资的人

 SELECT * FROM emp WHERE 
      salarySELECT AVG(salary) FROM emp)  

②子查询是多行但列的

子查询可以作为条件,使用运算符in来判断

查询'财务部'和'市场部'所有的员工信息

SELECT * FROM emp WHERE
     dept_id IN(SELECT id FROM dept WHERE NAME='财务部' OR NAME='市场部')

③子查询是多行多列的

子查询可以作为一张虚拟表参与查询

SELECT * FROM dept t1,(SELECT * FROM emp WHERE emp.`join_date`>'2011-11-11') t2
WHERE t1.`id`=t2.dept_id

普通内连接

SELECT * FROM emp t1,dept t2 WHERE t1.`dept_id` = t2.`id` AND t1.`join_date` >  '2011-11-11'

8、事务

8.1事务的基本介绍

概念:如果一个包含多个步骤的业务操作,被事务管理,那么这些操作要么同时成功,要么同时失败

操作

  • 开启事务: start transaction
  • 回滚:rollback
  • 提交:commit

示例

CREATE TABLE account (
  id INT PRIMARY KEY AUTO_INCREMENT,
  NAME VARCHAR(10),
  balance DOUBLE
       );
-- 添加数据
INSERT INTO account (NAME, balance) VALUES ('Simeon', 1000), ('Snow', 1000);
   
-- Simeon给Snow转账 500 元
   
-- 0. 开启事务
START TRANSACTION;
-- 1. Simeon账户 -500
   
UPDATE account SET balance = balance - 500 WHERE NAME = 'Simeon';
-- 2. Snow账户 +500
-- 出错了...
UPDATE account SET balance = balance + 500 WHERE NAME = 'Snow';
   
-- 发现执行没有问题,提交事务
COMMIT;
-- 发现出问题了,回滚事务
ROLLBACK;  

8.2事务的四大特征

  • 原子性:是不可分割的最小操作单位,要么同时成功,要么同时失败。

  • 持久性:当事务提交或回滚后,数据库会持久化的保存数据。

  • 隔离性:多个事务之间。相互独立。

  • 一致性:事务操作前后,数据总量不变

8.3事务的隔离级别

概念:多个事务之间是隔离的,相互独立的。但是如果多个事务操作同一批数据,则会引发一些问题,设置不同的隔离级别就可以解决这些问题。

存在的问题

  • 脏读:一个事务,读取到另一个事务中没有提交的数据
  • 不可重复读(虚读):在同一个事务中,两次读取到的数据不一样。
  • 幻读:一个事务操作(DML)数据表中所有记录,另一个事务添加了一条数据,则第一个事务查询不到自己的修改。

隔离级别

①read uncommitted:读未提交

产生的问题:脏读、不可重复读、幻读

②read committed:读已提交 (Oracle)

产生的问题:不可重复读、幻读

③repeatable read:可重复读 (MySQL默认)

产生的问题:幻读

⑤serializable:串行化

可以解决所有的问题

Note:隔离级别从小到大安全性越来越高,但是效率越来越低

数据库查询隔离级别:

select @@tx_isolation;

数据库设置隔离级别:

 set global transaction isolation level  级别字符串;

看了这篇文章,你是否「博学」了61ed849d93134da07cf7ae7729156d6e.png点个「在看」,是对我最大的鼓励!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值