删除数据 delete (DML)
语法格式:
delete from 表名 where 条件;
注意:没有条件,整张表的数据都会被删除
delete from t_user where id = 2;+------+------+------------+---------------------+| id | name | birth | create_time |+------+------+------------+---------------------+| 1 | abc | 1999-10-01 | 2022-04-06 09:05:46 |+------+------+------------+---------------------+insert into t_user(id) values(2);delete from t_user;//删除所有Empty set (0.00 sec)整张表的数据都被删除了增 删 改 查create delete update select
- 修改update(DML)
语法格式:
update 表名 set 字段名1 = 值1,字段名2 = 值2,字段名3 = 值3 ……where条件;
注意:没有条件限制会导致所有全部更新
update t_user set name = 'joke',birth = '2002-12-29',create_time = now() where id = 2;
+------+----------+------------+---------------------+
| id | name | birth | create_time |
+------+----------+------------+---------------------+
| 1 | zhangsan | 1999-10-01 | 2022-04-06 09:05:46 |
| 2 | joke | 2002-12-29 | 2022-04-06 09:24:50 |
+------+----------+------------+---------------------+
更新所有
update t_user set name = 'abc';
+------+------+------------+---------------------+
| id | name | birth | create_time |
+------+------+------------+---------------------+
| 1 | abc | 1999-10-01 | 2022-04-06 09:05:46 |
| 2 | abc | 2002-12-29 | 2022-04-06 09:24:50 |
+------+------+------------+---------------------+
注意:没有条件限制会导致所有全部更新
- 快速创建表(表的快速复制)【了解】
create table salgrade2 as select * from salgrade;
原理:
将一个查询结果当做一张表来新建!!!!
这个可以完成表的快速复制!!!
表创建出来,同时表中的数据也存在了!!!
create table salgrade2 as select * from salgrade;
+-------+-------+-------+
| GRADE | LOSAL | HISAL |
+-------+-------+-------+
| 1 | 700 | 1200 |
| 2 | 1201 | 1400 |
| 3 | 1401 | 2000 |
| 4 | 2001 | 3000 |
| 5 | 3001 | 9999 |
+-------+-------+-------+
create table mysql as select empno,ename from emp where job = 'MANAGER';
+-------+-------+
| empno | ename |
+-------+-------+
| 7566 | JONES |
| 7698 | BLAKE |
| 7782 | CLARK |
+-------+-------+
- 将查询结果插入到一张表当中,insert相关的【了解】 ```java create table dept_bak as select * from dept;
insert into dept_bak select * from dept;//很少用 +————+——————+—————+ | DEPTNO | DNAME | LOC | +————+——————+—————+ | 10 | ACCOUNTING | NEW YORK | | 20 | RESEARCH | DALLAS | | 30 | SALES | CHICAGO | | 40 | OPERATIONS | BOSTON | | 10 | ACCOUNTING | NEW YORK | | 20 | RESEARCH | DALLAS | | 30 | SALES | CHICAGO | | 40 | OPERATIONS | BOSTON | +————+——————+—————+
6. 快速删除表中数据【truncate比较重要,必须掌握】
```java
//删除dept_bak表中的数据
delete from dept_bak;//这种删除数据的方式比较慢
Empty set (0.00 sec)
delete语句删除数据的原理(delete属于DML操作)
表中的数据被删除了,但是这个数据在硬盘上的真实存储空间不会被释放!!
这种删除的缺点是:删除效率比较低
这种删除的优点是:支持回滚,后悔了可以在恢复数据!!!
//快速删除表中数据
truncate语句删除数据的原理
这种删除效率比较高,表别一次裁断,物理删除
这种删除优点:快速
缺点:不支持回滚。删了,就无法恢复!!!
用法:truncate table 表名;(这种操作属于DDL操作)
大表非常大,上亿条记录?? ? ?
删除的时候,使用delete,也许需要执行1个小时才能删除完!效率较低。
可以选择使用truncate删除表中的数据。只需要不到1秒钟的时间就删除结束,效率较高.
但是使用truncate之前,必须仔细询问客户是否真的要删除,并警告删除之后不可恢复!
truncate是删除表中数据,表还在
删除表的操作
drop table 表名;//这不是删除表中数据,这是删除表
- 对表结构的增删改
什么是对表结构的修改
添加一个字段,删除一个字段,修改一个字段!!!
对表的结构的修改需要使用:alter
属于DDL语句
DDL包括:create drop alter
第一:在实际的开发中,需求一旦确定之后,表一旦设计好之后,很少进行对表结构的修改,因为开发进行中的时候,修改表结构,成本比较高
修改表的结构,对应的java代码就需要进行大量的修改,成本是比较高的。
这个责任应该是由设计人员来承担!!!
第二:由于修改表结构的操作很少,所有我们不需要掌握,如果有一天真的要修改表结构,你可以使用工具!!!
修改表结构的操作是不需要写到java程序中,实际上也不是java程序员的范畴。
