前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MySQL 从零开始:04 表的增删改查

MySQL 从零开始:04 表的增删改查

作者头像
王强
发布2018-08-09 17:50:38
1.2K0
发布2018-08-09 17:50:38
举报
文章被收录于专栏:Python爬虫实战

在上一小节中介绍了 MySQL 数据库的一些最最最基础的入门级也是必须要掌握的10条语句,本节将继续深入学习 MySQL 的增删改查语句。本节讲的增删改查是相对于而言的。

1、准备工作

想要对表进行增删改查,首先应该有张表,假设我们要统计大学同学工作之后的工作情况,建立了如下表格:

姓名

性别

公司

工资

准备工作:

代码语言:javascript
复制
mysql> create database salarydb;
Query OK, 1 row affected (0.01 sec)

mysql> use salarydb;
Database changed
mysql> create table class(
    -> id int primary key auto_increment,
    -> name varchar(10) not null default '',
    -> gender char(1) not null default '',
    -> company varchar(20) not null default '',
    -> salary decimal(6,2) not null default 0.00
    -> )engine myisam charset utf8;
Query OK, 0 rows affected, 1 warning (0.04 sec)

mysql> show tables;
+--------------------+
| Tables_in_salarydb |
+--------------------+
| class              |
+--------------------+
1 row in set (0.00 sec)

mysql> desc class;
+---------+--------------+------+-----+---------+----------------+
| Field   | Type         | Null | Key | Default | Extra          |
+---------+--------------+------+-----+---------+----------------+
| id      | int(11)      | NO   | PRI | NULL    | auto_increment |
| name    | varchar(10)  | NO   |     |         |                |
| gender  | char(1)      | NO   |     |         |                |
| company | varchar(20)  | NO   |     |         |                |
| salary  | decimal(6,2) | NO   |     | 0.00    |                |
+---------+--------------+------+-----+---------+----------------+
5 rows in set (0.00 sec)

执行结果:

01.准备工作

此处建立了一个表,但是不要困惑于建表语句里面的数据类型等,后续会详细讲解。

表创建完成之后要设置一下 数据库的字符集,因为我们要使用到中文:

代码语言:javascript
复制
set names gbk;

02.设置字符集

2、insert 增加数据

MySQL 通过 INSERT INTO SQL语句来插入数据,其语法为:

代码语言:javascript
复制
# 插入一行
insert into tablename (field1, field2, ..., fieldN)
                    values
                    (value1, value2, ..., valueN);

# 插入多行
insert into tablename (field1, field2, ..., fieldN)
                    values
                    (value1, value2, ..., valueN),
                    (value1, value2, ..., valueN),
                    ...
                    (value1, value2, ..., valueN);

如果数据是字符型,必须使用单引号或者双引号,如:"张三"。

2.1 添加所有列的数据

下面向该表中添加几条数据:

代码语言:javascript
复制
mysql> insert into class (id,name,gender,company,salary)
    -> values (1,'张三','男','网易',9367.84);

一定要记住每个数据段或者字段后面加个空格,比如上面指令第一行最后要加上一个空格。

03.插入一条数据

另外如果我们要添加所有列的数据可以使用如下语法:

代码语言:javascript
复制
insert into tablename VALUES
                    (value1, value2, ..., valueN);

例如:

代码语言:javascript
复制
mysql> insert into class
    -> values (2,'李四','男','百度',8987.63);

执行结果:

04.插入数据省略列名

2.2 添加部分列

有时候我们不需要添加所有列的数据,比如 司徒小翠 在一个保密机构工作,其公司名称和薪水都不能透露,我们可以使用如下语句插入数据:

代码语言:javascript
复制
mysql> insert into class (name,gender)
    -> values ('司徒小翠','女');

执行结果:

05.插入数据部分列

本条记录省略了 id、company和salary 字段,因为id 设置为了自增,所以为3,company 与 salary 都设置了默认值,由于插入时没有指定值,所以就使用了默认值。

2.3 一次插入多条数据

为了省事,我们可以一次性插入多条数据:

代码语言:javascript
复制
mysql> insert into class (name,gender,company,salary)
    -> values
    -> ('石中玉','男','腾讯',7878.32),
    -> ('石中坚','男','腾讯',8234.17);

执行结果:

06.插入数据多条记录

3、delete 删除记录

要从表中删除数据,请使用MySQL delete语句。下面说明了delete语句的语法:

代码语言:javascript
复制
delete from table_name
where condition;

此处的删除是指删除表中的一条记录,也就是一行数据。

现在把 张三 的记录删掉,为什么呢?因为他的工资最高。

代码语言:javascript
复制
mysql> delete from class
    -> where salary>9000;

此语句以薪水作为条件,下面以 姓名 作为筛选条件删除 李四 的记录:

代码语言:javascript
复制
mysql> delete from class
    -> where name='李四';

执行结果:

07.删除数据

当然,where 后面的条件可以叠加,例如:

代码语言:javascript
复制
mysql> delete from class
    -> where salary>9000 and gender='男';

如果你看了上一节的教程,应该记住了这条语句:

代码语言:javascript
复制
delete * from tablename;

它实现的功能是删除表中的所有记录。

4、update 更新记录

我们使用update语句来更新表中的现有数据。也可以使用update语句来更改表中单个行,一组行或所有行的列值,其语法如下:

代码语言:javascript
复制
update table_name set 
    column_name1 = expr1,
    column_name2 = expr2,
    ...
where
    condition;

在上面update语句中:

  • 首先,在update关键字后面指定要更新数据的表名。
  • 其次,set子句指定要修改的列和新值。要更新多个列,请使用以逗号分隔的列表。以字面值,表达式或子查询的形式在每列的赋值中来提供要设置的值。
  • 第三,使用 where 子句中的条件指定要更新的行。where 子句是可选的。 如果省略where子句,则update语句将更新表中的所有行。

石中玉 在腾讯工作了一年后跳槽到了 阿里巴巴,其工资也涨到了 9999.99,使用以下语句更新该条记录:

代码语言:javascript
复制
mysql> update class set
    -> company='阿里',
    -> salary=9999.99
    -> where name='石中玉';

执行结果:

08.更新数据

注:一定要填写 where 后面的 condition,否则整个表的该列都会被修改。

5、select 查询记录

使用select语句从表或视图获取数据。表由行和列组成,我们往往只想看到子集行,列的子集或两者的组合。select语句的结果称为结果集,它是行列表,每行由相同数量的列组成。

select语句控制要查看哪些行和列,其基本语法为:

代码语言:javascript
复制
select 
    column_name1, column_name2, ...
from
    tablename
where
    conditions

5.1 查询所有行所有列

delete * from tablename; 中的 * 一样,select 也可以和其结合:

代码语言:javascript
复制
mysql> select * from class;

执行结果:

09.查询所有行所有列

5.2 查询指定行的所有列

代码语言:javascript
复制
mysql> select * from class
    -> where id>3;

执行结果:

10.查询指定行的所有列

5.3 查询所有行的指定列

代码语言:javascript
复制
mysql> select id,name,salary from class;

执行结果:

11.查询所有行的指定列

5.4 查询指定行的指定列

代码语言:javascript
复制
mysql> select id,name,salary from class
    -> where id>3;

执行结果:

12.查询指定行的指定列

至此数据库的增删改查的基本语法都已介绍了,当然增删改查还有高级的用法,以后有机会讲到。

最后再次强调:一定要记住每个数据段或者字段后面加个空格,尤其是多行语句时每行末尾不要丢掉空格。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-07-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 C与Python实战 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、准备工作
  • 2、insert 增加数据
    • 2.1 添加所有列的数据
      • 2.2 添加部分列
        • 2.3 一次插入多条数据
        • 3、delete 删除记录
        • 4、update 更新记录
        • 5、select 查询记录
          • 5.1 查询所有行所有列
            • 5.2 查询指定行的所有列
              • 5.3 查询所有行的指定列
                • 5.4 查询指定行的指定列
                相关产品与服务
                云数据库 MySQL
                腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档