MySQL 从零开始:04 增删改查

文章目录

  • 1、准备工作
  • 2、insert 增加数据
    • 2.1 添加所有列的数据
    • 2.2 添加部分列
    • 2.3 一次插入多条数据
  • 3、delete 删除记录
  • 4、update 更新记录
  • 5、select 查询记录
    • 5.1 查询所有行所有列
    • 5.2 查询指定行的所有列
    • 5.3 查询所有行的指定列
    • 5.4 查询指定行的指定列

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

1、准备工作

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

姓名性别公司工资

准备工作:

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.准备工作

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

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

set names gbk;

02.设置字符集

2、insert 增加数据

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

# 插入一行
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 添加所有列的数据

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

mysql> insert into class (id,name,gender,company,salary)-> values (1,'张三','男','网易',9367.84);

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

03.插入一条数据

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

insert into tablename VALUES(value1, value2, ..., valueN);

例如:

mysql> insert into class-> values (2,'李四','男','百度',8987.63);

执行结果:

04.插入数据省略列名

2.2 添加部分列

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

mysql> insert into class (name,gender)-> values ('司徒小翠','女');

执行结果:

05.插入数据部分列

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

2.3 一次插入多条数据

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

mysql> insert into class (name,gender,company,salary)-> values-> ('石中玉','男','腾讯',7878.32),-> ('石中坚','男','腾讯',8234.17);

执行结果:

06.插入数据多条记录

3、delete 删除记录

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

delete from table_name
where condition;

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

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

mysql> delete from class-> where salary>9000;

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

mysql> delete from class-> where name='李四';

执行结果:

07.删除数据

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

mysql> delete from class-> where salary>9000 and gender='男';

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

delete * from tablename;

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

4、update 更新记录

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

update table_name set column_name1 = expr1,column_name2 = expr2,...
wherecondition;

在上面update语句中:

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

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

mysql> update class set-> company='阿里',-> salary=9999.99-> where name='石中玉';

执行结果:

08.更新数据

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

5、select 查询记录

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

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

select column_name1, column_name2, ...
fromtablename
whereconditions

5.1 查询所有行所有列

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

mysql> select * from class;

执行结果:

09.查询所有行所有列

5.2 查询指定行的所有列

mysql> select * from class-> where id>3;

执行结果:

10.查询指定行的所有列

5.3 查询所有行的指定列

mysql> select id,name,salary from class;

执行结果:

11.查询所有行的指定列

5.4 查询指定行的指定列

mysql> select id,name,salary from class-> where id>3;

执行结果:

12.查询指定行的指定列

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/339223.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

docker微服务案例

文章目录 建立简单的springboot项目(boot3)boot2建立通过dockerfile发布微服务部署到docker容器编写Dockerfile打包成镜像运行镜像微服务 建立简单的springboot项目(boot3) 1.建立module 2. 改pom <?xml version"1.0" encoding"UTF-8"?> <…

数据结构02附录02:哈希表[C++]

图源&#xff1a;文心一言 上机题目练习整理~&#x1f95d;&#x1f95d; 本篇作为线性表的代码补充&#xff0c;每道题提供了优解和暴力解算法&#xff0c;供小伙伴们参考~&#x1f95d;&#x1f95d; 第1版&#xff1a;在力扣新手村刷题的记录&#xff0c;优解是Bard老师提…

JVM基础(4)——JVM存活判定算法

作者简介&#xff1a;大家好&#xff0c;我是smart哥&#xff0c;前中兴通讯、美团架构师&#xff0c;现某互联网公司CTO 联系qq&#xff1a;184480602&#xff0c;加我进群&#xff0c;大家一起学习&#xff0c;一起进步&#xff0c;一起对抗互联网寒冬 学习必须往深处挖&…

【C#】使用 LINQ 中的 Skip() 和 Take()进行分页,为什么要分页,分页作用是什么

欢迎来到《小5讲堂》 大家好&#xff0c;我是全栈小5。 这是是《C#》序列文章&#xff0c;每篇文章将以博主理解的角度展开讲解&#xff0c; 特别是针对知识点的概念进行叙说&#xff0c;大部分文章将会对这些概念进行实际例子验证&#xff0c;以此达到加深对知识点的理解和掌握…

自己在家怎么给电脑重装系统不用U盘?

自己在家怎么给电脑重装系统不用U盘&#xff1f;用户发现自己在家用的电脑系统出现很严重的问题&#xff0c;但又没有U盘&#xff0c;想知道有什么方法能够给电脑重新安装上一款正常的系统&#xff1f;接下来小编给用户们分享不用U盘完成系统重新安装的方法步骤&#xff0c;一键…

【HTML】对字体的所有操作详解(经典)

目录 一、文字样式设置的基本标签二 、 设置文字的颜色三、设置文字的尺寸四、 设置文字的字体五、 使文字倾斜六、 使文字加粗七、处理网页中的特殊字符十、 如何更方便地忽略浏览器对部分HTML的解析十一、 其他文字修饰方法十二、为了让文字富有变化&#xff0c;或者为了着意…

异步编程利器:CompletableFuture深度解析

本文已收录至Github&#xff0c;推荐阅读 &#x1f449; Java随想录 微信公众号&#xff1a;Java随想录 文章目录 摘要如何使用源码解析基本结构内部原理执行流程 方法介绍创建对象异步执行任务链式操作异步任务组合异常处理取值与状态超时控制与取消操作依赖完成并发限制记忆…

66、python - 代码仓库介绍

上一节,我们可以用自己手写的算法以及手动搭建的神经网络完成预测了,不知各位同学有没有自己尝试来预测一只猫或者一只狗,看看准确度如何? 本节应一位同学的建议,来介绍下 python 代码仓库的目录结构,以及每一部分是做什么? 我们这个小课的代码实战仓库链接为:cv_lea…

Python 面向对象之单例模式

【一】单例模式概念 单例模式是一种设计模式&#xff0c;其核心思想是确保一个类只有一个实例&#xff0c;并提供一个全局访问点。单例模式通常用于管理共享的资源&#xff0c;例如配置信息、数据库连接、线程池等。关键点在于如何判断这个类是否已经实例化 通过模块导入&…

Codeforces Round 911 C. Anji‘s Binary Tree

原题&#xff1a; C. Anji’s Binary Tree time limit per test 2.5 seconds memory limit per test 256 megabytes input standard input output standard output Keksic keeps getting left on seen by Anji. Through a mutual friend, he’s figured out that Anji really …

人工智能行业的发展前景如何?

人工智能&#xff08;AI&#xff09;已经成为如今科技领域的热门话题之一&#xff0c;从图像识别到自动驾驶&#xff0c;从语音助手到智能机器人&#xff0c;AI技术正在改变我们的生活方式。随着技术的不断发展和应用的扩大&#xff0c;人工智能行业的发展前景无疑是非常广阔的…

[足式机器人]Part2 Dr. CAN学习笔记-Advanced控制理论 Ch04-4系统的可控性Controllability(LTI)线性时不变

本文仅供学习使用 本文参考&#xff1a; B站&#xff1a;DR_CAN Dr. CAN学习笔记-Advanced控制理论 Ch04-4系统的可控性Controllability-LTI线性时不变