【Mysql】数据库第四讲(表的增删改查操作 超全面 附实操案例)

0

表的查询

  • 1.Create 表的创建
    • 1.1单行插入+多行插入
    • 1.2替换
  • 2.Retrieve 读取
    • 2.1全列查询
    • 2.2指定列查询
    • 2.3查询字段为表达式
    • 2.4为查询结果指定别名
    • 2.5结果去重
    • 2.6WHERE条件
    • 2.7结果排序
    • 2.8筛选分页结果
  • 3.Update更新
    • 案例
  • 4.Delete删除
    • 案例
    • 截断表
    • 插入查询结果
  • 5.聚合函数

1.Create 表的创建

  • 语法:
INSERT [INTO] table_name
[(column [, column] ...)]
VALUES (value_list) [, (value_list)] ...
value_list: value, [, value] ...
  • 案例:
    创建一个学生信息表
create table students( id int unsigned primary key AUTO_ not null );

1.1单行插入+多行插入

  • 单行
insert into students values (100,001,'张山');
  • 多行
insert into students values (102,002,'李四'),(103,003,'王五');

000

1.2替换

-- 主键 或者 唯一键 没有冲突,则直接插入;
-- 主键 或者 唯一键 如果冲突,则删除后再插入
REPLACE INTO students (sn, name) VALUES (20001, '曹阿瞒');
Query OK, 2 rows affected (0.00 sec)
-- 1 row affected: 表中没有冲突数据,数据被插入
-- 2 row affected: 表中有冲突数据,删除后重新插入

2.Retrieve 读取

  • 语法
SELECT
[DISTINCT] {* | {column [, column] ...}
[FROM table_name]
[WHERE ...]
[ORDER BY column [ASC | DESC], ...]
LIMIT ...
  • 案例
-- 创建表结构
CREATE TABLE exam_result (
id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(20) NOT NULL COMMENT '同学姓名',
chinese float DEFAULT 0.0 COMMENT '语文成绩',
math float DEFAULT 0.0 COMMENT '数学成绩',
english float DEFAULT 0.0 COMMENT '英语成绩'
);
-- 插入测试数据
INSERT INTO exam_result (name, chinese, math, english) VALUES
('唐三藏', 67, 98, 56),
('孙悟空', 87, 78, 77),
('猪悟能', 88, 98, 90),
('曹孟德', 82, 84, 67),
('刘玄德', 55, 85, 45),
('孙权', 70, 73, 78),
('宋公明', 75, 65, 30);
Query OK, 7 rows affected (0.00 sec)
Records: 7 Duplicates: 0 Warnings: 0

2.1全列查询

select * from exam_result;

00002

2.2指定列查询

0003

2.3查询字段为表达式

  • 表达式不包含字段
    0004
  • 表达式包含字段
    0005
  • 表达式包含多个字段
    0006

2.4为查询结果指定别名

SELECT column [AS] alias_name [...] FROM table_name;

0007

2.5结果去重

00008

2.6WHERE条件

比较运算符:
0009
逻辑运算符:
AND:多个条件必须都为 TRUE(1),结果才是 TRUE(1);
OR:任意一个条件为 TRUE(1), 结果为 TRUE(1)
NOT:条件为 TRUE(1),结果为 FALSE(0)

  • 案例1
    英语不及格的同学及英语成绩 ( < 60 )
    0010

  • 案例2
    语文成绩在 [80, 90] 分的同学及语文成绩
    0011
    0012

  • 案例3
    数学成绩是 58 或者 59 或者 98 或者 99 分的同学及数学成绩0013
    0014

  • 案例4
    姓孙的同学 及 孙某同学

  • % 匹配任意多个(包括 0 个)任意字符
    0015

  • _ 匹配严格的一个任意字符
    0016

  • 案例5

  • WHERE 条件中比较运算符两侧都是字段
    0017

  • 案例6

  • 总分在 200 分以下的同学
    – WHERE 条件中使用表达式
    – 别名不能用在 WHERE 条件中
    0018

  • 案例7
    语文成绩 > 80 并且不姓孙的同学
    0019

  • 案例8
    孙某同学,否则要求总成绩 > 200 并且 语文成绩 < 数学成绩 并且 英语成绩 > 80
    0020

2.7结果排序

语法:

-- ASC 为升序(从小到大)
-- DESC 为降序(从大到小)
-- 默认为 ASC
SELECT ... FROM table_name [WHERE ...]
ORDER BY column [ASC|DESC], [...];

注意:没有 ORDER BY 子句的查询,返回的顺序是未定义的,永远不要依赖这个顺序
案例:

  • 案例1: 同学及数学成绩,按数学成绩升序显示
    0021
  • 案例2:
    查询同学各门成绩,依次按 数学降序,英语升序,语文升序的方式显示
    0022
  • 案例3:
    查询同学及总分,由高到低
    0023
  • 取别名
    0024
  • 案例4:
    查询姓孙的同学或者姓曹的同学数学成绩,结果按数学成绩由高到低显示

0025

2.8筛选分页结果

语法:

-- 起始下标为 0
--0 开始,筛选 n 条结果
SELECT ... FROM table_name [WHERE ...] [ORDER BY ...] LIMIT n;
-- 从 s 开始,筛选 n 条结果
SELECT ... FROM table_name [WHERE ...] [ORDER BY ...] LIMIT s, n;
-- 从 s 开始,筛选 n 条结果,比第二种用法更明确,建议使用
SELECT ... FROM table_name [WHERE ...] [ORDER BY ...] LIMIT n OFFSET s;

建议:对未知表进行查询时,最好加一条 LIMIT 1,避免因为表中数据过大,查询全表数据导致数据库卡死
按 id 进行分页,每页 3 条记录,分别显示 第 1、2、3 页
0026
0027

3.Update更新

语法:

UPDATE table_name SET column = expr [, column = expr ...]
[WHERE ...] [ORDER BY ...] [LIMIT ...]

案例

  • 将孙悟空同学的数学成绩变更为 80 分
    0028
  • 将曹孟德同学的数学成绩变更为 60 分,语文成绩变更为 70 分
    0029
  • 将总成绩倒数前三的 3 位同学的数学成绩加上 30 分
    0030
  • 将所有同学的语文成绩更新为原来的 2 倍
    0031

4.Delete删除

语法:

DELETE FROM table_name [WHERE ...] [ORDER BY ...] [LIMIT ...]

案例

删除孙悟空同学的考试成绩
0031

截断表

语法:

TRUNCATE [TABLE] table_name

注意:这个操作慎用

  1. 只能对整表操作,不能像 DELETE 一样针对部分数据操作;
  2. 实际上 MySQL 不对数据操作,所以比 DELETE 更快,但是TRUNCATE在删除数据的时候,并不经过真正的事物,所以无法回滚
  3. 会重置 AUTO_INCREMENT 项

准备一张测试表
0033
0034
再插入一条数据,自增 id 在重新增长
0035

插入查询结果

INSERT INTO table_name [(column [, column ...])] SELECT ...
  • 案例:删除表中的的重复复记录,重复的数据只能有一份
-- 创建原数据表
CREATE TABLE duplicate_table (id int, name varchar(20));
Query OK, 0 rows affected (0.01 sec)
-- 插入测试数据
INSERT INTO duplicate_table VALUES
(100, 'aaa'),
(100, 'aaa'),
(200, 'bbb'),
(200, 'bbb'),
(200, 'bbb'),
(300, 'ccc');
Query OK, 6 rows affected (0.00 sec)
Records: 6 Duplicates: 0 Warnings: 0

思路:

-- 创建一张空表 no_duplicate_table,结构和 duplicate_table 一样
CREATE TABLE no_duplicate_table LIKE duplicate_table;
Query OK, 0 rows affected (0.00 sec)
比特科技
函数 说明
COUNT([DISTINCT] expr) 返回查询到的数据的 数量
SUM([DISTINCT] expr) 返回查询到的数据的 总和,不是数字没有意义
AVG([DISTINCT] expr) 返回查询到的数据的 平均值,不是数字没有意义
MAX([DISTINCT] expr) 返回查询到的数据的 最大值,不是数字没有意义
MIN([DISTINCT] expr) 返回查询到的数据的 最小值,不是数字没有意义
-- 将 duplicate_table 的去重数据插入到 no_duplicate_table
INSERT INTO no_duplicate_table SELECT DISTINCT * FROM duplicate_table;
Query OK, 3 rows affected (0.00 sec)
Records: 3 Duplicates: 0 Warnings: 0
-- 通过重命名表,实现原子的去重操作
RENAME TABLE duplicate_table TO old_duplicate_table,
no_duplicate_table TO duplicate_table;
Query OK, 0 rows affected (0.00 sec)
  • 结果:
    0036

5.聚合函数

  1. COUNT([DISTINCT] expr) :返回查询到的数据的 数量
  2. SUM([DISTINCT] expr) :返回查询到的数据的 总和,不是数字没有意义
  3. AVG([DISTINCT] expr) :返回查询到的数据的 平均值,不是数字没有意义
  4. MAX([DISTINCT] expr): 返回查询到的数据的 最大值,不是数字没有意义
  5. MIN([DISTINCT] expr) :返回查询到的数据的 最小值,不是数字没有意义

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

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

相关文章

Intellij idea 2023 年下载、安装教程、亲测可用

文章目录 1 下载与安装IDEA2 常用设置设置 Java JDK 版本自动导入包、移除包IDEA 自动生成 author 注释签名java.io.File 类无法自动提示导入&#xff1f;高亮显示与选中字符串相同的内容IDEA 配置 MavenIDEA 连接 Mysql 数据库 3 参考文章 1 下载与安装IDEA 首先先到官网下载…

centos设置固定ip

ip addr查看是哪张网卡我这里是 编辑 设置

【flutter】架构之商城main入口

架构之商城main入口 前言一、项目模块的划分二、入口main的配置三、配置文件怎么做总结 前言 本栏目我们将完成一个商城项目的架构搭建&#xff0c;并完善中间的所有功能&#xff0c;总页面大概200个&#xff0c;如果你能看完整个栏目&#xff0c;你肯定能独立完成flutter 项目…

基于自编译的onlyoffice镜像,关于修改字体的问题

基于自编译的onlyoffice镜像&#xff0c;关于修改字体的问题 自编译onlyoffice镜像来自于 https://blog.csdn.net/Gemini1995/article/details/132427908 该镜像里面没有documentserver-generate-allfonts.sh文件&#xff0c;所以需要自己创建一个&#xff08;建议放在/usr/b…

接入网络技术

接入网络&#xff1a;是实现网络边缘的端系统与网络核心连接与接入的网络。 常见有以下几类&#xff1a; 1、电话拨号接入&#xff1a;这类接入方式在早期接入网络中主要用于家庭接入&#xff0c;利用了电话网络覆盖广泛的优点&#xff0c;能够方便地实现分散的家庭用户接入网…

八、实时时钟

八、实时时钟 简介时钟芯片模块代码可调时钟 简介 引脚定义和应用电路 我们的开发板没有备用电池 寄存器定义 时序定义 在时钟的上升沿&#xff0c;IO口的数据被写入到芯片中&#xff0c;在下降沿&#xff0c;芯片就会将数据输出。如果是写入&#xff0c;那么在整个过程中&…

学习笔记|外部中断|INT0|中断列表|STC32G单片机视频开发教程(冲哥)|第十五集:中断系统和外部中断

文章目录 1.中断和中断系统1.1什么是中断?1.2什么是中断系统1.3中断系统的优点1.4 中断系统包含哪些中断源1.5.中断次序 2.什么是外部中断3.外部中断的用法4.外部中断的用法新的测试场景完整代码 总结课后练习: 上节课我们学完了GPIO的矩阵按键&#xff0c;已经把这个GPIO的一…

视频讲解|1033含sop的配电网重构(含风光可多时段拓展)

目录 1 主要内容 程序特点 讲解重点 2 视频链接 1 主要内容 该视频为含sop的配电网重构matlab代码讲解&#xff0c;对应资源下载链接为含sop的配电网重构&#xff08;含风光|可多时段拓展&#xff09;&#xff0c;程序主要内容是&#xff1a;针对含sop的配电网重构模型&…

基于Java的公务员考试资料共享平台的设计与实现

前言 &#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌&#x1f497; &#x1f447;&#x1f3fb;…

【Linux基础】第28讲 Linux Vi编辑器

在Linux下一班使用Vi编辑器来编辑文件vi既可以查看文件也可以编辑文件而vim是vi的升级版本&#xff0c;具备更多的功能。vi如果目标文件不存在&#xff0c;会创建新的文件。但如果新文件没做编辑&#xff0c;退出后还会消失。 VI的三种模式介绍 三种模式&#xff08;状态&…

UML基础与应用之面向对象

UML&#xff08;Unified Modeling Language&#xff09;是一种用于软件系统建模的标准化语言&#xff0c;它使用图形符号和文本来描述软件系统的结构、行为和交互。在面向对象编程中&#xff0c;UML被广泛应用于软件系统的设计和分析阶段。本文将总结UML基础与应用之面向对象的…

网络爬虫-----爬虫的分类及原理

目录 爬虫的分类 1.通用网络爬虫&#xff1a;搜索引擎的爬虫 2.聚焦网络爬虫&#xff1a;针对特定网页的爬虫 3.增量式网络爬虫 4.深层网络爬虫 通用爬虫与聚焦爬虫的原理 通用爬虫&#xff1a; 聚焦爬虫&#xff1a; 爬虫的分类 网络爬虫按照系统结构和实现技术&#…

Linux——IO

✅<1>主页&#xff1a;&#xff1a;我的代码爱吃辣 &#x1f4c3;<2>知识讲解&#xff1a;Linux——文件系统 ☂️<3>开发环境&#xff1a;Centos7 &#x1f4ac;<4>前言&#xff1a;是不是只有C/C有文件操作呢&#xff1f;python&#xff0c;java&…

长尾关键词挖掘软件-免费的百度搜索关键词挖掘

嗨&#xff0c;大家好&#xff01;今天&#xff0c;我想和大家聊一聊长尾关键词挖掘工具。作为一个在网络世界里摸爬滚打多年的人&#xff0c;我对这个话题有着一些个人的感悟和见解&#xff0c;希望能与大家分享。 首先&#xff0c;让我坦白一点&#xff0c;长尾关键词挖掘工具…

《计算机视觉中的多视图几何》笔记(3)

3 Projective Geometry and Transformations of 3D 这章主要讲的是3D的射影几何&#xff0c;与2D的射影几何差不多。主要区别是&#xff1a; 3D射影几何对偶的是点和平面&#xff0c;直线是自对偶的。3D空间中直线有4个自由度&#xff0c;这一现象并不是那么容易直接得出。一…

2023最新安装微信小程序开发软件安装教程

一&#xff0c;安装开发者工具 我们在开发小程序之前&#xff0c;首先需要安装小程序开发者工具&#xff0c;今天就来教大家安装小程序开发者工具。 微信开放文档 (qq.com)https://developers.weixin.qq.com/miniprogram/dev/framework/ 官网工具下载地址&#xff1a; 微信…

在windows下持续ping ip,将返回结果及时间记录到文件中

在纯英文路径下创建文件ping.txt 在txt中写入 Dim args, flag, unsuccOut args"" otherout"" flag0If WScript.Arguments.count 0 Then WScript.Echo "Usage: cscript tping.vbs [-t] [-a] [-n count] [-l size] [-f] [-i TTL] [-v TOS]" WScr…

NDK (ndk)报错 Unity requires NDK r19 (64-bit)(19.0.05232133)

一、介绍 在 Android 添加 NDK ndk 的时候&#xff0c;出现 Unity requires NDK r19 (64-bit)(19.0.05232133)。 二、环境 1、Unity 2020.3.48f1c1 2、Android NDK 配置 三、报错信息 NDK (ndk)报错 Unity requires NDK r19 (64-bit)(19.0.05232133) 四、解决方法 1、下…

uniapp 在父组件中使用ref属性调用子组件中的方法 报错undefined

项目背景&#xff1a; 项目是自定义底部tabBar&#xff0c;所以这个页面是index(首页的一个子组件ref"pageC") 现在要求是不管页面滚动到第几页数据&#xff0c;或者每次从详情页以及其他页面回到这个页面时&#xff08;子组件pageC)内容都要回到顶部 所以我在index的…

华为OD机试 - 求最多可以派出多少支团队 - 双指针(Java 2023 B卷 100分)

目录 专栏导读一、题目描述二、输入描述三、输出描述四、解题思路五、Java算法源码六、效果展示1、输入2、输出3、说明 华为OD机试 2023B卷题库疯狂收录中&#xff0c;刷题点这里 专栏导读 本专栏收录于《华为OD机试&#xff08;JAVA&#xff09;真题&#xff08;A卷B卷&#…