MySQl 中对数据表的增删改查(基础)

news2024/9/21 13:27:59

MySQl 中对数据表的增删改查(基础)

  • 新增
    • 演示
      • 插入一条数据
      • 插入多条数据
  • 查询
    • 全列查询
    • 部分列查询
    • 查询关于列名的表达式
    • 查询时用别名
    • 查询去重后的结果
    • 查询排序后的结果
    • 条件查询
      • 比较运算符和逻辑运算符
    • 分页查询
  • 修改
  • 删除

黑白图是在命令行里的,彩色图是在 navicat (数据库客户端工具)里截屏的。

该数据库口音不敏感、大小写不敏感

下面的增删改查均对下面的 数据表进行操作。

在这里插入图片描述
注意:[ ] 用中括号里括起来的是可省略部分

新增

新增一条数据

语句: insert into 表名 (列名[, 列名 …]) values(值[, 值]);

表名后的列名写多少个,那么后面的值就需要有多少个,当写了表中的所有列名时,可以省略所有的列名。

一次性插入多条数据:

语句: insert into 表名 (列名[, 列名 …]) values(值[, 值]) , (值[, 值]), (值[, 值])…;

插入几条数据,那么就写多少个括号


演示

插入一条数据


插入全部列:

插入表之前的数据

在这里插入图片描述

插入一条全部列的数据:
在这里插入图片描述
在这里插入图片描述
如果表名后面没有写列名,则代表也是全列插入一条数据。

在这里插入图片描述
在这里插入图片描述

插入部分列:
在这里插入图片描述

这里只插入了 id, name, chinese 列的值

在这里插入图片描述
所以数学成绩和英语成绩就被 置为了 NULL,置为了NULL的原因是表每个属性都会有个默认值,当没有给赋值的情况下就会将默认值填进去。

在这里插入图片描述


插入多条数据

在这里插入图片描述如果表名后面没有写特定的列名时,就代表是全列插入,插入多条数据只是在原来一条数据的后面接着写。

在这里插入图片描述

查询

全列查询

语法:select * from 表名;

星号代表通配符,代表是全部列。

在这里插入图片描述
不过值得注意的是,这种查询极其危险,因为一般在实际工作中时数据的级别会非常大,那么一次查询全部的数据会直接占满 资源。

部分列查询

语法:select 列名[, 列名…] from 表名

想查询那个列,那么就写几个列名。

在这里插入图片描述
在这里插入图片描述

语句当中写的列名的顺序也是表的左右顺序。

在这里插入图片描述
//这种查询也蛮危险的,没有限制的查询都挺危险的,值得注意

查询关于列名的表达式

也可以查询关于列名的表达式,语法与查询部分列是一样的,只不过可以查询。

比如查询所有成绩之和,也就是语文、数学、英语成绩相加。

在这里插入图片描述

只要是合法的运算,都是可以查询的。

不过这样查询出来会发现列名有点长,且不好一眼看出来,我们可以给原本的列名换个名字

查询时用别名

语法:select 列名 [as] 别名 [, 列名 [as] 别名…] from 表名

也就是在对应的列名后 加上as 再加上设置的别名。

比如刚才的总成绩我们可以这样写
在这里插入图片描述

这里的 as 也可以省略,并且别名的引号在没有空格时也是可以省略的。

当别名里出现空格的时候就必须用单引号引起来,否则就会报错。

在这里插入图片描述

查询去重后的结果

语法: select distinct 列名[, 列名…] from 表名

只是在select后面加了一个 distinct 关键字。

只有当查询时写的所有列名的值都相等时,才会判定为是重复的数据,查询时就不会被显示了。

现在的数据表的数据如下:
在这里插入图片描述
数学成绩当中有两个 98

在这里插入图片描述
所以去重后只会显示一个 98.

当我们加上 id 这个列再查询后,此时就不会被认定为重复的数据

在这里插入图片描述

查询排序后的结果

语法:select 列名[, 列名…] from 表名 order by 列名 [asc | desc] [, 列名 [asc | desc]…]

在之前的查询语句后加了个 order by, asc代表升序(ascend),desc代表降序(descend),也可以不写,默认是 asc。

例如查询个数学成绩降序:
在这里插入图片描述
值得注意的是,NULL比任何值都要小


也可以先按数学成绩排序,再按英语成绩排序,只需要接着再后面写即可。

在这里插入图片描述
此时在数学成绩相同时,就再按英语成绩降序排序。


在order by 后面的列名也可以使用别名,比如将总分 按降序排列

在这里插入图片描述

条件查询

在刚才的所有查询中,都没有任何的限制,一查就是整张表的数据,这在实际工作中是十分危险的,所以我们需要了解条件查询。

在了解条件查询前需要先了解 SQL中的比较运算符和逻辑运算符。

比较运算符和逻辑运算符

比较运算符:

比较运算符说明
>=, >, <=, <大于等于、大于、小于等于、小于,与java、cpp中的用法一样
=判断相等,对于NULL不适用
<=>判断相等,对于NULL适用
!=, <>判断不相等
IS NULL是否为空
IS NOT NULL是否不为空
BETWEEN st AND ed判断是否在 [st, ed]区间内
IN(option, …)判断是否是 option 当中的一个
LIKE模糊匹配, %代表匹配零个或多个字符,_(下划线)代表仅匹配一个字符

逻辑运算符:

逻辑运算符说明
AND并且,有假则假,全真则真
OR或者,有真则真,全假则假
NOT条件为真,则结果为假,反之相反

其中 AND 的优先级高于 OR,如果实在不确定优先级可以统统使用小括号来强制优先。


= 是无法判断 NULL的,无论 判断NULL是否等于何值时,都会返回NULL

在这里插入图片描述

当不含有NULL时,相等则返回1代表true,不相等则返回0代表 false。

在这里插入图片描述

当需要判断 NULL时,需要使用 <=> 符号

在这里插入图片描述


条件查询语法:

select 列名[, 列名…] from 表名 where 限制条件[, 限制条件][order by…]

where 需要写在表名后 及 order by 的前面(如果写了排序)。


示例:

  1. 查询数学成绩高于70分的同学及数学成绩

在这里插入图片描述

  1. 查询语文成绩比数学成绩高的同学

在这里插入图片描述

  1. 查询数学成绩为 98 的同学的所有成绩
    在这里插入图片描述

  2. 查询语文成绩在70分到80分之间的 同学
    在这里插入图片描述
    在这里插入图片描述

  3. 查询语文成绩是 70、75、80的同学

在这里插入图片描述
6. 查询名字的第一个字是孙的同学及其成绩
在这里插入图片描述

  1. 查询名字只有两个字的且姓孙的同学的成绩

在这里插入图片描述

注意事项:条件当中不能写别名

比如如果我们想查询总分大于200 分的同学,那么是不能使用别名的。
在这里插入图片描述

这是因为执行关键字的顺序不同

比如我想查询语文成绩大于 70的同学,并且升序排列

在这里插入图片描述
在这里插入图片描述
在这句语句中关键字执行的顺序如图所示,

  1. 首先利用from 关键字找到目标数据表
  2. 利用where关键字筛选数据行
  3. 执行select关键字找到对应数据列
  4. 最后执行order by 排序

所以这也就是为什么 order by 后面可以使用别名但是 where后面不行,因为order by的执行在 select 的后面,所以认识别名。

分页查询

分页查询有三种语法:

  1. select 列名[, 列名…] from 表名 [… …]limit n(从下标 0 开始 查询 n 条数据)

  2. select 列名[, 列名…] from 表名 [… …]limit s, n(从下标 s 开始 查询 n 条数据)

  3. select 列名[, 列名…] from 表名 [… …]limit n offset s(从下标 s 开始 查询 n 条数据)

这里的[… …]代表 可以加 where 或者 order by 等前面的关键字,都是可以组合的。


查询语文成绩前三名的同学:

在这里插入图片描述

查询数学成绩 5 ~ 10名的成绩:在这里插入图片描述


修改


语法: update 表名 set 修改的赋值语句, […] [where…][order by…] [limit…]


示例:

修改前:
在这里插入图片描述

  1. 将张飞同学的数学成绩修改成50
    在这里插入图片描述

  2. 将语文成绩倒数前三的同学的语文成绩 加上10分
    在这里插入图片描述

  3. 将总成绩倒数前三的 3 位同学的数学成绩加上 30 分

在这里插入图片描述

删除

语法:delete from 表名 [where…] [order by…] [limit…]

删除操作一般不会用到,也比较危险


示例:

将总分最后一名的同学开除:

在这里插入图片描述


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

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

相关文章

【题解】【枚举】—— [NOIP1997 普及组] 棋盘问题

【题解】【枚举】—— [NOIP1997 普及组] 棋盘问题 [NOIP1997 普及组] 棋盘问题题目背景题目描述输入格式输出格式输入输出样例输入 #1输出 #1 解法1解法2 [NOIP1997 普及组] 棋盘问题 戳我查看题目&#xff08;洛谷&#xff09; 题目背景 NOIP1997 普及组第一题 题目描述 …

Java基础 文字小游戏

souf System.out.printf("你好啊%s","张三") 输出你好啊张三 System.out.printn()放在中间可以换行 System.out.printf("%s你好啊%s","张三","李四") 输出 张三你好啊李四 只有输出没有换行效果。 制作一个文字小游戏…

每期一个小窍门: Goland 配置跳板机登陆

写简单点 先说下大概流程 本地 访问 localhost:6000 --> 转发到跳板机:22 --> 再转发到指定内网地址 本机 .ssh/config Host *ControlPersist yesControlMaster autoControlPath ~/.ssh/%n:%p本机公钥 copy 到跳板机 和内网被跳机 本机命令 ssh -N -f -L 6000:<内…

Linux基础入门---安装vmware

&#x1f600;前言 本篇博文是关于Linux基础入门和vmwarel5.5下载&#xff0c;希望你能够喜欢。 &#x1f3e0;个人主页&#xff1a;晨犀主页 &#x1f9d1;个人简介&#xff1a;大家好&#xff0c;我是晨犀&#xff0c;希望我的文章可以帮助到大家&#xff0c;您的满意是我的动…

告别繁琐ppt制作,用这5款AI工具,一键生成轻松搞定!

在云办公逐渐成为主流的当下&#xff0c;许多职场人士在办公时会首选各类在线应用&#xff0c;最常见的就是在线制作PPT、在线编辑文档、在线编辑表格或智能表格&#xff0c;除此之外&#xff0c;这两年AI人工智能技术的发展&#xff0c;也诞生了许多能一键生成PPT的AI工具。 …

队列的实现及循环队列

一、队列的概念及结构 队列只允许在一端进行插入数据操作&#xff0c;在另一端进行删除数据操作的特殊线性表。队列具有先进先出FIFO&#xff08;Fist In First Out&#xff09;。 入队列&#xff1a;进行插入操作的一端称为队尾。 出队列&#xff1a;进行删除操作的一端称为…

nestjs 大笔记(连载中)

安装 npm i -g nestjs/cli nest new project-name快捷指令 nest g mo xxx # 生成 Module nest g co xxx # 生成 Controller nest g s xxx # 生成 Service nest g resource xxx # 生成一套Restful风格接口

PCIe板卡辅助信号解析

1.简介 PCIe Add-in卡借助PCIe插槽上的辅助信号&#xff0c;实现了很多系统级的功能&#xff0c;比如唤醒、复位、调试、热插拔等功能。具体的辅助信号有REFCLK-/REFCLK、PERST#、WAKE#、SMBCLK、SMBDAT、JTAG、CLKREQ#及PRSNT1#和PRSNT2#等&#xff0c;具体的作用如下&#x…

Facebook国内企业户、海外户、国内二不限户以及三不限户区别何在?

Facebook广告账户的类型和设置对于企业在不同市场中的广告活动至关重要。了解国内企业户、海外企业户&#xff0c;以及国内二不限户和三不限户的区别&#xff0c;可以帮助你更好地选择和管理广告账户。以下是对这些账户类型的详细解析。 一、Facebook海外企业广告账户 海外企业…

kettle的Javascript组件获取T-1天和T+1天

// 获取T-1的时间 var currentDate new Date(); currentDate.setDate(currentDate.getDate() - 1); var currentYear currentDate.getFullYear(); var currentMonth (0 (currentDate.getMonth() 1)).slice(-2); var currentDay (0 currentDate.getDate()).slice(-2); va…

每日OJ_牛客HJ52计算字符串的编辑距离(dp)

目录 牛客HJ52计算字符串的编辑距离&#xff08;dp&#xff09; 解析代码 牛客HJ52计算字符串的编辑距离&#xff08;dp&#xff09; 计算字符串的编辑距离_牛客题霸_牛客网 解析代码 计算字符串的编辑距离&#xff08;也称为Levenshtein距离&#xff09;是一个经典的动态规…

java SE--Lambda表达式和Stream流

一.Lambda表达式 1.Lambda表达式的简介 Lambda表达式是 jdk1.8 引入的一个新特性&#xff0c;它是函数式编程在Java中的一种体现。也是jdk1.8最值得学习的新特性&#xff0c;另一个就是流式编程。 1.Lambda表达式的引入简化了匿名内部类的语法&#xff0c;让代码更加简洁明了…

4.3.2 图像去畸变

4.3.2 图像去畸变 参考教程&#xff1a; 相机标定&#xff08;4&#xff09; 矫正畸变 undistort()和initUndistortRectifyMap()-CSDN博客 学习笔记 – opencv图像去畸变_opencv 畸变参数-CSDN博客 下面我们将演示图像去畸变的过程&#xff0c;在OpenCV中提供了一个函数cv:…

买新能源怕自燃?法院这判决我举双手赞成

文 | AUTO芯球 作者 | 雷慢 大快人心&#xff01;终于有法院为新能源车主做主了&#xff0c; 你们看啊&#xff0c;某新能源车主开车半路自燃&#xff0c;报了保险&#xff0c; 保险公司赔了18万&#xff0c;转身又去告汽车公司&#xff0c; 汽车公司又被法院判决赔偿保险…

【软件逆向】第2课,软件逆向安全工程师之区分应用32位和64位,每天5分钟学习逆向吧!

目标学习使用StudyPE区分应用 在软件逆向中区分应用类型是关键性的一部分 &#xff0c;只有区分类型后才能选择对应工具进行后续处理。 1.打开StudyPE工具。 2.将我们需要逆向的软件&#xff0c;拖拽到StudyPE中&#xff0c;查看应用信息。 以上用一款视觉AI软件举例&#…

UCOSIII信号量详解

目录 ​编辑 前言 一、信号量的类型 二、信号量的使用方法 2.1创建信号量 2.2请求信号量&#xff1a; 2.3释放信号量&#xff1a; 三、信号量的作用 四、注意事项 五、信号量的API函数 六、代码实现 6.1 创建信号量 6.2 使用信号量 前言 UCOSIII信号量是UCOSIII操作…

【Vue3】路由基础

【Vue3】路由基础 背景简介开发环境开发步骤及源码总结 背景 随着年龄的增长&#xff0c;很多曾经烂熟于心的技术原理已被岁月摩擦得愈发模糊起来&#xff0c;技术出身的人总是很难放下一些执念&#xff0c;遂将这些知识整理成文&#xff0c;以纪念曾经努力学习奋斗的日子。本…

如何用Python求素数之和

计算两个正整数x&#xff0c;y(x<y&#xff0c;包括x&#xff0c;y)素数和。首先通过isPrime函数来判断一个数是否为素数&#xff0c;再使用primeSum函数来返回素数和。 以下为源码&#xff1a; def isPrime(n) :for i in range(2,n):if n % i 0:return 0breakelse:return…

在VB.net中,SortedList有什么方法与属性

标题 在VB.net中&#xff0c;SortedList有什么方法与属性 正文 在VB.NET中&#xff0c;SortedList 类是一个基于键值对的集合&#xff0c;它允许元素按照键的顺序进行排序&#xff0c;并可以通过键或索引来访问元素。SortedList 类是 System.Collections.Generic 命名空间中的一…

物流快递外卖管理平台系统-计算机毕设Java|springboot实战项目

&#x1f34a;作者&#xff1a;计算机毕设残哥 &#x1f34a;简介&#xff1a;毕业后就一直专业从事计算机软件程序开发&#xff0c;至今也有8年工作经验。擅长Java、Python、微信小程序、安卓、大数据、PHP、.NET|C#、Golang等。 擅长&#xff1a;按照需求定制化开发项目、 源…