这是我参与11月更文挑战的第2天,活动详情查看:2021最后一次更文挑战
3、DML语句
3.1 INSERT语句
-
insert into 表名(字段名1 , 字段名2 ,字段名3.....)values (值1 , 值2 , 值3 .....) ;
-
insert into 表名 (字段....)values (值1 , 值2....),(值3,值4....),(......);
-
注意:
- 字段名要一一对应
- insert语句执行成功之后,一定会产生一行新的数据
- 字段名可以省略 , 但表示全部都写 ,顺序不能变。
【案例】:向创建出来的学生表中插入五个值
insert into t_student values(1 , 'zhangsan' , 'm' , 20 , '21zhangsan@123.com');
insert into t_student values(2 , 'lisi' , 'f' , 20 , '21lisi@123.com');
insert into t_student values(3 , 'wangwu' , 'f' , 20 , '21wangwu@123.com' );
insert into t_student values(4 , 'zhaoliu' , 'm' , 18 , '21zhaoliu@123.com');
insert into t_student values (5 , 'songqi' , 'm' , 19 , '21songqi@123.com');
mysql> select * from t_student;
+------+----------+------+------+--------------------+
| no | name | sex | age | email |
+------+----------+------+------+--------------------+
| 1 | zhangsan | m | 20 | 21zhangsan@123.com |
| 2 | lisi | f | 20 | 21lisi@123.com |
| 3 | wangwu | f | 20 | 21wangwu@123.com |
| 4 | zhaoliu | m | 18 | 21zhaoliu@123.com |
| 5 | songqi | m | 19 | 21songqi@123.com |
+------+----------+------+------+--------------------+
5 rows in set (0.00 sec)
【学生表的结构】:
mysql> desc t_student;
+-------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| no | int(11) | YES | | NULL | |
| name | varchar(32) | YES | | NULL | |
| sex | char(1) | YES | | m | |
| age | int(11) | YES | | NULL | |
| email | varchar(255) | YES | | NULL | |
+-------+--------------+------+-----+---------+-------+
5 rows in set (0.00 sec)
now() 获取系统当前时间
【案例】:插入李四的信息
insert into t_user (id ,name , birth , create_time) values (2 ,'lisi','2002-10-2',now());
//insert 一次插入多条数据
【案例】:向t_user中一次插入多条数据
insert into t_user values(1 , 'zhangsan' , '2000-10-01' , now()),
(2 , 'lisi' , '2001-01-11' , now()) , (3 , 'wangwu' , '2002-10-02' , now()),
(4 , 'zhaoliu' , '2003-6-8' , now()), (5 , 'songqi' , '2000-12-21' , now());
【案例】:将查询结果插入到一张表之中
create table dept_bak as select * from dept ;
insert into dept_bak select * from dept ;
3.2 DELETE语句
- 格式:delete from 表名 where 条件 ;
- 注意:不加条件表示清空表中的所有数据
- 原理:数据删除,空间不会释放 ----- 可以恢复(rollback)
【案例】:删除表中id = 2 的数据
delete from t_user where id = 2 ;
【案例】:删除t_user表中的所有数据,注意不能删除表的存在。
delete from t_user ; // 效率比较慢
3.3 UPDATE语句
- 格式:update 表名 set 字段名1 = 值1 , 字段2 = 值2 , 字段3 = 值3 ... where 条件;
- 注意:如果没有条件,数据会全部更新
【案例】:修改第三条李四的信息为王五,生日为“2001-01-11”
update t_user set name = 'wangwu', birth = '2001-01-11' where id = 3 ;
【案例】:将所有信息的创建日期修改为此时
update t_user set create_time = now();