增删改查
表的增删改查
增
create database 表
create table 表名(属性);
常用约束:
主键约束:primary key
唯一约束:unique [key]
默认约束:default
外键约束:foreign key
自动增长:auto_increment
删
drop databases 表名;
drop table 表名;
改
alter databases 表名 set 字符集;
查
show databases;
show tables;
数据的增删改查
增
insert into 表名 values(属性值);
删
delete 表名 where 列名=值;
改
updata 表名 set 列名=值(修改后的值) where 列名=值(修改前的值或需要修改的列的id或name)
查
select*from 表名
举例
create table person(
id int,
name varchar(20),
cardid int
);
create table card(
id int,
name varchar(20)
);
insert into card values('1','饭卡'),('2','健身卡'),('3','水卡'),('4','银行卡'),('5','油卡');
insert into person values('1','张三',1),('2','李四',3),('3','王五','5');
update person set cardid = 6 where cardid = 5;
//修改
select*from person inner join card on person.cardid=card.id;
//内联查询,两张表中的数据,通过木个字段相对,查询出相关记录数据
select*from person left join card on person.cardid=card.id;
//左外连接,会把左边的表里面的所有数据取出来,而右边表中的数据,如果有相等的就显示出来,如果没有就会补null
`select*from person right join card on person.car`did=card.id;
//右外连接,会把右边的表里面的所有数据取出来,而左边表中的数据,如果有相等的就显示出来,如果没有就会补null
select*from person full join card on person.cardid=card.id;
//mysql不支持全连接full
//要想全连接如下
select*from person left join card on person.cardid=card.id
union
select*from person right join card on person.cardid=card.id;
事务回滚:撤销sql语句执行效果
rollback;
设置 mysql 自动提交为 false
自动提交
select @@autocommit=1
手动提交
set autocommit=0;
//mysql默认自动为1,设置为0,才可rollback撤回操作
commit;
//手动提交数据,变回1
//事务开启之后,一旦commit提交,就不可以回滚。
还原
set autocommit=1;
手动开启事务
begin;
或
start transaction;
事务的四大特征
A 原子性:事务是最小的单位,不可以分割。
C 一致性:十五要求,同一事物中的sql语句,必须保证同时成功或同时失败
I 隔离性:事务1和事务2之间具有隔离性
D 持久性:事务一旦结束(commit,rollback),就不可以返回
查看隔离级别
select @@global.tx_isolation;
select @@tx_isolation;