1.删除表中数据
1.1 方法一:
命令语法:delete from 表名 where 表达式
实践:
(1)删除表test表中编号为5的记录
mysql> use linzhongniao;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> select * from student;
ERROR 1146 (42S02): Table 'linzhongniao.student' doesn't exist
mysql> select * from test;
+----+-----------+
| id | name |
+----+-----------+
| 1 | nishishei |
| 2 | wwn1314 |
| 3 | lisi |
| 4 | woshishei |
| 5 | xiaozhang |
+----+-----------+
5 rows in set (0.00 sec)
mysql> delete from test where id='5';
Query OK, 1 row affected (0.00 sec)
mysql> select * from test;
+----+-----------+
| id | name |
+----+-----------+
| 1 | nishishei |
| 2 | wwn1314 |
| 3 | lisi |
| 4 | woshishei |
+----+-----------+
4 rows in set (0.00 sec)
(2)也可以删除name等于lisi的行
mysql> select * from test;
+----+-----------+
| id | name |
+----+-----------+
| 1 | nishishei |
| 2 | wwn1314 |
| 3 | lisi |
| 4 | woshishei |
+----+-----------+
4 rows in set (0.00 sec)
mysql> delete from test where name='lisi';
ERROR 1175 (HY000): You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column
mysql> delete from test where name='lisi' and id='3';
Query OK, 1 row affected (0.00 sec)
mysql> select * from test;
+----+-----------+
| id | name |
+----+-----------+
| 1 | nishishei |
| 2 | wwn1314 |
| 4 | woshishei |
+----+-----------+
3 rows in set (0.00 sec)
(3)也可以删除id大于3的行
mysql> delete from test where id>'3';
Query OK, 1 row affected (0.00 sec)
mysql> select * from test;
+----+-----------+
| id | name |
+----+-----------+
| 1 | nishishei |
| 2 | wwn1314 |
+----+-----------+
2 rows in set (0.00 sec)
提示:不加条件就是全部删除,也是非常危险的操作,这里接不演示了。delete from student 。
1.2 方法二:
命令语法:truncate table 表名(清空表中的所有数据)
mysql> truncate table test;
Query OK, 0 rows affected (0.00 sec)
mysql> select * from student;
Empty set (0.00 sec)
truncate from srudent和delete from student区别
(1)truncate table student; 更快,清空物理文件。
(2)delete from student; 逻辑清除,按行删。