11 表的增删改(二)

1 insert语句可以一次插入多条记录吗?【掌握】

语法:insert into t_user(字段名1,字段名2) values(),(),(),();
mysql> desc t_user;
+-------------+-------------+------+-----+---------+-------+
| Field       | Type        | Null | Key | Default | Extra |
+-------------+-------------+------+-----+---------+-------+
| id          | int(11)     | YES  |     | NULL    |       |
| name        | varchar(32) | YES  |     | NULL    |       |
| birth       | date        | YES  |     | NULL    |       |
| create_time | datetime    | YES  |     | NULL    |       |
+-------------+-------------+------+-----+---------+-------+

一次可以插入多条记录:

insert into t_user(id,name,birth,create_time) values
		(1,'zs','1980-10-11',now()), 
		(2,'lisi','1981-10-11',now()),
		(3,'wangwu','1982-10-11',now());

2 快速创建表?【了解内容】

mysql> create table emp2 as select * from emp;
原理:
	将一个查询结果当做一张表新建!!!!!
	这个可以完成表的快速复制!!!!
	表创建出来,同时表中的数据也存在了!!!
create table mytable as select empno,ename from emp where job = 'MANAGER';

3 将查询结果插入到一张表当中?insert相关的!!!【了解内容】

create table dept_bak as select * from dept;

mysql> select * from dept_bak;

+--------+------------+----------+
| DEPTNO | DNAME      | LOC      |
+--------+------------+----------+
|     10 | ACCOUNTING | NEW YORK |
|     20 | RESEARCH   | DALLAS   |
|     30 | SALES      | CHICAGO  |
|     40 | OPERATIONS | BOSTON   |
+--------+------------+----------+
insert into dept_bak select * from dept; //很少用!

mysql> select * from dept_bak;

+--------+------------+----------+
| 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   |
+--------+------------+----------+

4 快速删除表中的数据?【truncate比较重要,必须掌握】

    //删除dept_bak表中的数据
	delete from dept_bak; //这种删除数据的方式比较慢。

    mysql> select * from dept_bak;
	

Empty set (0.00 sec)

(1)delete语句删除数据的原理?(delete属于DML语句!!!)
表中的数据被删除了,但是这个数据在硬盘上的真实存储空间不会被释放!!!
这种删除缺点是:删除效率比较低。
这种删除优点是:支持回滚,后悔了可以再恢复数据!!!

   用法:delete from dept_bak;

(2)truncate语句删除数据的原理?
这种删除效率比较高,表被一次截断,物理删除。
这种删除缺点:不支持回滚。
这种删除优点:快速。

用法:truncate table dept_bak; (这种操作属于DDL操作。)

(3)大表非常大,上亿条记录????
删除的时候,使用delete,也许需要执行1个小时才能删除完!效率较低。
可以选择使用truncate删除表中的数据。只需要不到1秒钟的时间就删除结束。效率较高。
但是使用truncate之前,必须仔细询问客户是否真的要删除,并警告删除之后不可恢复!

truncate是删除表中的数据,表还在!

(4)删除表操作?
drop table 表名; // 这不是删除表中的数据,这是把表删除。

5 对表结构的增删改?

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

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

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

第二:由于修改表结构的操作很少,所以我们不需要掌握,如果有一天
真的要修改表结构,你可以使用工具!!!!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值