不知道mysql密码如何反编译获得
将本地连接导出,然后反编译出来密码
隔离级别
读未提交(read uncommitted)
读已提交(read )
可重复读(repeatable-read)(mysql 默认隔离级别)
串行(serializable) 不可并行也就是不要允许并发
SELECT @@transaction_isolation 查询隔离级别
SELECT @@tx_isolation 查询隔离级别
START TRANSACTION
set SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
1.dirty read
T2事务读取T1跟新但是未提交的数据,T1若回滚了,T2就读取了假数据,开启 read commit,repeatable read.serializable可解决
2.不可重复读
T1在一个事务中查询数据同时T2更新数据,T1第二次查询时,数据改变为T2更改后的数据,开启repeatable read.serializable可解决
3.幻读
T1在一个事务中查询数据时T2多插入了几行数据,T1第二次查询时,数据变为了T2插入后的数据表,开启serializable可以解决该问题
排他锁
共享锁
外键
为了保证数据的一致性,不能随便改dept_id,需要被约束,先删除谁谁是子表
常用关系型数据库:mysql,sqlserver,oracle
非关系型数据库:redis,Memcached,MongoDB,Hbase,ElasticSearch
DDL (Data Definition Language 数据定义语言) 关于表结构的
用于操作对象和对象的属性
Create/Drop/Alter
DCL(Data Control Language 数据控制语句)
对象权限操作,使数据更加安全
grant/revoke (批准撤销)
DML(Data Manipulation Language 数据操控语言)
数据记录增删改 insert/updata/delete
DQL(Data Query Language 数据查询语言)
查询 select
CREATE TABLE student_demo(
id int primary key auto_increment,
login_name VARCHAR(50) NOT NULL UNIQUE,
real_name VARCHAR(50),
gender bit DEFAULT 0 COMMENT '性别--0:女,1:男',
age SMALLINT DEFAULT 0,
salary FLOAT null,
create_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
update_date date null
);
alter TABLE student_demo
add remark text null
insert into student(login_name,real_name,gender,age,salary,create_date) VALUES("zhangsan2","张三",1,18,10000,now())
desc student
alter table student
MODIFY column remark text not null
# 删除索引
ALTER TABLE student drop index uq_student_login_real
drop index uq_student_login_real on student
ALTER TABLE student add UNIQUE index uq_student_login_real(login_name,real_name)
show index from student