day03-1 insert语句与快速删除.md

zhanglei 2022年05月31日 362次浏览

day03-1 insert语句与快速删除

insert一次插入多条记录

2、insert语句可以一次插入多条记录吗?【掌握】
	可以的!
	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());

		语法:insert into t_user(字段名1,字段名2) values(),(),(),();

	mysql> select * from t_user;
	+------+--------+------------+---------------------+
	| id   | name   | birth      | create_time         |
	+------+--------+------------+---------------------+
	|    1 | zs     | 1980-10-11 | 2020-03-19 09:37:01 |
	|    2 | lisi   | 1981-10-11 | 2020-03-19 09:37:01 |
	|    3 | wangwu | 1982-10-11 | 2020-03-19 09:37:01 |
	+------+--------+------------+---------------------+

truncate删除表的数据

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

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

	mysql> select * from dept_bak;
	Empty set (0.00 sec)

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

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

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

		truncate是删除表中的数据,表还在!
	
	删除表操作?
		drop table 表名; // 这不是删除表中的数据,这是把表删除。