MySQL 从零开始:04 增删改查

news2024/11/17 17:46:34

文章目录

  • 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,
    ...
where
    condition;

在上面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, ...
from
    tablename
where
    conditions

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.coloradmin.cn/o/1371916.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

狄克逊(Dixon)检验

目录 1.介绍:2.效果:小结: 1.介绍: 狄克逊检验法是一种用于检测异常值的统计方法,它是一种非参数的方法,可以有效地寻找数据集中不正常的观测值。该方法由美国统计学家布鲁斯E狄克逊(Bruce E. …

代理IP连接不上?网速过慢?自检与应对方法来了

当您使用代理时,您可能会遇到不同的代理错误代码显示代理IP连不通、访问失败、网速过慢等种种问题。 在本文中中,我们将讨论您在使用代理IP时可能遇到的常见错误、发生这些错误的原因以及解决方法。 一、常见代理服务器错误 当您尝试访问网站时&#…

【题解】—— LeetCode一周小结1

1.经营摩天轮的最大利润 题目链接: 1599. 经营摩天轮的最大利润 你正在经营一座摩天轮,该摩天轮共有 4 个座舱 ,每个座舱 最多可以容纳 4 位游客 。你可以 逆时针 轮转座舱,但每次轮转都需要支付一定的运行成本 runningCost 。摩…

任务管理器的 top

文章目录 任务管理器的 top常规使用显示完整命令设置信息更新次数设置信息更新时间显示指定的进程信息指定用户的进程信息更多信息 任务管理器的 top top命令比较像Windows里面的任务管理器,提供一个动态实时的系统状态检测,可以检测实时显示内存、CPU、…

openGauss学习笔记-193 openGauss 数据库运维-常见故障定位案例-备机卡住-数据库只读

文章目录 openGauss学习笔记-193 openGauss 数据库运维-常见故障定位案例-备机卡住-数据库只读193.1 switchover操作时,主机降备卡住193.1.1 问题现象193.1.2 原因分析193.1.3 处理办法 193.2 磁盘空间达到阈值,数据库只读193.2.1 问题现象193.2.2 原因分…

不定期更新免费签|在线安装全能签轻松签万能签GBOX魔力签喵喵签|赶快白嫖

使用Safari浏览器打开 1.打开平台ios.hccld.com点击应用后的“获取”获取设备UDID,获取后在我的里上就会显示设备UDID信息。 2.点我的-购买证书,选择需要购买的证书进行购买。 3.点击“兑换证书”,输入购买的兑换码。 4.选择你要安装的签名安…

大模型PEFT技术原理(一):BitFit、Prefix Tuning、Prompt Tuning

随着预训练模型的参数越来越大,尤其是175B参数大小的GPT3发布以来,让很多中小公司和个人研究员对于大模型的全量微调望而却步,近年来研究者们提出了各种各样的参数高效迁移学习方法(Parameter-efficient Transfer Learning&#x…

论文封面表格制作

原文参考:【【论文排版】论文封面完美对齐 强迫症重度患者的经验分享】https://www.bilibili.com/video/BV18f4y1p7hc?vd_source046491acdcff4b39fed20406b36a93e2 视频里up主介绍很详细。我自己也记录一下。 介绍一下如何完成论文封面信息的填写。 创建一个3列…

「服务器」4.新手小白如何安装服务器环境-宝塔

刚开始初始化好的服务器,使用了阿里云客户端,看着网络脚本乱装,后来决定宝塔环境发现有重复的环境,遂决定重新初始化一下,然后重头干起。 重置服务器 将服务器关闭运行状态后,点击重新初始化云盘即可重新初…

【模拟IC学习笔记】 PSS和Pnoise仿真

目录 PSS Engine Beat frequency Number of harmonics Accuracy Defaults Run tranisent?的3种设置 Pnoise type noise Timeaverage sampled(jitter) Edge Crossing Edge Delay Sampled Phase sample Ratio 离散时间网络(开关电容电路)的噪声仿真方法 PSS PSS…

Windows11 - Ubuntu 双系统及 ROS、ROS2 安装

系列文章目录 前言 一、Windows11 - Ubuntu 双系统安装 硬件信息: 设备名称 DESKTOP-B62D6KE 处理器 13th Gen Intel(R) Core(TM) i5-13500H 2.60 GHz 机带 RAM 40.0 GB (39.8 GB 可用) 设备 ID 7673EF86-8370-41D0-8831-84926668C05A 产品 ID 00331-10000-0000…

c++学习笔记-STL案例-机房预约系统1-需求分析

1 机房预约系统需求 1.1 简单介绍 学校有几个规格不同的机房,由于使用经常出现“撞车”现象,现在开发一套预约系统,解决这一问题。 1.2 身份介绍 分别有三种身份使用该系统 学生代表:申请使用机房教师:审核学生的…

【Wordpress高级教程】 Wordpress免插件建立站群,wordpress整站迁移/安装

提示:该方法适用于Wordpress的站点,且无需插件哦(插件一般都需要付费的,博主比较穷,我们就通过技术来解决) 文章目录 前言一、准备工作二、搭建站群1.打包wp-content2.导入新站点3.导出数据库4.修改数据库配…

JSON数据处理

1.添加json依赖 springmvc 默认使用jackson作为json类库,不需要修改applicationContext-servlet.xml任何配置&#xff0c;只需引入以下类库springmvc就可以处理json数据&#xff1a; <!--spring-json依赖--> <dependency><groupId>com.fasterxml.jackson.c…

【mysql】—— 用户管理

目录 &#xff08;一&#xff09;为什么要有用户管理&#xff1f; &#xff08;二&#xff09;用户 2.1 查看用户信息 2.2 创建用户 2.3 删除用户 2.4 修改用户密码 &#xff08;三&#xff09;数据库的权限 3.1 给用户授权 3.2 回收权限 &#xff08;一&#xff09;为…

Wordpress网站开发问题解决——除了主页之外的所有页面都是“找不到页面内容”(修复记录)

一条纯经验操作 引言慌火上浇油后台查看 解决之路结尾 引言 最近 阿里云老是提醒我边缘计算机控制升级 我自己建立了一个网站&#xff0c;用的就是阿里云的万网服务器 所以 我去看看 结果跟我没什么关系 本以为就这么愉快地结束了 没想到 我建立的网站就只能打开主页 其他页…

MongoDB查找命令find,让数据返回称心如意

业务系统接入数据库后&#xff0c;每天都有大量的数据写入数据库。面对逐日增加的数据&#xff0c;开发人员或数据分析人员&#xff0c;该如何读取数据&#xff0c;怎样设置条件&#xff0c;从数据库中查询数据&#xff1f; 本文基于mongodb的官方文档&#xff0c;整理出find命…

美创科技第59号安全实验室最新力作!《内网渗透实战攻略》出版发行

总结先进攻防实战经验&#xff0c;基于创新入侵生命周期模型&#xff0c;为提升渗透实战能力提供系统操作教程&#xff01;近期&#xff0c;美创科技创始人&CEO柳遵梁&#xff0c;美创第59号安全实验室&#xff08;王月兵、覃锦端、毛菲、刘聪等&#xff09;撰写的新书《内…

RockMQ面试题(1)

为什么要使用MQ 应用解耦&#xff1a;系统的耦合性越高&#xff0c;容错性就越低。以电商应用为例&#xff0c;用户创建订单后&#xff0c;如果耦合调用库存系统、物流 系统、支付系统&#xff0c;任何一个子系统出了故障或者因为升级等原因暂时不可用&#xff0c;都会造成下单…

星耀新春,集星探宝,卡奥斯开源社区双节活动上线啦!

卡奥斯开源社区龙年新春专题活动上线啦&#xff01; “星耀新春&#xff0c;集星探宝”&#xff0c;卡奥斯开源社区龙年新春专题活动重磅发布&#xff01; 写文章、发项目、建应用、做测评&#xff0c;玩转盘、开宝箱 6大活动板块陪你玩儿转双节&#xff01; 扫地机器人、家…