MySQL数据表的“增删查改“
我们学习数据库, 最重要的就是要学会对数据表表进行"增删查改"(CRUD).(C -- create, R -- retrieve, U -- update, D -- delete)
目录
一. "增"(create)
1. 普通新增
2. 指定列新增
3. 一次插入多行
4. 用insert插入时间
5. 小结
二. "查"(retrieve)
1. 全列查询
2. 指定列查询
3. 查询时指定表达式
4. 去重查询
5. 排序查询
6. 条件查询(查询中最关键的操作)
7. 分页查询
8. 小结
三. "改"(update)
四. "删"(delete)
一. "增"(create)
MySQL中, 新增元素的基本语法如下:
1. 普通新增
insert into 表名 values (值, 值, 值 ......);
例如:
注: MySQL中, 表示字符串使用单引号或者双引号都可以.
注意:
(1) 这里值的个数和类型, 要和表结构相匹配.
如上图, 列数和值的个数不匹配.
如上图, 明明第二列插入的int类型和表中定义的varchar类型不匹配, 为什么还能插入成功呢? 这里我们就不得不提到SQL语言的"弱类型"特性.
SQL(结构化查询语言)通常被认为是一种“弱类型”或“动态类型”的语言. SQL可以在查询执行时自动进行数据类型转换. 例如在这里SQL就自动把int类型的3转换成了字符串类型. 但SQL并非在任何情况下都能将数据类型自动转换.
例如在这里SQL就无法将字符串类型的"李四"转换成int类型, 此时程序就会报错.
2. 指定列新增
insert into 表名(列名, 列名 ......) values(值, 值 ......);
(注意: 插入值的 个数, 类型, 顺序 要和前面指定的列名匹配).
3. 一次插入多行
insert into 表名 values(值, 值 ...), (值, 值 ...), (值, 值 ...) ...;
每个括号表示一行.
还可以和"指定列新增"配合使用.
例如:
4. 用insert插入时间
以字符串的形式插入时间.
可以使用now()来插入当前时间. (注: now()获取的时间是字符串类型的).
5. 小结
(1) 普通新增: insert into 表名 values(值, 值, 值 ......);
(2) 指定列新增: insert into 表名(列名, 列名 ......) values(值, 值 ......);
(3) 一次插入多行: insert into 表名 values(值, 值 ...), (值, 值 ...), (值, 值 ...) ...;
(4) 用 insert 插入时间: 以字符串的形式插入时间, 获取当前时间使用now()
二. "查"(retrieve)
SQL中, "增删改"都很简单, "查"比较复杂. 本篇博客我们先介绍简单的"查"操作.
MySQL中, 新增元素的基本语法如下:
1. 全列查询
即查询出指定表的所有行和所有列.
select * from 表名;
(注意: *是通配符. 在这里, *代指所有列)
注意: select* 是一个非常危险的操作. 因为一旦表的规模非常大, 此时进行select*操作, 就会产生大量的硬盘io和网络io, 很可能会把硬盘/网卡的带宽"吃满", 造成"拥堵". 使得其他客户端在尝试访问数据库时, 访问操作就无法正常进行了.
2. 指定列查询
查询的时候, 手动指定列名, 查询出来的结果就是指定的列.
select 列名, 列名 from 表名;
3. 查询时指定表达式
select 表达式(as 别名) from 表名;
这里的表达式: 可以是针对某个列的加减乘除, 也可以是针对多个列的加减乘除.
例如: 我们想把成绩表每个学生的语文成绩加10分后查询:
把每个学生的总分查询出来:
注意: 这里可以给chinese,math,english的和取一个别名sum.需要使用到"as".如下:
也可以省略as,但是我们并不建议这样做, 因为这样很容易造成SQL语句表达含义不清晰.
注意: 查询操作(select)生成的表只是"临时表". 数据库本体(数据库服务器硬盘上的数据)不会发生任何改变.
4. 去重查询
去重的含义: 多个行的数据, 如果出现相同的, 就会只保留一份.
select distinct 列名 from 表名;
5. 排序查询
针对查询结果进行排序
... order by 列名;
注意: 如果排序中出现null, null会被视为最小值.
例如: 用数学成绩来排序
(默认是升序排列) 当然升序还是降序也可以手动指定. (asc -- 升序, desc -- 降序). (这里的asc是ascend的缩写, desc是descend的缩写).
也可以指定多个列排序, 排序规则为: 先使用第一列来排列, 如果第一列元素相同, 则使用第二列, 如果前两列都相同, 则使用第三列 ......
... order by 列名, 列名, 列名 ......
6. 条件查询(查询中最关键的操作)
查询过程中: 一行一行地遍历表, 根据筛选条件, 把每一行的数据代入到条件中, 满足就保留并显示, 不满足就跳过.
select 列名 from 表名 where 条件;
条件运算符:
>, >=, <, <= : 大于,大于等于, 小于,小于等于
= : 等于, 不支持null的比较 (例如: null = null 的结果为 null)
<=> : 等于, 支持null的比较 (例如: null <=> null 的结果为 true)
(注意: 只要有null参加的运算,结果都是null)
!= : 不等于
between a and b : 范围匹配, 闭区间[a, b]. 如果value值在[a, b]范围内, 就返回true.
例如:
in (option1, option2 ......) : 如果是几个option中的任意一个, 则返回true.
例如:
is null : 是null
is not null : 不是null
like : 模糊匹配 (即: 不要求完全相等, 满足一些条件可以了) 此外还需要搭配通配符来使用.
(%匹配0个或任意个字符, _匹配一个特定字符)
例如:
and : 并且
or : 或者
not : 非(逻辑取反)
7. 分页查询
select 列名 from 表名 limit N (offset M):
N代表限制查询几条数据.
例如:
指定limit时, 还可以搭配offset来使用. offset表示从下标为几开始算limit.
例如:
8. 小结
(1) 全列查询: select * from 表名;
(2) 指定列查询: select 列名, 列名 from 表名;
(3) 查询时指定表达式: select 表达式(as 别名) from 表名;
(4) 去重查询: select distinct 列名 from 表名;
(5) 排序查询: ... order by 列名 desc/asc;
(6) 条件查询: select 列名 from 表名 where 条件;
(7) 分页查询: select 列名 from 表名 limit N (offset M):
三. "改"(update)
使用update所完成的修改, 是真正在硬盘上完成了修改. 这样的修改, 是"持久有效"的.
基本语法:
update 表名 set 列名 = 值, 列名 = 值, 列名 = 值 ......;
注意:
(1) 这里还可以配合使用where, order by, limit 来对查询结果进行条件限制/排序/分页.
(2) 如果没有指定条件, 默认对所有列进行修改.
例如, 这里我们要把sunwukong的english成绩改为79:
从上面结果我们可以看到: "查询成功, 1行受到影响", "匹配到的行数:1 , 修改的行数:1, 警告: 0".
注意: 这里匹配到的行数和实际被修改的行数不一定相等, 要根据实际情况决定, 比如:
这里虽然匹配到了9行, 但是只修改了6行. 因为只要有null参与的运算, 结果都是null, 无法修改.
注意: 这里写到的 chinese = chinese + 10 不能写成chinese += 10. 因为SQL语言中没有这样的语法.
再例: 我们要把louxiang的id 6,成绩 99, 87, 74都记录下来
update是一个非常简单单操作, 关于update的操作, 大概就是这么多.
四. "删"(delete)
基本语法:
delete from 表名 where 条件 (order by / limit N).
注意:
(1) delete(删除)操作也是一个非常危险的操作, 在实际开发中, 要谨慎使用.
(2) 如果delete语句没有指定条件, 那么默认会删除表中所有数据.
(2) 注意辨析delete from 表名 和 drop table 表名 的区别: delete 只是删除表中数据, 但是表依然存在; drop 是连数据带表一块都删除了.
以上就是本篇博客的全部内容啦,如果喜欢小编的文章,可以点赞,评论,收藏~
相关文章:

MySQL数据表的“增删查改“
我们学习数据库, 最重要的就是要学会对数据表表进行"增删查改"(CRUD).(C -- create, R -- retrieve, U -- update, D -- delete) 目录 一. "增"(create) 1. 普通新增 2. 指定列新增 3. 一次插入多行 4. 用insert插入时间 5. 小结 二. "查"…...

Github查询语法
转载自link 基础查询结构 一个关键词会匹配文件内容或文件路径。 多个关键词会匹配文件内容,只要包含关键词,就会出现在搜索结果中,不论前后顺序,是否是一个单词(多个关键词之间没有空格)。 还可以使用…...

pqgrid的使用
npm安装pqgrid npm install pqgridf --registryhttps://registry.npmmirror.com npm install jquery-ui --registryhttps://registry.npmmirror.comvue文件 <template><div><div id"grid_json"></div></div> </template><s…...

媳妇面试了一家公司,期望月薪20K,对方没多问就答应了,只要求3天内到岗,可我总觉得哪里不对劲。
“20k!明天就来上班吧!” 听到这句话,你会不会两眼放光,激动得差点跳起来? 朋友媳妇小丽,最近就经历了这样一场“梦幻面试”。然而,事情的发展却远没有想象中那么美好…… “这公司也太好了吧…...

【Makefile笔记】小白入门篇
【Makefile笔记】小白入门篇 文章目录 【Makefile笔记】小白入门篇所需组件一、简单了解Makefile1.Makefile简介2.Makefile 原理 二、为什么要使用Makefile1.解决编译时链库的不便2.提高编译效率,缩短编译时间(尤其是大工程) 三、Makefile语法…...

快速入门文件操作+5种例子演示
文件操作 基本操作注意事项例子1:读取文件内容例子2:写入文件内容例子3:追加文件内容例子4:读取并写入文件内容(复制文件)例子5:使用二进制模式读写文件 基本操作 在C语言中,使用文…...

基于Vue3的Uniapp实训项目|一家鲜花店
基于Vue的Uniapp实训指导项目 项目预览: 在这里插入图片描述 pages.json {"pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages{"path": "pages/index/index",&…...

Python3 字典
前言 本文主要介绍Python中的字典(dict),主要内容包括:字典简介、字典特性、字典的基本操作。 文章目录 前言一、字典简介二、字典特性1、键值对2、无序性?3、可变性4、键的唯一性5、值的类型不限 三、字典的基本操作1、创建2、访问3、增加…...

JPA详解
文章目录 JPA概述JPA的优势JPA注解 JPA概述 Java Persistence API(JPA)是 Java EE 平台的一部分,它为开发者提供了一种用于对象关系映射(ORM)的标准化方法。JPA 提供了一组 API 和规范,用于在 Java 应用程…...

Linux线程:线程分离
目录 一、什么是线程分离 1.1pthread_detach 1.2pthread线程库存在的意义 1.3__thread线程的局部存储 1.4系统调用clone 一、什么是线程分离 1.1pthread_detach 默认情况下,新创建的线程是joinable的,线程退出后,需要对其进行pthread_joi…...

chatgpt之api的调用问题
1.调用api过程中,出现如下报错内容 先写一个测试样例 import openaiopenai.api_key "OPEN_AI_KEY" openai.api_base"OPEN_AI_BASE_URL" # 是否需要base根据自己所在地区和key情况进行completion openai.ChatCompletion.create(model"g…...

Java中lambda表达式是啥怎么使用
在Java中,Lambda表达式(也称为闭包)是一种简洁地表示匿名函数(即没有名称的函数)的方式。它们允许你将函数作为参数传递或赋值给变量,从而简化代码。Lambda表达式在Java 8及更高版本中引入。 Lambda表达式…...

selenium中, quit 和close的区别
close时 """ close和quit的区别 close关闭当前页 (只是关闭了当前) quit离开整个浏览器 (走远了) """ from selenium import webdriver import time# 创建浏览器驱动对象 from selenium.webdriver.co…...

管易云和金蝶云星空接口打通对接实战
管易云和金蝶云星空接口打通对接实战 源系统:管易云 金蝶管易云是金蝶集团旗下以电商和新零售为核心业务的子公司,公司于2008年成立,拥有从事电商及新零售业务相关专业知识工作者超过1000人。为伊利、网易有道、东阿阿胶、金龙鱼、海康、科大讯飞等超过1…...

DP-Kmaens密度峰值聚类算法
我有个问题 关于 [密度值>密度阈值] 的判定这里,新进来的新数据怎么确定他的密度值?密度阈值又是怎样确定的呢?...

STM32-14-FSMC_LCD
STM32-01-认识单片机 STM32-02-基础知识 STM32-03-HAL库 STM32-04-时钟树 STM32-05-SYSTEM文件夹 STM32-06-GPIO STM32-07-外部中断 STM32-08-串口 STM32-09-IWDG和WWDG STM32-10-定时器 STM32-11-电容触摸按键 STM32-12-OLED模块 STM32-13-MPU 文章目录 1. 显示器分类2. LCD简…...

linux nohup命令详解:持久运行命令,无视终端退出
nohup (全称为 “no hang up”),用于运行一个命令,使其在你退出 shell 或终端会话后继续运行。 基本语法 nohup command [arg1 ...] [&> output_file] &command 是你想要运行的命令。[arg1 ...] 是该命令的参数。&am…...

PS系统教程09
修复照片 修饰工具 污点修复画笔工具(J) 主要作用:去除一些污点或者不需要的 【:缩小】:放大 目标:去掉这两个点 修复画笔工具 也就是说我们要有取样点 选择修复画笔工具按住Alt键吸取周边相近颜色松开单机…...

2024089期传足14场胜负前瞻
2024089期售止时间为6月3日(周一)22点00分,敬请留意: 本期1.5以下赔率5场,1.5-2.0赔率5场,其他场次是平半盘、平盘。本期14场难度偏低。以下为基础盘前瞻,大家可根据自身判断,复选增…...

备战十一届大唐杯国赛预选赛
这次省赛带了太多个省一了,具体可看下面的图片,只放了一部分。目前根据可靠消息,应该还有个预选赛和去年一样,就是还会考一次仿真。如果说通过了就是国二起步然后去北方工业争夺国一国二,没过的话就是国三。 每…...

安装 Android Studio 2024.1.1.6(Koala SDK35)和过程问题解决
记录更新Android Studio版本及适配Android V应用配置的一些过程问题。 安装包:android-studio-2024.1.1.6-windows.exe原版本:Android Studio23.2.1.23 Koala 安装过程 Uninstall old version 不会删除原本配置(左下角提示) Un…...

美团一面:什么是CAS?有什么优缺点?我说你说的是AtomicInteger吗?
引言 传统的并发控制手段,如使用synchronized关键字或者ReentrantLock等互斥锁机制,虽然能够有效防止资源的竞争冲突,但也可能带来额外的性能开销,如上下文切换、锁竞争导致的线程阻塞等。而此时就出现了一种乐观锁的策略&#x…...

【linux】(2)文件内容排序sort
sort 是一个用于排序文件内容的命令行工具,在 Linux 和 Unix 系统中非常常用。 基本用法 sort [OPTION]... [FILE]...常用选项 按数值排序 -n sort -n filename例子:对包含数值的文件进行排序。 按字典顺序排序 -d sort -d filename例子࿱…...

css 图片上添加模糊背景的文字内容
html部分 <div class"onlogo"> <img src"../assets/img/banner.png" /><div class"imgText"><div class"title">一体化电子印章应用服务</div><div class"content">为企业提供安全可靠…...

Python3 函数参数
前言 本文主要介绍python中的函数参数,主要内容包括形式参数与实际参数的概念、位置参数、关键字参数、默认参数、可变参数。 文章目录 前言一、形式参数与实际参数的概念二、位置参数(也叫必需参数)三、关键字参数四、默认参数五、可变参数…...

精准检测,可燃气体报警系统的技术原理与特点
在现代化的工业生产与日常生活中,可燃气体泄露事故频发,给人们的生命和财产安全带来了严重威胁。 因此,可燃气体报警检测系统的应用变得尤为重要。它不仅能够实时监测环境中的可燃气体浓度,还能在发现异常情况时及时报警…...

6月2(信息差)
🌍特斯拉:Model3高性能版预计6月中旬开启首批交付 🎄微软对开源字体 Cascadia Code 进行重大更新 ✨天猫618加码引爆消费热潮 截至晚9点185个品牌成交破亿 1.瑞士清洁科技公司Librec开发废旧锂离子电池回收技术,可回收电池90%的…...

先锋文汇发稿技巧方法
v:yangwei013049 看到标题,有的同志也许会说,投稿就是把稿子发走就行了呗,这要讲究什么方法呢?其实,投稿里面也有学问。不会投稿,方法不当,往往得不到好的效果。 从我多年的实践和…...

无人机推流/RTMP视频推拉流EasyDSS无法卸载软件是什么原因?
视频推拉流/直播点播EasyDSS平台支持音视频采集、视频推拉流、播放H.265编码视频、存储、分发等视频能力服务,在应用场景中可实现视频直播、点播、转码、管理、录像、检索、时移回看等。此外,平台还支持用户自行上传视频文件,也可将上传的点播…...

QML信号连接到c++的槽函数(五)
文章目录 前言一、QML Signal and Handler Event System二、QML信号连接到c++的槽函数代码实例1. 创建一个QML 工程2. 用C++ 实现一个QML Types3. 代码实例4. 运行结果总结参考资料前言 本文主要介绍,如何将QML 中的信号连接到C++ 中的槽函数 软硬件环境: 硬件:PC 软件:wi…...