【MySql】MySql表的增删查改

news2024/11/25 21:29:34

目录

1.新增

 1.1单行数据 + 全列插入

 2.2 多行数据 + 指定列插入

2.查询

2.1 全列查询

2.2 指定列查询

2.3查询字段为表达式

2.4 别名

2.5 去重:DISTINCT

2.6 排序:ORDER BY

2.7 条件查询:WHERE

2.8 分页查询:LIMIT

3.修改

4.删除

5. 内容重点总结


1.新增

创建学生表

create table if not exists student(
id int,
sn int,
name varchar(10),
qq_mail varchar(20)
);

查看表结构

desc student;

 

 1.1单行数据 + 全列插入

插入两条记录, value_list 数量必须和定义表的列的数量及顺序一致

insert into student values (100, 10000, '唐三藏', NULL);
insert into student values (101, 10001, '孙悟空', '111111');

 2.2 多行数据 + 指定列插入

插入两条记录,value_list 数量必须和指定列数量及顺序一致

insert into student(id,sn,name) values 
(102,20001,'曹孟德'),
(103,20002,'孙仲谋');

2.查询

创建考试成绩表

create table exam_result(
id int,
name varchar(20),
chinese decimal(3,1),
math decimal(3,1),
english decimal(3,1)
);

插入测试数据

insert into exam_result (id,name,chinese,math,english) values 
 (1,'唐三藏', 67, 98, 56),
 (2,'孙悟空', 87.5, 78, 77),
 (3,'猪悟能', 88, 98.5, 90),
 (4,'曹孟德', 82, 84, 67),
 (5,'刘玄德', 55.5, 85, 45),
 (6,'孙权', 70, 73, 78.5),
 (7,'宋公明', 75, 65, 30);

2.1 全列查询

select * from exam_result;

 

通常情况下不建议使用 * 进行全列查询

1.查询的列越多,意味着需要传输的数据量越大

2.可能会影响到索引的使用。(索引待后面课程讲解)

2.2 指定列查询

指定列的顺序不需要按定义表的顺序来

select id,name,english from exam_result;

2.3查询字段为表达式

表达式不包含字段

select id, name, 10 FROM exam_result;

表达式包含一个字段

select id, name, english + 10 FROM exam_result;

 

表达式包含多个字段

select id, name, chinese + math + english FROM exam_result;

2.4 别名

为查询结果中的列指定别名,表示返回的结果集中,以别名作为该列的名称,语法:

select column [as] alinas_name from table_name;

结果集中,表头的列名=别名 

select id, name, chinese + math + english 总分 from exam_result;

 

2.5 去重:DISTINCT

使用DISTINCT关键字对某列数据进行去重:

select distinct math from exam_result;

2.6 排序:ORDER BY

语法:

1. 没有 ORDER BY 子句的查询,返回的顺序是未定义的,永远不要依赖这个顺序

2. NULL 数据排序,视为比任何值都小,升序出现在最上面,降序出现在最下面

查询同学姓名和 qq_mail,按 qq_mail 排序显示:

SELECT name, qq_mail FROM student ORDER BY qq_mail;
SELECT name, qq_mail FROM student  ORDER BY qq_mail DESC;

3. 使用表达式及别名排序

查询同学及总分,由高到低:

SELECT name, chinese + english + math FROM exam_result
 ORDER BY chinese + english + math DESC;
 
SELECT name, chinese + english + math total FROM exam_result
 ORDER BY total DESC;

4. 可以对多个字段进行排序,排序优先级随书写顺序

查询同学各门成绩,依次按 数学降序,英语升序,语文升序的方式显示

SELECT name, math, english, chinese FROM exam_result
 ORDER BY math DESC, english, chinese;

2.7 条件查询:WHERE

比较运算符:

逻辑运算符:

注:

1. WHERE条件可以使用表达式,但不能使用别名。

2. AND的优先级高于OR,在同时使用时,需要使用小括号()包裹优先执行的部分

案例:

基本查询:

-- 查询英语不及格的同学及英语成绩 ( < 60 )
SELECT name, english FROM exam_result WHERE english < 60;

-- 查询语文成绩好于英语成绩的同学
SELECT name, chinese, english FROM exam_result WHERE chinese > english;

-- 查询总分在 200 分以下的同学
SELECT name, chinese + math + english 总分 FROM exam_result
 WHERE chinese + math + english < 200;

AND与OR:

-- 查询语文成绩大于80分,且英语成绩大于80分的同学
SELECT * FROM exam_result WHERE chinese > 80 and english > 80;

-- 查询语文成绩大于80分,或英语成绩大于80分的同学
SELECT * FROM exam_result WHERE chinese > 80 or english > 80;

-- 观察AND 和 OR 的优先级:
SELECT * FROM exam_result WHERE chinese > 80 or math>70 and english > 70;
SELECT * FROM exam_result WHERE (chinese > 80 or math>70) and english > 70;

范围查询:

1. BETWEEN ... AND...

--查询语文成绩在 [80, 90] 分的同学及语文成绩
SELECT name, chinese FROM exam_result WHERE chinese BETWEEN 80 AND 90;

--使用 AND 也可以实现
SELECT name, chinese FROM exam_result WHERE chinese >= 80 AND chinese <= 90;

2. IN

-- 查询数学成绩是 58 或者 59 或者 98 或者 99 分的同学及数学成绩
SELECT name, math FROM exam_result WHERE math IN (58, 59, 98, 99);

-- 使用 OR 也可以实现
SELECT name, math FROM exam_result WHERE math = 58 OR math = 59 OR math
= 98 OR math = 99;

2.8 分页查询:LIMIT

语法:

-- 起始下标为 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;

案例:按 id 进行分页,每页 3 条记录,分别显示 第 1、2、3 页

-- 第一页
select id, name , math, english, chinese from exam_result order by id limit 3 offset 0;

-- 第二页
select id, name , math, english, chinese from exam_result order by id limit 3 offset 3;

-- 第三页, 如果结果不足3个, 不会有影响
select id, name , math, english, chinese from exam_result order by id limit 3 offset 6;

3.修改

语法:

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

案例:

-- 将孙悟空同学的数学成绩变更为 80 分
UPDATE exam_result SET math = 80 WHERE name = '孙悟空';

-- 将曹孟德同学的数学成绩变更为 60 分,语文成绩变更为 70 分
UPDATE exam_result SET math = 60, chinese = 70 WHERE name = '曹孟德';

-- 将总成绩倒数前三的 3 位同学的数学成绩加上 30 分
UPDATE exam_result SET math = math + 30 ORDER BY chinese + math + english LIMIT 3;

-- 将所有同学的语文成绩更新为原来的 2 倍
UPDATE exam_result SET chinese = chinese * 2;

4.删除

语法:

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

案例:

-- 删除孙悟空同学的考试成绩
DELETE FROM exam_result WHERE name = '孙悟空';

-- 删除整张表数据
-- 准备测试表
DROP TABLE IF EXISTS for_delete;
CREATE TABLE for_delete (
 id INT,
 name VARCHAR(20)
);

-- 插入测试数据
INSERT INTO for_delete (name) VALUES ('A'), ('B'), ('C');

-- 删除整表数据
DELETE FROM for_delete;

5. 内容重点总结

新增:

-- 新增
insert into 表(字段1, ..., 字段N) values (value1, ..., value N);

-- 多行插入
insert into 表(字段1, ..., 字段N) values
(value1, ...),
(value2, ...),
(value3, ...);

查询:

-- 全列查询
select * from 表

-- 指定列查询
select 字段1,字段2... from 表

-- 查询表达式字段
select 字段1+100,字段2+字段3 from 表

-- 别名
select 字段1 别名1, 字段2 别名2 from 表

-- 去重DISTINCT
select distinct 字段 from 表

-- 排序ORDER BY
select * from 表 order by 排序字段

-- 条件查询WHERE:
-- (1)比较运算符 (2)BETWEEN ... AND ... (3)IN (4)IS NULL (5)LIKE (6)AND (7)OR (8)NOT
select * from 表 where 条件

修改:

update 表 set 字段1=value1, 字段2=value2... where 条件

删除:

delete from 表 where 条件

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

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

相关文章

ARMday01(计算机理论、ARM理论)

计算机理论 计算机组成 输入设备、输出设备、运算器、控制器、存储器 1.输入设备&#xff1a;将编写好的软件代码以及相关的数据输送到计算机中&#xff0c;转换成计算机能够识别、处理和存储的数据形式 键盘、鼠标、手柄、扫描仪、 2.输出设备&#xff1a;将计算机处理好的数…

警告:未配置spring boot 配置注解处理器

前言 这是我在这个网站整理的笔记,有错误的地方请指出&#xff0c;关注我&#xff0c;接下来还会持续更新。 作者&#xff1a;神的孩子都在歌唱 问题 我再使用ConfigurationProperties(prefix “redisson”)去加载配置文件中的属性的时候&#xff0c;发现idea有个警告 并且配…

系统提示缺少或找不到msvcp140.dll文件的解决方法

MSVCP140.dll是Microsoft Visual C 2015 Redistributable的一个组件&#xff0c;它是运行许多Windows应用程序所必需的。当您在计算机上遇到“msvcp140.dll丢失”的错误消息时&#xff0c;这意味着您的系统缺少这个重要的动态链接库文件。以下是详细介绍的5种解决方法&#xff…

Halcon WPF 开发学习笔记(1):Hello World小程序

文章目录 文章专栏视频链接Hello World训练图片训练目的 开始训练图像预处理导入图像三通道处理调用算子通道选取 滤波什么是好的滤波 增加对比度 区域选取阈值处理算子参数选择运行结果(红色为选择区域) 区域分割运行结果 特征筛选参数代码第二次&#xff0c;面积筛选 画选中十…

网络工程师回顾学习

根据书本目录&#xff0c;写下需要记忆的地方&#xff1a; 参考之前的笔记&#xff1a; 网络工程师回答问题_one day321的博客-CSDN博客 重构第一部分需要记忆的&#xff1a; 第一章&#xff1a;计算机网络概论 计算机网络的定义和分类&#xff1a;计算机网络是指将地理位…

快速安装虚拟机centos7.5

vbox 快速导入安装centos7.5 环境准备 vbox安装&#xff08;下载地址&#xff09; ova镜像&#xff08;下载地址&#xff09;&#xff08;默认是192.168.56.10 加nat网卡&#xff09; 链接&#xff1a;https://pan.baidu.com/s/164Iprh_80HCQmKCU6V-RTw 提取码&#xff1a;if…

Oauth授权流程

我们经常会使用第三方的账号来登录某个平台&#xff0c;比如使用QQ账号登录爱奇艺&#xff0c;使用微博登录自如APP。而登录的过程中&#xff0c;会提示自如想访问你的微博公开资料、好友信息&#xff0c;或者爱奇艺要访问您QQ头像、照片等资料。那么这个过程是有一个比较复杂的…

【String类的常用方法】

文章目录 字符串构造String对象的比较字符串查找charAtindexof 转化1. 数值和字符串转化2.大小写转换 toUpperCase toLowerCase3.字符串转数组 toCharArray4.数组转字符串5.格式化 format 字符串替换替换所有的指定内容替换首个内容 字符串拆分以空格拆分特殊字符拆分多个分隔符…

【数据分享】1985-2022年我国地级市专利数据(8项指标/Excel格式/Shp格式)

专利数量是反映一个城市创新水平的重要指标&#xff0c;我们在很多研究中都会用到专利数量数据&#xff0c;之前我们也分享过一些相关数据&#xff0c;比如全国地级市2017-2019年发明专利授权数和全国地级市2017-2020年专利授权数&#xff08;均可查看之前的文章获悉详情&#…

在Linux系统下部署Llama2(MetaAI)大模型教程

Llama2是Meta最新开源的语言大模型&#xff0c;训练数据集2万亿token&#xff0c;上下文长度是由Llama的2048扩展到4096&#xff0c;可以理解和生成更长的文本&#xff0c;包括7B、13B和70B三个模型&#xff0c;在各种基准集的测试上表现突出&#xff0c;最重要的是&#xff0c…

FHEW 和 TFHE 的统一框架:标准化 FHE

参考文献&#xff1a; [GHS12] Gentry C, Halevi S, Smart N P. Better bootstrapping in fully homomorphic encryption[C]//International Workshop on Public Key Cryptography. Berlin, Heidelberg: Springer Berlin Heidelberg, 2012: 1-16.[GHPS12] Gentry C, Halevi S,…

视频编辑SDK测试

短视频编辑SDK测试有一段时间了&#xff0c;因此抽时间对编辑SDK的相关内容进行简要复盘。 功能说明 短视频编辑SDK支持gif&#xff0c;不同格式的图片&#xff0c;视频文件的拼接导入&#xff0c;编辑&#xff0c;添加特效&#xff0c;合成导出等功能。更具体的介绍可以参照…

14:00面试,14:06就出来了,问的问题有点变态。。。。。。

从小厂出来&#xff0c;没想到在另一家公司又寄了。 到这家公司开始上班&#xff0c;加班是每天必不可少的&#xff0c;看在钱给的比较多的份上&#xff0c;就不太计较了。没想到5月一纸通知&#xff0c;所有人不准加班&#xff0c;加班费不仅没有了&#xff0c;薪资还要降40%…

Android 13.0 Launcher3 app图标长按去掉应用信息按钮

1.前言 在13.0的rom定制化开发中,在Launcher3定制化开发中,对Launcher3的定制化功能中,在Launcher3的app列表页会在长按时,弹出微件和应用信息两个按钮,点击对应的按钮跳转到相关的功能页面, 现在由于产品需求要求禁用应用信息,不让进入到应用信息页面所以要去掉应用信息…

5个高质量图片处理软件,抠图、特效不求人!

作为一个设计师或摄影家或者平面设计工作人员&#xff0c;又或者是普通人&#xff0c;只要你有图片处理的需求&#xff0c;就不可避免的会需要一个好用高效的图片处理网站&#xff0c;会抠素材&#xff0c;找图片&#xff0c;删除图片内容等等&#xff0c;都需要花费大量的时间…

【Redis】hash类型-内部编码使用场景

文章目录 内部编码测试内部编码&#xff1a; 使用场景缓存方式对比 内部编码 哈希的内部编码有两种&#xff1a; ziplist&#xff08;压缩列表&#xff09;&#xff1a;当哈希类型元素个数⼩于hash-max-ziplist-entries配置&#xff08;默认512个&#xff09;、同时所有值都⼩…

【C++】智能指针【内存泄漏|智能指针原理及使用|RAII】

目录 1、了解内存泄露 1.1 内存泄漏的定义及危害 1.2 内存泄漏分类&#xff08;了解&#xff09; 1.3 如何检测内存泄漏&#xff08;了解&#xff09; 1.4如何避免内存泄漏 2、智能指针的引出 3、智能指针的使用及原理 3.1 RAII 3.2 智能指针的原理 3.3 std::auto_pt…

雨洪水资源管理远程监控平台

雨洪水资源管理远程监控平台 汛期来临时&#xff0c;及时获得河道水库的水位涨幅数据对开展防汛抗洪工作至关重要&#xff0c;大量河道水库分布在远离城市的区域&#xff0c;而且分散&#xff0c;尤其是在紧急防汛阶段&#xff0c;如果只依靠传统人力巡查获得河道水位数据必将耗…

1688店铺所有商品数据接口(1688.item_search_shop)

1688店铺所有商品数据接口是一种允许开发者在其应用程序中调用1688店铺所有商品数据的API接口。利用这一接口&#xff0c;开发者可以获取1688店铺的所有商品信息&#xff0c;包括产品ID、SKU信息、价格、库存、图片等。这些数据可以用于构建各种业务场景&#xff0c;例如供应链…

Day1 ARM基础

【ARM课程认知】 1.ARM课程的作用 承上启下 基础授课阶段&#xff1a;c语言、数据结构、linux嵌入式应用层课程&#xff1a;IO、进程线程、网络编程嵌入式底层课程&#xff1a;ARM体系结构、系统移植、linux设备驱动c/QT 2.ARM课程需要掌握的内容 自己能够实现简单的汇编编…