MySQL学习笔记(七)

127 阅读2分钟

这是我参与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();