day 02 DML数据操作语言

由于sql语句不区分大小写,为了书写方便,本文所有命令统一使用小写

往期内容

目录

一、insert

二、update

三、delete


DML是数据操作语言,主要包含的语句:insertupdatedelete,即添加,修改,删除,DML是对数据进行操作,不影响表的结构

一、insert

insert into 表名(字段名1,字段名2,字段名3......) values(值1,值2,值3......);

#优点是可以只写个别字段,其他字段使用默认值或者NULL;字段名顺序可以改变,但要与后面的值一一对应(数量一致,数据类型一致)。

#添加一条信息,学号:1,姓名:张三,性别:男,年龄:20
#性别跟默认值一样,可以不写

mysql> insert into t_newstudent(no,studentname,age) values(1,"张三",20);
Query OK, 1 row affected (0.07 sec)

mysql> select * from t_newstudent;
+------+-------------+------+------+
| no   | studentname | sex  | age  |
+------+-------------+------+------+
|    1 | 张三        | 男   |   20 |
+------+-------------+------+------+
1 row in set (0.01 sec)

selsct 是查询语句,下篇详讲,此处不赘述。。。。 


insert into 表名 values(值1,值2,值3......);

#字段名省略不写时,默认是全部字段名按从左到右的顺序排列,所以值也必须全部写

#添加学号:2,姓名:李四,性别:女,年龄:20

mysql> insert into t_newstudent values(2,"李四","女",20);
Query OK, 1 row affected (0.04 sec)

mysql> select * from t_newstudent;
+------+-------------+------+------+
| no   | studentname | sex  | age  |
+------+-------------+------+------+
|    1 | 张三        | 男   |   20 |
|    2 | 李四        | 女   |   20 |
+------+-------------+------+------+
2 rows in set (0.00 sec)

 insert into 表名(字段名1,字段名2) values( ),(  ),(  ),(  );

insert into 表名 values(  ),(  ),(  ),(  );

一次性插入多条数据

#一次性添加三条数据

mysql> insert into t_newstudent values
    -> (3,"王五","女",21),
    -> (4,"赵六","女",19),
    -> (5,"李华","男",19);
Query OK, 3 rows affected (0.01 sec)
Records: 3  Duplicates: 0  Warnings: 0

mysql> select * from t_newstudent;
+------+-------------+------+------+
| no   | studentname | sex  | age  |
+------+-------------+------+------+
|    1 | 张三        | 男   |   20 |
|    2 | 李四        | 女   |   20 |
|    3 | 王五        | 女   |   21 |
|    4 | 赵六        | 女   |   19 |
|    5 | 李华        | 男   |   19 |
+------+-------------+------+------+
5 rows in set (0.00 sec)

二、update

 update 表名 set 字段名1=新值1,字段名2=新值2,字段名3=新值3;

#没有限制条件,会修改全部

#将学号改为3,年龄改为30

mysql> update t_newstudent set no=3,age=30;
Query OK, 5 rows affected (0.01 sec)
Rows matched: 5  Changed: 5  Warnings: 0

mysql> select * from t_newstudent;
+------+-------------+------+------+
| no   | studentname | sex  | age  |
+------+-------------+------+------+
|    3 | 张三        | 男   |   30 |
|    3 | 李四        | 女   |   30 |
|    3 | 王五        | 女   |   30 |
|    3 | 赵六        | 女   |   30 |
|    3 | 李华        | 男   |   30 |
+------+-------------+------+------+
5 rows in set (0.00 sec)

update 表名 set 字段名1=新值1,字段名2=新值2,字段名3=新值3... where 条件;

对符合条件的进行修改

#把张三的信息改回来

mysql> update t_newstudent set no=1,age=20 where studentname="张三";
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> select * from t_newstudent;
+------+-------------+------+------+
| no   | studentname | sex  | age  |
+------+-------------+------+------+
|    1 | 张三        | 男   |   20 |
|    3 | 李四        | 女   |   30 |
|    3 | 王五        | 女   |   30 |
|    3 | 赵六        | 女   |   30 |
|    3 | 李华        | 男   |   30 |
+------+-------------+------+------+
5 rows in set (0.01 sec)

三、delete

delete是数据删除语句

delete from 表名 where 条件;

#不写条件会把整张表的数据全部删除!!!

#删除名字为“李四”的信息

mysql> select * from t_newstudent;
+------+-------------+------+------+
| no   | studentname | sex  | age  |
+------+-------------+------+------+
|    1 | 张三        | 男   |   20 |
|    3 | 李四        | 女   |   30 |
|    3 | 王五        | 女   |   30 |
|    3 | 赵六        | 女   |   30 |
|    3 | 李华        | 男   |   30 |
+------+-------------+------+------+
5 rows in set (0.00 sec)

mysql> delete from t_newstudent where studentname="李四";
Query OK, 1 row affected (0.01 sec)

mysql> select * from t_newstudent;
+------+-------------+------+------+
| no   | studentname | sex  | age  |
+------+-------------+------+------+
|    1 | 张三        | 男   |   20 |
|    3 | 王五        | 女   |   30 |
|    3 | 赵六        | 女   |   30 |
|    3 | 李华        | 男   |   30 |
+------+-------------+------+------+
4 rows in set (0.00 sec)
#不加条件

mysql>  delete from t_newstudent;
Query OK, 3 rows affected (0.00 sec)

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

mysql> desc t_newstudent;
+-------------+---------+------+-----+---------+-------+
| Field       | Type    | Null | Key | Default | Extra |
+-------------+---------+------+-----+---------+-------+
| no          | int     | YES  |     | NULL    |       |
| studentname | char(3) | YES  |     | NULL    |       |
| sex         | char(1) | YES  |     | 男      |       |
| age         | int     | YES  |     | NULL    |       |
+-------------+---------+------+-----+---------+-------+
4 rows in set (0.02 sec)

delete 只是删除表中的数据,不会删除表,可以继续往表中添加数据

delete删除时是一条一条数据进行删除,当数据量很大时,速度会很慢

优点:支持回滚,数据可以恢复!!!(后续事务篇介绍)


数据量很大很大时,使用truncate语句删除数据

truncate table 表名;      #属于DDL操作

特点:删除速度很快,不支持回滚,即数据无法恢复!!!!!

注意!!!

delete 和  truncate 都只是删除了表中的数据,没有删除表,若想删除表,还需要执行drop语句

drop table 表名;

未完待续。。。。。。。。。。。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

冷烬亿下

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值