DML
DML之插入
-
在表内插入:insert into 表名 value(数据1 , 数据2, …);
-
eg:insert into dept value(50, ‘sxt’, ‘shanghai’);
-
要求插入数据的数量, 类型和定义表的结合一致。
-
eg :
insert into dept values(50. 'sxt', 'shnanghai', 'liyi'); insert into dept values(50, 'sxt'); insert into dept values('abcd', 50, 'sh');
-
-
-
在表内特定的列插入(以行为单位):insert into 表名(列名) values(数据1, …);
-
eg:
insert into emp(deptno, ename, deptno) values(6666, 'ly', 50);
-
要求插入数据的数量顺序和表名后的列要一致。
-
-
从其他表中选定的列插入本表中特定的列(以为为单位):
insert into 表名(列名) select …
-
eg:
insert into dept(deptno, dname) select empno, ename from emp;
-
-
--创建一个dp表和dept表的列一样但是没有任何数据 create table dp as select * from dept where 1<>1;
DML之删除
-
delete from 表名; 删除表。
-
eg:
delete from dept;
-
-
delete from 表名 where 条件; 删除表中特定的数据。
-
eg :
delete from emp where comm is null;
-
这属于一种物理删除,删完之后理论上不能再找回。
-
-
truncate table emp;
- 截断表,不要使用!!! 删除本表数据并重新建立新表,无法恢复。
DML之修改
-
update 表名 set 列名1 = value1, 列名2 = value2; 修改特定列的数据。
-
eg:
update salgrade set losal = 888, hisal = 999;
-
-
**update 表名 set 列名1 = value1, 列名2 = value2 where 条件;**修改特定列中满足条件的数据。
-
eg:
update salgrade set losal = 666, hisal = 1888 where grade = 3;
-
DML之事务
-
数据库管理系统执行过程中的一个逻辑单位,有一个有限的数据库操作序列构成。
-
事务指的是数据库一种保护数据的方式。
-
事务一般由增删改操作自动调用,事务根据数据库不同提交的时机也是不同的
- mysql数据库默认执行增删改就会提交事务。
- 可以设置 手动提交 begin 或者 start transaction;
-
事物的特征
- acid原则
- 原子性
- 事务是操作数据的最小单位。
- 一致性
- 事务提交之后,整个数据库看到的数据都是最新数据。
- 所有人看到的数据都是一致性的。
- 隔离性
- 别人无法访问到我们未提交的数据,而且这个数据一旦被我修改,别人也无法进行操作。
- 持久性
- 事务一旦被提交,数据库就进入到一个全新的状态,数据再也不能返回到上一个状态。
-
事务如何开启和提交?
-
开启:
- ①当执行增删改操作时默认开始一个事务②这个事务和当前操作的的窗口有关,别人是无法共享这个事物的。
-
提交
-
手动:
①:显示 commit; 提交
rollback; 回滚
②:隐式 执行DDL操作,默认提交当前的事务。
用户退出,事务统一进行回滚(mysql);
-
自动
- mysql数据库执行DML操作之后会自动的提交事务
- 好处:方便。
- 坏处:①不能将多个SQL纳入到一个事务,不便于管理。②当我们大批量插入数据时,数据库频繁开启关闭事务,影响插入效率。
-
-
-
事物的隔离等级