插入
INSERT INTO 表名 VALUES();
插入数据的数量,类型要和定义的表结构一致
INSERT INTO dept values(50,'sxt',shanghai);
INSERT INTO 表名(列名) VALUES(值...);
插入数据的数量顺序和表名后的列要一致
INSERT INTO uuser(uid,uname,cid) VALUES(3333,'sdf',233);
INSERT INTO 表名(列名) SELECT ...
可以用于导库
查询除的表结构和插入的表结构相同
INSERT INTO test(cnum,cname) select cid,cname from cclass;
删除
DROP TABLE 表名;
删除表
drop table cclass;
DELETE FROM 表名;
删除表的所有数据
-- 删除uuser表
delete from uuser;
DELETE FROM 表名 WHERE 条件
删除符合条件的行
-- 从cclass表中删除 分数低于60的行
delete from cclass where grade<60;
TRUNCATE TABLE 表名;
截断表:删除表中所有数据,重建新表(数据无法恢复)
修改
UPDATE 表名 SET 列名=value, 列名=value;
--针对某列,将所有行进行更改
update cclass set grade=grade+10;
--针对多列,将所有行进行更改
update cclass set grade=grade+5, cid=cid+1;
UPDATE 表名 SET 列名=value, 列名=value WHERE 条件;
-- 符合条件的进行更改
update cclass set grade=grade+20 where cid > 3;
数据库事务
执行过程中的一个逻辑单位,由一个有限的数据库操作序列构成
事务指的是数据库一种保护数据的方式
事务一般由增删改操作自动调用,事务根据数据库不同提交的时机也是不同:
mysql数据库默认执行增删改就会提交事务
可以设置为手动提交 begin 或 start transaction;
事务的特征
ACID原则
原子性:事务是操作数据的最小单元,不可再分
一致性:事务提交后,整个数据库所看到数据都是最新的数据,所有人看到的数据都是一致
隔离性:别人无法访问未提交的数据,而且一旦数据被修改,别人也无法进行操作
持久性:一旦被提交,数据库就进入到一个全新状态,数据在也不能返回到上一个状态
隔离级别
级别越高,数据越安全,效率越低
读未提交
可以读取到别人未提交的数据
可能产生脏读
读已提交
只能读取别人提交后的数据
不能达到可重复读,但是可避免脏读
可能产生虚读或幻读
可重复读
数据被查询后,别人就不能修改这个数据
查询的时候已经有事务操作到这些数据,查询都会开启事务
不能防止别人查询别的数据
序列化
数据库只能存在一个事务,我操作数据库时,别人时不能访问数据库的
对于用户数据相当安全,一般在倒库的时候才会开启这种级别
脏读
读取别人未提交的数据,这个数据时不安全的
虚读
第一次读取的数据,第二次在读取的时候有可能被别人修改了
幻读
第一次读取的数据,第二次多了一条或少了一条