写点什么

MySQL 基础之十二:增删改

用户头像
打工人!
关注
发布于: 2021 年 06 月 14 日
MySQL基础之十二:增删改

主要内容:

本篇文章的主要讲解增(插)、删、改如何用 SQL 语句操作,以及一些注意事项。

增(insert):

insert 就是插入数据,语法格式:insert into 表名(字段 1,字段 2,... ...)values(值 1,值 2,... ...);

小贴士:字段的数量和值的数量相同,并且数据类型要对应相同

插入的时候可以全部字段插入,字段顺序也可以调换,当然也可以只插入一个字段,这个时候,其他字段自动为 NULL。

  • 案例:

  • 本文用的表是上一篇文章中所建的表,先来查看一下表结构:

mysql> desc t_student;

+---------+-------------+------+-----+---------+-------+

| Field | Type | Null | Key | Default | Extra |

+---------+-------------+------+-----+---------+-------+

| no | bigint(20) | YES | | NULL | |

| name | varchar(10) | YES | | NULL | |

| sex | varchar(10) | YES | | NULL | |

| classno | char(10) | YES | | NULL | |

| birth | char(10) | YES | | NULL | |

+---------+-------------+------+-----+---------+-------+

5 rows in set (0.04 sec)

  • 现在我们想修改字段 classno 的数据类型以及长度为 varchar(255),怎么办?

mysql> alter table t_student modify column classno varchar(255);

  • 修改之后,再来查看一下表结构:

mysql> desc t_student;

+---------+--------------+------+-----+---------+-------+

| Field | Type | Null | Key | Default | Extra |

+---------+--------------+------+-----+---------+-------+

| no | bigint(20) | YES | | NULL | |

| name | varchar(10) | YES | | NULL | |

| sex | varchar(10) | YES | | NULL | |

| classno | varchar(255) | YES | | NULL | |

| birth | char(10) | YES | | NULL | |

+---------+--------------+------+-----+---------+-------+

5 rows in set (0.01 sec)

  • 我们现在查看一下编码字符集:

mysql> show variables like 'character_set_%'

-> ;

+--------------------------+---------------------------------------------------------------+

| Variable_name | Value |

+--------------------------+---------------------------------------------------------------+

| character_set_client | utf8 |

| character_set_connection | utf8 |

| character_set_database | utf8 |

| character_set_filesystem | binary |

| character_set_results | utf8 |

| character_set_server | utf8 |

| character_set_system | utf8 |

| character_sets_dir | C:\Program Files (x86)\MySQL\MySQL Server 5.5\share\charsets\ |

+--------------------------+---------------------------------------------------------------+

从上表中可以看到,客户端以及服务器端都是用 utf8 进行编码,但是我们用的 windows 用的字符集是 gbk,因此,我们不更改字符集的话,通过命令行是无法插入中文的。开发中一般都是用 utf8 进行编码,因此本文我们不更改编码字符集,但是要知道有这个事。

  • 现在我们插入一条数据:

mysql> insert into t_student (no,name,sex,classno,birth) values(1,'Mary','0','dayi','1995-04-23');

Query OK, 1 row affected (0.02 sec)

查看一下插入结果:

mysql> select * from t_student;

+------+------+------+---------+------------+

| no | name | sex | classno | birth |

+------+------+------+---------+------------+

| 1 | Mary | 0 | dayi | 1995-04-23 |

+------+------+------+---------+------------+

1 row in set (0.00 sec)

  • 省略字段插入数据:

如果我们插入数据时,所有的字段都插入,这个时候我们就可以省略字段。

mysql> insert into t_student values(2,'Bob','1','daer','1997-09-12');

然后我们查询一下表格,看数据是否插入成功。

mysql> select * from t_student;

+------+------+------+---------+------------+

| no | name | sex | classno | birth |

+------+------+------+---------+------------+

| 1 | Mary | 0 | dayi | 1995-04-23 |

| 2 | Bob | 1 | daer | 1997-09-12 |

+------+------+------+---------+------------+

2 rows in set (0.00 sec)

数据插入成功。

一次插入多行数据怎么办呢?

values(),(),... ... ;

改(update):

update 中文的意思就是更新的意思,语法格式如下:

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

小贴士:如果后面没有 where 条件,则整张表都会被修改

  • 案例:

现在我们把第 1 条数据 Mary 名字改为 Jack。

mysql> update t_student set name='Jack' where no=1;

mysql> select * from t_student;

+------+------+------+---------+------------+

| no | name | sex | classno | birth |

+------+------+------+---------+------------+

| 1 | Jack | 0 | dayi | 1995-04-23 |

| 2 | Bob | 1 | daer | 1997-09-12 |

+------+------+------+---------+------------+

2 rows in set (0.00 sec)

从上面的查询结果看,数据修改成功。

删(delete):

delete 就是删除的意思,语法格式:

delete from 表名 where 条件;

小贴士:如果没有条件,数据被全部删除

  • 现在我们删除掉第 1 条数据。

mysql> delete from t_student where no=1;

现在再来查询一下表中的数据:

mysql> select * from t_student;

+------+------+------+---------+------------+

| no | name | sex | classno | birth |

+------+------+------+---------+------------+

| 2 | Bob | 1 | daer | 1997-09-12 |

+------+------+------+---------+------------+

1 row in set (0.00 sec)

从查询结果看出,第一条数据被删除掉了。

发布于: 2021 年 06 月 14 日阅读数: 8
用户头像

打工人!

关注

打工人! 2019.11.10 加入

InfoQ年度最佳内容获得者。 InfoQ签约作者 本人打工人一枚,自动化和控制专业入坑人一枚。目前在研究深度强化学习(DRL)技术。准备入坑互联网小白一枚。喜欢了解科技前沿技术,喜欢拍照。

评论

发布
暂无评论
MySQL基础之十二:增删改