MySQL表的增删改查(1)

目录

一. . 新增 insert

1.简单方法

2. 指定列插入

3. 一次插入多行记录

二. 查询 select

1.最简单的查询, 全列查询

2. 指定列查询

​编辑 3. 表达式查询 

1)简单表达式查询

2)带别名的表达式查询 

4. 去重查询

5. 带有排序的查询

1)单个列排序

 2)多个列排序:

​编辑 **6. 条件查询(重要)

1)基本查询

2)and / or

3)范围查询

4)模糊查询 like

5)针对空值的比较

7. 分页查询

1)简单分页查询

2)带offset查询

3) 省略offset查询


一. . 新增 insert

1.简单方法

语法:
insert into 表名 values (值, 值...);
说明:
  • into可以省略
  • 执行这个命令首先要确保已经执行use 数据库;  并且数据库中包含这个表
  • 括号中的值,值... 要和定义表时的表头相对应
  • 如果是varchar类型的, 想要新增字符串, 用单引号和双引号都可以

student(id int,name varchar(20));

添加成功!
如果我们这样插入:

为什么也成功了呢?

原因:mysql是一个"弱类型"的 编程语言, 和java 这种"强类型"的编程语言是不同的

当mysql发现字符串'100'可以转化成int100, int2可以转化成字符串'2'时, 就会发生'隐式类型转换', 不会报错

2. 指定列插入

语法:

insert into 表名 (列名,列名...) values (值,值...);

说明:

  • 列名个数和顺序不需要和表头一致,但要确保列都存在
  • 没有被添加的列会填NULL

3. 一次插入多行记录

语法:

insert into 表名 values (值, 值...) (值, 值...)...

说明: 一次插入多条记录, 往往比依次插入一条记录, 分三次差效率高

 datetime类型插入:

 插入datetime类型的数据, 要按照'2024-4-21 18:37:00' 的格式

例如, 我们新建一个表

插入数据:

 如果我们想插入当前的系统时间, 就要用mysql中专门的函数 now() 来获取:

SQL作为编程语言, 也提供了一些库函数, 但不像C/java 是标准库

二. 查询 select

1.最简单的查询, 全列查询

select * from 表名;

2. 指定列查询

select 列名,列名... from 表名; 

注意: 列名的顺序不影响 

 3. 表达式查询 

1)简单表达式查询

select 表达式 from 表名;

说明:

  • 查询的结果不仅仅是列, 而是可以将列带入到表达式中, 进行运算
  • SQL在进行算术运算时, 如果其中的某个操作数是NULL, 那么结果就是NULL, NULL怎么算都是NULL

假设创建这样的表:

 通过表达式查询:

注意:select 的所有用法, 都不会影响数据库服务区硬盘上存储的数据!!! 

上述我们知道chinese类型是decimal(3,1) 数字长度为3, 小数位数为1

那么如果我们将chinese+100, 数字长度变为4 可不可以呢?

显然是可以的

此时查询到的结果是一张'临时表' 并不存储到硬盘上decimal(3,1) 限制的是硬盘上的数据, 而不是临时表, 临时表会尽可能的保证你的计算结果是正确的 

表达式查询还可以多个列参与运算:

2)带别名的表达式查询 

 述过程中, 表达式就成了临时表表头的名字, 如果表达式太复杂就不太直观, 因此可以给临时表的列起别名

select 表达式 as 别名 from 表名;

说明:as可以省略, 但不建议

4. 去重查询

针对查询结果, 存在重复的数据, 就会把重复的数据合并成一行

select distinct 列名 from 表名; 

 假设先添加一个重复列:

去重查询:

如果是两个列去重查询, 必须是两个列的值都相等, 才能去重

5. 带有排序的查询

注:select 查询的默认结果是"无序"的, 要想让查询结果"有序", 就必须手动使用order by 语句, 让mysql主动排序!!!

1)单个列排序

语法:

select .... from 表名 order by 列名/表达式 [desc];

说明: 

  • select 后面的是要显示的列, 可以做去重等操作
  • order by 默认是按升序排列, 如果想要降序, 需要加desc关键字, 即order by 列名/表达式 desc; (desc 是descend 的缩写)
  • 排序 是按照行为单位进行排序的
  • NULL在order by 中, 视为"最小值", 如果存在多个NULL, 那么多个NULL 之间的顺序是不确定的

 举例:

升序:

 降序:

表达式:(可以用别名代替)

 order by 后面的表达式 不一定非要出现在select 后面:

 2)多个列排序:

select ... from 表名 order by 列名[desc],列名[desc]... ;

规则: 先按照第一个列名排序, 如果第一个列名相同, 按照第二个列名排序, 以此类推...

 **6. 条件查询(重要)

比较运算符:

注意:

  • SQL的'=' 是判断相等的意思, 没有'=='
  • null = null 的结果是null 即为false
  • null <=> null 的结果为true
  • 想判断某一个数据是否为空, 用<=>

逻辑运算符:

 相当于java中的 && || !

语法:

select ... from 表名 where 条件;

用逻辑运算符/条件运算符来描述条件

1)基本查询

  • 查询英语不及格的同学及英语成绩
  •  查询语文成绩好于英语成绩的同学
  • 查询总分在 200 分以下的同学

上述我们使用order by的时候可以用别名代替, 那么where是否可以呢?显然是不可以的!

原因:

一个SQL 的执行顺序:

  1. 遍历表
  2. 带入条件
  3. 计算列名中的表达式(定义别名)
  4. 排序/聚合 等操作

因为执行条件的时机, 比定义别名要靠前

2)and / or

  • 查询语文成绩大于80, 且英语成绩大于80 的同学
  • 查询语文成绩大于80, 或英语成绩大于80 的同学
  • 注: and的优先级大于or

3)范围查询

  • between...and...(左闭右闭)  是连续的区间
    • 查询语文成绩在[80,90] 的同学及语文成绩
  • in... 是离散的区间
    • 查询数学成绩是58或59或98或99的同学及数学成绩

4)模糊查询 like

  • % 表示任意个数的任意字符(包含0)
  • _ 表示一个任意的字符

5)针对空值的比较

  • is [not] null
  • <=>   也可以用于针对两个列的比较

7. 分页查询

有时候, 虽然是进行条件查询, 但是查询到的结果仍然会非常多, 如果直接把内容显示出来, 也不一定就合适

1)简单分页查询

select ... from 表名 limit n ...;

 说明: 只查询前n条记录

2)带offset查询

select ... from 表名 limit n offset m ... ;

说明:offset称为偏移量(相当于下标), 即跳过m行, 从第m+1行进行查询

3) 省略offset查询

select ... from exam_result 表名 limit m , n ... ;

 说明: 此时m表示偏移量, n表示行数

练习: 查询总成绩前三名同学

 

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

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

相关文章

Arduino-ILI9341驱动-SPI接口TFTLCD实现触摸功能系列之触控开关二

Arduino-ILI9341驱动-SPI接口TFTLCD实现触摸功能系列之触控开关二 1.概述 这篇文章在触摸屏上绘制一个开关&#xff0c;通过点击开关实现控制灯的开关功能。 2.硬件 硬件连接参考第一篇文章介绍 Arduino-ILI9341驱动-SPI接口TFTLCD实现触摸功能系列之获取触控坐标一 3.实现…

JETBRAINS IDES 分享一个2099通用试用码,支持一键升级!CLion 2024 版

文章目录 废话不多说上教程&#xff1a;&#xff08;动画教程 图文教程&#xff09;一、动画教程激活 与 升级&#xff08;至最新版本&#xff09; 二、图文教程 &#xff08;推荐&#xff09;Stage 1.下载安装 toolbox-app&#xff08;全家桶管理工具&#xff09;Stage 2 : 下…

一直可以正常 git push 代码,突然就不行了,提示端口22错误,访问超时!

大家好&#xff0c;我是 Just&#xff0c;这里是「设计师工作日常」&#xff0c;今天分享的是当使用 git 时&#xff0c;突然提示端口错误&#xff0c;然后访问超时&#xff0c;我解决的过程以及最后的解决方案。 最新文章通过公众号「设计师工作日常」发布。 目录 不好意思&a…

手撕C语言题典——环形链表的约瑟夫问题

目录 前言 一.故事背景 二.题目 ​编辑三.思路 1&#xff09;数组 ​编辑2&#xff09; 循环链表 四.代码实现 搭配食用更佳哦~~ 数据结构之单单单——链表-CSDN博客 数据结构之单链表的基本操作-CSDN博客 前面学了单链表的相关知识&#xff0c;我们来尝试做一下关于…

用友hr软件统一认证与致远OA单点登录身份周期管理怎么做

一、引言 随着企业信息化建设的深入&#xff0c;各类管理软件如用友HR、致远OA等已经成为事业单位日常运营不可或缺的工具。用友HR软件以其强大的人力资源管理功能&#xff0c;帮助企事业单位实现员工信息的集中管理&#xff1b;而致远OA则以其便捷的办公流程管理&#xff0c;…

数据中心网络随想-电路交换

数据中心网络扩容并不容易&#xff0c;涉及设备上架&#xff0c;切换等又硬又大的动作&#xff0c;期间对所有应用都会产生影响&#xff0c;所以理论上 “加钱加硬件” 这种看起来很简单的事实际上真不如 “写一个随时部署升级的端到端拥塞控制算法” 更容易实施。 傍晚绕小区…

【以规划为导向的自动驾驶】Planning-oriented Autonomous Driving

ABSTRACT 研究背景&#xff1a; 现代自动驾驶系统是顺序化地排列多个任务模块, 近期的主流方法&#xff1a; ①为单个任务部署独立模型 ②设计具有分离式头部的多任务(multi-task)范式。 但是&#xff0c;这些方法会累积误差或任务间协同不足而不利于自动驾驶。 作者认为重…

nginx 配置域名SSL证书HTTPS服务

下载 上传根目录 /home/wwwroot/xx.com/ssl 从新执行 添加域名命令 选择添加SSL SSL Certificate file: 填写 完整目录 PEM文件地址 SSL Certificate Key file:填写 完整目录 key文件地址

鸿蒙布局Column/Row/Stack

鸿蒙布局Column/Row/Stack 简介我们以Column为例进行讲解1. Column({space: 10}) 这里的space: 10&#xff0c;表示Column里面每个元素之间的间距为102. width(100%)&#xff0c;height(100%) 表示宽高占比3. backgroundColor(0xffeeeeee) 设置背景颜色4. padding({top: 50}) 设…

如何用Rust获取本机CPU、内存在Web网页中显示?

目录 一、需求描述 二、具体操作步骤 三、知识点 1、systemstat 2、Actix 一、需求描述 需求&#xff1a; 1、需要使用Rust进行后端开发获取本机CPU和内存信息&#xff1b; 2、使用WEB框架发布API&#xff1b; 3、然后使用HTML/CSS/JavaScript进行前端开发&#xff0…

网络安全公司观察,看F5如何将安全化繁为简

应用无处不在的当下&#xff0c;从传统应用到现代应用再到边缘、多云、多中心的安全防护&#xff0c;安全已成为企业数字化转型中的首要挑战。根据IDC2023年《全球网络安全支出指南》&#xff0c;2022年度中国网络安全支出规模137.6亿美元&#xff0c;增速位列全球第一。有专家…

ICode国际青少年编程竞赛- Python-6级训练场-多重递归

ICode国际青少年编程竞赛- Python-6级训练场-多重递归 1、 def move(a, b):if a > 12:returnDev.step(a)Dev.turnRight()if b < 4:move(a, b1)else:move(a2, 1) move(2, 1)2、 def move(a, b):if a < 2:returnif b 1: Spaceship.step(2)Dev.step(a)Dev.turnRight()De…

静态住宅IP优缺点总结

在进行海外 IP 代理时&#xff0c;了解动态住宅 IP 和静态住宅 IP 的区别以及如何选择合适的类型非常重要。本文将介绍精态住宅 IP 特点和&#xff0c;并提供选择建议&#xff0c;帮助您根据需求做出明智的决策。 静态住宅 IP 的特点 静态住宅 IP 是指 IP 地址在一段时间内保…

idea启动Jsp非maven项目时的一些步骤

文章目录 事前准备eclipse项目举例idea打开eclipse项目安装tomcat配置启动项启动测试 一些小问题到不到servlet 事前准备 非社区版idea【否则启动项无法配置】tomcatmysql eclipse项目举例 idea打开eclipse项目 剩下的全部下一步即可 安装tomcat 自己的文章 Javaweb - t…

GPT-4o: 从最难的“大海捞针”基准看起

大模型技术论文不断&#xff0c;每个月总会新增上千篇。本专栏精选论文重点解读&#xff0c;主题还是围绕着行业实践和工程量产。若在阅读过程中有些知识点存在盲区&#xff0c;可以回到如何优雅的谈论大模型重新阅读。另外斯坦福2024人工智能报告解读为通识性读物。若对于如果…

免费PPT模板下载,无套路。

身在职场做好PPT是一项必备技能&#xff0c;如何快速做出好看又高级的PPT&#xff0c;收藏好这6个网站&#xff0c;不管你是工作总结、毕业论文、个人简历、企业宣传都能找到合适的模板&#xff0c;最重要的是可以免费下载。 1、菜鸟图库 ppt模板免费下载|ppt背景图片 - 菜鸟图…

轻松拿下指针(5)

文章目录 一、回调函数是什么二、qsort使用举例三、qsort函数的模拟实现 一、回调函数是什么 回调函数就是⼀个通过函数指针调⽤的函数。 如果你把函数的指针&#xff08;地址&#xff09;作为参数传递给另⼀个函数&#xff0c;当这个指针被⽤来调⽤其所指向的函数 时&#x…

晶振在电子设备中的作用是什么?

在无源晶振电路中&#xff0c;并联电阻起着至关重要的作用。无源晶振本身不能自行产生振荡&#xff0c;因此需要借助外部电路来实现。并联在晶振两端的电阻&#xff0c;通常称为负载电阻&#xff0c;对电路的稳定性和振荡性能有着重要影响。 晶振电路的核心是皮尔斯振荡器&…

同城预约上门服务家政小程序

基于Thinkphp和原生微信小程序开发的一款同城预约、上门服务、到店核销家政系统&#xff0c;用户端、服务端、门店端各端相互依赖又相互独立&#xff0c;支持选择项目、选择服务人员、选择门店多种下单方式&#xff0c;支持上门服务和到店核销两种服务方式&#xff0c;支持自营…

java AOP环绕切面记录操作日志

一.创建数据库日志表 CREATE TABLE uc_system_log (id bigint(20) NOT NULL AUTO_INCREMENT COMMENT 主键ID,user_code varchar(64) DEFAULT NULL COMMENT 用户编码,user_name varchar(128) DEFAULT NULL COMMENT 用户名称,is_login tinyint(4) NOT NULL DEFAULT 0 COMMENT 是…