1. 删除数据 delete (DML)

    语法格式:
    delete from 表名 where 条件;
    注意:没有条件,整张表的数据都会被删除

    1. delete from t_user where id = 2;
    2. +------+------+------------+---------------------+
    3. | id | name | birth | create_time |
    4. +------+------+------------+---------------------+
    5. | 1 | abc | 1999-10-01 | 2022-04-06 09:05:46 |
    6. +------+------+------------+---------------------+
    7. insert into t_user(id) values(2);
    8. delete from t_user;//删除所有
    9. Empty set (0.00 sec)
    10. 整张表的数据都被删除了
    11. create delete update select
    1. 修改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 |
            +------+------+------------+---------------------+    
    
                注意:没有条件限制会导致所有全部更新
    
    1. 快速创建表(表的快速复制)【了解】

    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 |
                    +-------+-------+
    
    1. 将查询结果插入到一张表当中,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 表名;//这不是删除表中数据,这是删除表

    1. 对表结构的增删改

    什么是对表结构的修改
    添加一个字段,删除一个字段,修改一个字段!!!

    对表的结构的修改需要使用:alter
    属于DDL语句
    DDL包括:create drop alter

    第一:在实际的开发中,需求一旦确定之后,表一旦设计好之后,很少进行对表结构的修改,因为开发进行中的时候,修改表结构,成本比较高
    修改表的结构,对应的java代码就需要进行大量的修改,成本是比较高的。
    这个责任应该是由设计人员来承担!!!

    第二:由于修改表结构的操作很少,所有我们不需要掌握,如果有一天真的要修改表结构,你可以使用工具!!!

    修改表结构的操作是不需要写到java程序中,实际上也不是java程序员的范畴。