[MySQL]关于表的增删改查

目录

1.插入

1.1单行数据+全列插入

 1.2多行插入,指定列插入

​编辑2.查询

2.1全列查询

2.2指定列查询

3.3查询字段为表达式

 2.4别名

​编辑2.5去重

2.6排序

 2.7条件查询

2.7.1基本查询:

2.7.2 AND 和OR

2.7.3范围查询

 2.7.4模糊查询

 2.7.5分页查询 limit

3.修改

4.删除


1.插入

1.1单行数据+全列插入

我们首先创建一张学生表来做为我们的例子:

表里包含的元素有id,学号,姓名,邮箱;

然后我们进行全列插入

格式为 insert into student values(数据1,数据2,数据3)

 1.2多行插入,指定列插入

数据格式:

Insert into stuent(列名,列名,列名)values(数据,数据,数据,),(数据,数据,数据);

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 *查询,会造成大量的性能资源使用。

1.查询的列越多,意外着需进行传输的数据越大。

2.可能会影响索引的使用

select *from exam_resule;

2.2指定列查询

指定列的顺序不需要按照定义的时候的顺序

语法格是:

select id,name,chinese from exam_result;

3.3查询字段为表达式

表达式不包含字段

select id,name,10 from exam_result;

表达式包含一个字段

select id  ,name,chinese+10 from exam_result;

表达式包含多个字段:

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

 2.4别名

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

2.5去重

我们先查询一下math成绩

select math from exam_result;

可以看到98分重复了 我们使用 distnit关键字试试

select distinct math from exam_result;

2.6排序

order by 关键字

desc为降序 默认为升序

降序 desc关键字写到最后面

可以对多个字段排序,排序的优先级随书写顺序

 2.7条件查询

运算符说明
>, >=, <, <=大于,大于等于,小于,小于等于
=等于,NULL 不安全,例如 NULL = NULL 的结果是 NULL
<=>等于,NULL 安全,例如 NULL <=> NULL 的结果是 TRUE(1)
!=, <>不等于
BETWEEN a0 AND
a1
范围匹配,[a0, a1],如果 a0 <= value <= a1,返回 TRUE(1)
IN (option, ...)如果是 option 中的任意一个,返回 TRUE(1)
IS NULL是 NULL
IS NOT NULL不是 NULL
LIKE模糊匹配。% 表示任意多个(包括 0 个)任意字符;_ 表示任意一个字

逻辑运算符:

运算符说明
AND多个条件必须都为 TRUE(1),结果才是 TRUE(1)
OR任意一个条件为 TRUE(1), 结果为 TRUE(1)
NOT条件为 TRUE(1),结果为 FALSE(0)

注:
1. WHERE条件可以使用表达式,但不能使用别名。
2. AND的优先级高于OR,在同时使用时,需要使用小括号()包裹优先执行的部分
例子:

2.7.1基本查询:

查询英语成绩不及格的同学

select name,english from exam_result where english < 60;

查询语文成绩好于英语成绩的同学:

select name,chinese,english from exam_result where chinese>english; 

查询总分在200以下的学生:

select  name, math+chinese+english as 总分 from exam_result where math+chinese+english < 200;

2.7.2 AND 和OR

查询语文成绩大于80,并且英语成绩大于80分的同学

select name,english,chinese from exam_result where chinese>80 and english >80;

猪悟能同学好厉害hhhh

查询语文成绩大于80 或者英语成绩大于80的同学

select name , chinese ,english from exam_resut where chinese>80 or english >80;

观察一下and和or的优先级(一般情况下如果想要哪个优先级高就用小括号给它加起来);

首先我们先查找全部的同学成绩 select *from exam_result;

select *from exam_result where chinese>80 or math>70 and english>70;

 我们给前面的or 打上括号看看

select * from exam_result where (chinese>80 or math>70) and english >70;

可以看到 and 的优先级大于or

2.7.3范围查询

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.7.4模糊查询

%匹配多个字符

select name from exam_result where name like '孙%';

_ 匹配一个字符

select name from exam_result where name like '孙_';

 2.7.5分页查询 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 from exam_result order by id limit 3 offset 0;

select id ,name from exam_result order by id limit 3 offset 3;

select id ,name from exam_result order by id limit 3 offset 6;

3.修改

update from table_name set colume=expr,[colume = 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 ='曹孟德';

将总成绩倒数后三名的数学成绩加上10分

update exam_result set math = math+10 order by math+chinese+english limit 3;


将所有同学的语文成绩变成原来的两倍

首先是这样的

update exam_result set chinese = chinese *2 ;

4.删除

delete from 表名 where... orderby...limit...

案例

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

detele 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');加入数据

select *from for_delete; 查看表

delete from for_delete; 删除一整张表

selete *from for_delete ;再次查看表,会发现为空了 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

谈谈对测试技术的一些看法~

最近没前面那样一天更几篇文章了&#xff0c;挺丧的&#xff0c; 可能是之前弦绷的有点紧&#xff0c;现在有点受不了了。 所以突然就泄了气&#xff0c;每天忙完工作的事后就躺在家里打游戏。其实感觉每年都有一段时间是这样丧的。所以我自己其实并不是特别努力的类型&#xf…

STM32入门教程-2023版【4-2】OLED显示屏简介

关注 点赞 不错过精彩内容 大家好&#xff0c;我是硬核王同学&#xff0c;最近在做免费的嵌入式知识分享&#xff0c;帮助对嵌入式感兴趣的同学学习嵌入式、做项目、找工作! 本小结学习一下如何使用OLED显示屏的函数驱动模块 一、OLED显示屏简介 &#xff08;1&#xff09;…

汽车网络架构与常用总线汇总

汽车CAN总线简述 CAN 是控制器局域网Controller Area Network 的缩写&#xff0c;1986年&#xff0c;由德国Bosch公司为汽车开发的网络技术&#xff0c;主要用于汽车的监测与控制&#xff0c;目的为适应汽车“减少线束的数量”“通过多个网络进行大量数据的高速传输”的需求。…

栈--顺序栈的基本操作(对小白友好)

文章目录 栈的基本操作栈的定义栈的初始化栈的判空进栈出栈读取栈顶元素销毁栈全部源码 栈的基本操作 以下代码中,默认初始化的top为-1。 栈的定义 #define MaxSize 50 //定义栈中元素最大个数typedef struct {int data[MaxSize]; //存放栈中元素int top; //栈顶指针…

Linux基本常用命令大全(二)

五、查找命令 5.1 grep grep命令是一种强大的文本搜索工具 使用实例&#xff1a; ps -ef | grep sshd 查找指定ssh服务进程 ps -ef | grep sshd | grep -v grep 查找指定服务进程&#xff0c;排除gerp身 ps -ef | grep sshd -c 查找指定进程个数 5.2 find find命令在目录…

IOS-生命周期-Swift

目录 App生命周期应用状态未运行——Not running未激活——Inactive激活——Active后台——Backgroud挂起——Suspended 关系图生命周期方法相关方法注意在其他地方监听 ViewController生命周期UIView生命周期 App生命周期 应用状态 App主要有五种状态&#xff0c;分别是&…

从CNN ,LSTM 到Transformer的综述

前情提要&#xff1a;文本大量参照了以下的博客&#xff0c;本文创作的初衷是为了分享博主自己的学习和理解。对于刚开始接触NLP的同学来说&#xff0c;可以结合唐宇迪老师的B站视频【【NLP精华版教程】强推&#xff01;不愧是的最完整的NLP教程和学习路线图从原理构成开始学&a…

【C++杂货铺】三分钟彻底搞懂函数重载

目录 &#x1f308;前言 &#x1f4c1; 缺省参数 &#x1f4c2;概念 &#x1f4c2;分类 &#x1f4c2; 注意事项 &#x1f4c1; 函数重载 &#x1f4c2;概念 &#x1f4c2;实现原理 &#x1f4c1; 总结 &#x1f308;前言 欢迎收看本期【C杂货铺】&#xff0c;这期内容…

[亲测有效]CentOS7下安装mysql5.7

前言 近期项目需要搭配mysql一起存储相关数据&#xff0c;但对mysql的版本有要求&#xff0c;于是在服务器搭建了mysql5.7&#xff0c;顺便记录一下搭建步骤和踩坑解决步骤。 目录 前言 一、清除旧安装包 二、安装YUM 三、使用yum命令即可完成安装 四、重新设置密码 五、…

gradle打包分离依赖jar

正常打包的jar是包含项目所依赖的jar包资源&#xff0c;而且大多数场景下的依赖资源是不会频繁的变更的&#xff0c;所以实际把项目自身jar和其所依赖的资源分离可以实现jar包瘦身&#xff0c;减小上传的jar包总大小&#xff0c;能实现加速部署的效果 一 原本结构 二 配置buil…

基于Python实现人脸识别相似度对比

目录 引言背景介绍目的和意义 人脸识别的原理人脸图像获取人脸检测与定位人脸特征提取相似度计算 基于Python的人脸相似度对比实现数据集准备人脸图像预处理特征提取相似度计算 引言 背景介绍 人脸识别技术是一种通过计算机对人脸图像进行分析和处理&#xff0c;从而实现自动识…

UML中的实现关系

在UML&#xff08;统一建模语言&#xff09;中&#xff0c;“实现”关系是指一个类&#xff08;实现类&#xff09;实现一个接口或抽象类的方法的情况。这种关系通常用于指定类如何实现某个特定的接口规范。 UML中的实现关系 在UML类图中&#xff0c;实现关系用一条带有空心箭…

学生公寓智能控电管理的功能和管理意义

石家庄光大远通电气有限公司学生公寓智能控电管理系统是由硬件和软件组成的系统&#xff0c;用于控制和管理学生公寓中的电力使用。 一、用户管理 智能控电管理系统具备用户管理功能&#xff0c;可以对学生的个人信息进行统一管理。系统会记录学生的姓名、学号、宿舍号等基本信…

MySQL InnoDB 底层数据存储

InnoDB 页记录Page Directory记录迁移 页 是内存与磁盘交互的基本单位&#xff0c;16kb。 比如&#xff0c;查询的时候&#xff0c;并不是只从磁盘读取某条记录&#xff0c;而是记录所在的页 记录 记录的物理插入是随机的&#xff0c;就是在磁盘上的位置是无序的。但是在页中…

Yuliverse:引领区块链游戏新篇章!

数据源&#xff1a;Yuliverse Dashboard 作者&#xff1a;lesleyfootprint.network 什么是 Yuliverse Yuliverse 是一款元宇宙游戏的先锋&#xff0c;是一款主打 Explore to earn 和 Social to earn 的链游。 这是一款能让你边玩边赚钱的免费区块链游戏&#xff0c;得到 LI…

前端开发如何在自己项目中引用iconfont图标

前端开发如何在自己项目中引用iconfont图标&#xff01;下面展示一下&#xff0c;详细的引入步骤。 第一步&#xff0c;您需要注册一个会员账号登录进入。创建一个项目。 可以使用其他的平台账号登录&#xff0c;我选了是微信登录&#xff0c;不过他们还会要求你输入手机号&am…

牛客网-----跳石头

题目描述&#xff1a; 一年一度的“跳石头”比赛又要开始了! 这项比赛将在一条笔直的河道中进行&#xff0c;河道中分布着一些巨大岩石。组委会已经选择好了两块岩石作为比赛起点和终点。在起点和终点之间&#xff0c;有N块岩石(不含起点和终点的岩石)。在比赛过程中&#xff0…

网络防御保护1

网络防御保护 第一章 网络安全概述 网络安全&#xff08;Cyber Security&#xff09;是指网络系统的硬件、软件及其系统中的数据受到保护&#xff0c;不因偶然的或者恶意的原因而遭受到破坏、更改、泄露&#xff0c;系统连续可靠正常地运行&#xff0c;网络服务不中断 随着数…

Oracle Linux 8.9 安装图解

风险告知 本人及本篇博文不为任何人及任何行为的任何风险承担责任&#xff0c;图解仅供参考&#xff0c;请悉知&#xff01;本次安装图解是在一个全新的演示环境下进行的&#xff0c;演示环境中没有任何有价值的数据&#xff0c;但这并不代表摆在你面前的环境也是如此。生产环境…

Linux下软件安装的命令【RPM,YUM】及常用服务安装【JDK,Tomcat,MySQL】

Linux下软件安装的命令 源码安装 以源代码安装软件&#xff0c;每次都需要配置操作系统、配置编译参数、实际编译&#xff0c;最后还要依据个人喜好的方式来安装软件。这个过程很麻烦很累人。 RPM软件包管理 RPM安装软件的默认路径: 注意&#xff1a; /etc 配置文件放置目录…
最新文章