MySql入门教程--MySQL数据库基础操作
꒰˃͈꒵˂͈꒱ write in front ꒰˃͈꒵˂͈꒱
ʕ̯•͡˔•̯᷅ʔ大家好,我是xiaoxie.希望你看完之后,有不足之处请多多谅解,让我们一起共同进步૮₍❀ᴗ͈ . ᴗ͈ აxiaoxieʕ̯•͡˔•̯᷅ʔ—CSDN博客
本文由xiaoxieʕ̯•͡˔•̯᷅ʔ 原创 CSDN 如需转载还请通知˶⍤⃝˶
个人主页:xiaoxieʕ̯•͡˔•̯᷅ʔ—CSDN博客系列专栏:xiaoxie的MySql学习系列专栏——CSDN博客●'ᴗ'σσணღ
我的目标:"团团等我💪( ◡̀_◡́ ҂)"( ⸝⸝⸝›ᴥ‹⸝⸝⸝ )欢迎各位→点赞👍 + 收藏⭐️ + 留言📝+关注(互三必回)!
一.数据库的操作
1.1 显示当前的数据库
show databases;
1.2创建数据库
create database Test;
可以使用显示当前的数据库的操作查看是否创建成功
1.3 使用数据库
use 数据库名;
这里需要特别提醒:当我们对这个数据库进行增删改查操作表的时候,我们需要先use 数据库名
1.4 删除数据库
语法:
drop database 数据库名
可以使用显示当前的数据库的操作查看是否删除成功
同时这里博主提醒一下数据库删除以后,内部看不到对应的数据库,里边的表和数据全部被删除,可能目前我们操作的是自己的数据库,删库后影响不大,但我们工作之后, 删库操作就要小心谨慎了
二.常用数据类型
MySQL 的数据类型有大概可以分为整数类型、浮点数类型和定点数类型、日期和时间类型、字符串类型、二进制类型等.
2.1 整数类型
MySQL 主要提供的整数类型有 TINYINT
、SMALLINT
、MEDIUMINT
、INT
、BIGINT
,其属性字段可以添加 AUTO_INCREMENT
自增约束条件。
类型名称 | 说明 | 储存需求 |
TINYINT | 很小的整数 | 一个字节 |
SMALLINT | 小的整数 | 两个字节 |
MEDIUMINT | 中等大小的整数 | 三个字节 |
INT | 普通大小的整数 | 四个字节 |
BIGINT | 大整数 | 八个字节 |
2.2 浮点类型
MySQL 中使用浮点数和定点数来表示小数。
浮点类型有两种,分别是单精度浮点数(FLOAT
)和双精度浮点数(DOUBLE
);定点类型只有一种,就是 DECIMAL
。
浮点类型和定点类型都可以用(M, D)
来表示,其中 M
称为精度,表示总共的位数;D
称为标度,表示小数的位数。例如DECIMAL(3,1)
可以为99.0 但不可以为100.0 因为它总的位数最大为3,而100.0为`4.
浮点数类型的取值范围为 M(1~255)和 D(1~30,且不能大于 M-2),分别表示显示宽度和小数位数。M 和 D 在 FLOAT 和DOUBLE 中是可选的,FLOAT 和 DOUBLE 类型将被保存为硬件所支持的最大精度。DECIMAL 的默认 D 值为 0、M 值为 10。
类型名称 | 说明 | 储存需求 |
FLOAT(M, D) | 单精度,M指定长度,D指定 小数位数。会发生精度丢失 | 4字节 |
DOUBLE(M, D) | 双精度,M指定长度,D指定 小数位数。会发生精度丢失 | 8字节 |
DECIMAL(M, D) | 定点类型,M指定长度,D表示 小数点位数。精确数值 | M+2字节 |
2.3 日期和时间类型
MySQL 中有多处表示日期的数据类型:YEAR
、TIME
、DATE
、DTAETIME
、TIMESTAMP
。当只记录年信息的时候,可以只使用 YEAR
类型。每一个类型都有合法的取值范围,当指定确定不合法的值时,系统将“零”值插入数据库中。
2.4字符串类型
字符串类型用来存储字符串数据,还可以存储图片和声音的二进制数据。字符串可以区分或者不区分大小写的串比较,还可以进行正则表达式的匹配查找。
MySQL 中的字符串类型有 CHAR、VARCHAR、TINYTEXT、TEXT、MEDIUMTEXT、LONGTEXT、ENUM、SET 等。下表中列出了 MySQL 中的字符串数据类型,括号中的 M 表示可以为其指定长度。
2.5总结
总的来说我们常用的数据类型就几个:INT,FLOAT,DOUBLE,DECIMAL,VARCHAR,DATETIME. 至于其他的几个数据类型,具体问题具体分析.
三.表的操作
需要操作数据库中的表时,需要先使用该数据库:
use 数据库名;
3.1 显示当前库的所有表
show tables;
3.2查看表结构
desc 表名;
3.3创建表
语法:
create table 表名(
字段1(列名) 数据类型,
字段2(列名) 数据类型,
字段3(列名) 数据类型,
.... .....
);
示例:
create table student(id int,name varchar(20),gender varchar(2),age int);
结果:
显示是否成功创建表
显示当前表结构是否成功创建
3.4删除表
语法格式:
drop table 表名
示例:
drop table student -- 删除学生表
结果:
显示是否成功删除表
四.CRUD(增删改查操作)
4.1 新增(Create)
语法:
insert (into) 表名values(数据);
说明:
这里插入数据的数据类型,和顺序必须要和当前表的数据类型,顺序相同
1.单行数据
全列插入
案例:插入一条id为1name为张三性别为男年龄为18的学生信息到学生表
insert into student values(1,"张三","男",18);
注意由于SQL是一门弱类型的语言所以,字符串可以使用双引号 " " 或者单引号 ' ' 修饰
结果:
指定列插入
语法:
insert into student(指定列) values(数据);
案例:插入一条id为2name为李四性别为男的学生信息到学生表
insert into student(id,name,gender) values(1,"李四","男");
结果:
说明:可以看到没有指定插入列的那一行的值为null,同时指定列插入也同时需要, 插入数据的数据类型,和顺序必须要和当前表的数据类型,顺序相同.
2.多列插入
语法:
insert into 表名 values(数据),(数据);
案例: 插入一条id为3name为王五性别为女年龄为19和id为4name为赵六性别为男年龄为21的学生信息到学生表
insert into student values(3,"王五","女",19),(4,"赵六","男",21);
结果:
指定列多行插入和上述的一样这里博主就不过多的赘述了
4.2查询
在我们以后工作的场景中,查询才是所有操作中应用最多的操作,所以一定要尽量熟练掌握
1 全列查询
语法:
select * from 表名
案例:查询学生表的所有学生信息
select * from student;
结果:
说明:这里需要记住的是,虽然全列查询很方便也很简单,当这是在我们自己学习的数据库,数据量不会很多,在日后工作后,一张表的数据可能都有百万级别甚至更大查询的列越多,意味着需要传输的数据量越大;
2.指定列查询
这里为了后续的案例分析,我们先创建一张表,和一些数据
-- 创建考试成绩表
DROP TABLE IF EXISTS exam_result;
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);
语法:
--单列查询
select 指定列 from 表名;
--多列查询
select 指定列,指定列,指定列 from 表名;
--可以加算术表达式
select 指定列,指定列+指定列 from 表名
案例:
查询所以考生的名字和该考生的总分在考试信息表中;
select name,chinese+math+english from exam_result;
结果:
说明:
这里的指定列并不需要按照表的列的顺序,以及如果要用算术表达,类型要为,整数型或者浮点型,同时类型还需要相同
3.别名
语法:
select 列名 as 别名 from 表名;
案例:
查询所以考生的名字和该考生的总分在考试信息表中;
select name,chinese+math+english as total from exam_result;
结果:
4.去重
语法:
select distinct 列名 from 表名;
案例:
5. 排序:ORDER BY
语法:
-- ASC 为升序(从小到大)
-- DESC 为降序(从大到小)
-- 默认为 ASC
select 列名 from 表名 order by(asc|desc) (指定列);
案例:查询同学及总分,由高到低
select name,chinese+math+english as total from exam_result order by total desc;
结果:
可以对多个字段进行排序,排序优先级随书写顺序
-- 查询同学各门成绩,依次按 数学降序,英语升序,语文升序的方式显示
select name,math,chinese,english from exam_result order by math desc,
english,chinese;
结果:
说明:. NULL 数据排序,视为比任何值都小,升序出现在最上面,降序出现在最下面
6.条件查询:WHERE
比较运算符
运算符 | 说明 |
>, >=, <, <= | 大于,大于等于,小于,小于等于 |
= | 等于,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. = 和 <=> 的区别为当数据为null时 null = 任何数据(哪怕也是null) 结果都为null 如果是<=>
null <=> null 结果 就为 true(1);
2.. WHERE条件可以使用表达式,但不能使用别名
3.AND的优先级高于OR,在同时使用时,需要使用小括号()包裹优先执行的部分
案例:
基本查询:
查询英语不及格的同学及英语成绩 ( < 60 )
-- 查询英语不及格的同学及英语成绩 ( < 60 )
select name,english from exam_result where english < 60;
-- 查询语文成绩好于英语成绩的同学
select name,english,chinese from exam_result where chinese > english;
-- 查询总分在 200 分以下的同学
select name,math+english+chinese as total from exam_result where chinese + english+math < 200;
这里要注意where 后边不可以跟别名
AND与OR:
案例:
查询语文成绩大于80分,且英语成绩大于80分的同学
select name,chinese,english from exam_result where chinese > 80 and english > 80;
查询语文成绩大于80分,或英语成绩大于80分的同学
select name,chinese,english from exam_result where chinese > 80 or english > 80;
范围查询:
1. BETWEEN ... AND ...
查询语文成绩在 [80, 90] 分的同学及语文成绩
select name,chinese from exam_result where chinese between 80 and 90;
2. IN
查询数学成绩是 58 或者 65 或者 98 或者 99 分的同学及数学成绩
select name,math from exam_result where math in(58,65,98,99);
模糊查询:LIKE
% 匹配任意多个(包括 0 个)字符
select name from exam_result where name like"孙%";
_ 匹配严格的一个任意字符
select name from exam_result where name like"孙_";
7. 分页查询:LIMIT
语法:
-- 从 0 开始,筛选 n 条结果
select 列名 from 表名 (where) (order by 列名) limit n;
----从 s 开始,筛选 n 条结果
select 列名 from 表名 (where) (order by 列名) limit s,n;
----从 s 开始,筛选 n 条结果(建议使用这个方法,更直观)
select 列名 from 表名 (where) (order by 列名) limit n offset s;
案例:按 id 进行分页,每页 3 条记录,分别显示 第 1、2、3 页
-- 第 1 页
select * from exam_result order by id limit 3;
-- 第 2 页
select * from exam_result order by id limit 3 offset 3;-- 第 3 页,如果结果不足 3 个,不会有影响
select * from exam_result order by id limit 3 offset 6;
结果:
案例查询总分为前三的同学信息
select name,math + chinese + english as total from exam_resultorder by total desc limit 3;
4.3修改(Update)
语法:
update 表 set 字段1=value1, 字段2=value2... where 条件(order by )(limit)
案例:
将孙悟空同学的数学成绩变更为 80 分
update exam_result set math = 80 where name = "孙悟空";
将总成绩倒数前三的 3 位同学的语文成绩加上 5分
update exam_result set chinese = chinese + 5 order by math+chinese+english limit 3;
修改前:
修改后:
4.4 删除(Delete)
语法:
delete from 表名 (where)(order by)(limit)
案例:
-- 准备测试表
create table text_delect(id int);
-- 插入数据
insert into text_delect values(1),(2),(3),(4);
-- 删除数据
delete from text_delect where id = 1;
以上就是博主关于Mysql基本操作总结的所以内容了,希望能够对你有所帮助.
相关文章:

MySql入门教程--MySQL数据库基础操作
꒰˃͈꒵˂͈꒱ write in front ꒰˃͈꒵˂͈꒱ ʕ̯•͡˔•̯᷅ʔ大家好,我是xiaoxie.希望你看完之后,有不足之处请多多谅解,让我们一起共同进步૮₍❀ᴗ͈ . ᴗ͈ აxiaoxieʕ̯•͡˔•̯᷅ʔ—CSDN博客 本文由xiaoxieʕ̯•͡˔•̯᷅ʔ 原创 CSDN …...

鸿蒙Harmony应用开发—ArkTS声明式开发(基础手势:Slider)
滑动条组件,通常用于快速调节设置值,如音量调节、亮度调节等应用场景。 说明: 该组件从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 子组件 无 接口 Slider(options?: SliderOption…...

第五十六回 徐宁教使钩镰枪 宋江大破连环马-飞桨图像分类套件PaddleClas初探
宋江等人学会了钩镰枪,大胜呼延灼。呼延灼损失了很多人马,不敢回京,一个人去青州找慕容知府。一天在路上住店,马被桃花山的人偷走了,于是到了青州,带领官兵去打莲花山。 莲花山的周通打不过呼延灼…...

springboot/ssm企业内部人员绩效量化管理系统Java员工绩效管理系统web
springboot/ssm企业内部人员绩效量化管理系统Java员工绩效管理系统web 基于springboot(可改ssm)vue项目 开发语言:Java 框架:springboot/可改ssm vue JDK版本:JDK1.8(或11) 服务器:tomcat 数据库&…...

XML语言的学习记录2-XMLHttpRequest
学习笔记:XMLHttpRequest 特点: 在不重新加载页面的情况下更新网页在页面已加载后从服务器请求数据在页面已加载后从服务器接收数据在后台向服务器发送数据创建XMLHttpRequest对象 xmlhttpnew XMLHttpRequest();IE5 和 IE6,使用 …...

力扣爆刷第95天之hot100五连刷61-65
力扣爆刷第95天之hot100五连刷61-65 文章目录 力扣爆刷第95天之hot100五连刷61-65一、131. 分割回文串二、51. N 皇后三、35. 搜索插入位置四、74. 搜索二维矩阵五、34. 在排序数组中查找元素的第一个和最后一个位置 一、131. 分割回文串 题目链接:https://leetcod…...

聊聊powerjob的执行机器地址
序 本文主要研究一下powerjob的执行机器地址(designatedWorkers) SaveJobInfoRequest powerjob-common/src/main/java/tech/powerjob/common/request/http/SaveJobInfoRequest.java Data public class SaveJobInfoRequest {/*** id of the job. set null to create or non-…...

Android Kotlin知识汇总(三)Kotlin 协程
Kotlin的重要优势及特点之——结构化并发 Kotlin 协程让异步代码像阻塞代码一样易于使用。协程可大幅简化后台任务管理,例如网络调用、本地数据访问等任务的管理。本主题介绍如何使用 Kotlin 协程解决以下问题,从而让您能够编写出更清晰、更简洁的应用代…...

JVM垃圾收集器-serial.parNew,parallelScavnge,serialOld,parallelOld,CMS,G1
垃圾收集器 分代模型 适用于新生代: serial parNew parallel Scaavenge 适用于老年代: CMS serial Old(msc) paraller Old 分区模型 适用于超大容量: G1 分代模型 serial /serial Old收集器 1.单线程收集器 2.收集时会暂停其他线程&…...

docker搭建upload-labs
Upload-labs 是一个专门设计用于学习和练习文件上传安全的开源工具。它提供了各种场景的文件上传漏洞,供用户通过实践来学习如何发现和利用这些漏洞,同时也能学习到防御措施。使用 Docker 来搭建 upload-labs 环境是一种快速、简便的方法,它可…...

超详细外贸单证汇总!
今天给大家汇总了外贸单证的种类与使用相关知识,东西齐全,赶紧码住! 1、合同 CONTRACT是统称,买卖双方均可出具。如系卖方制作,可称为销售确认书,买方出具则可称为采购。 买卖双方均可出具合同。卖方出具的,可称为销售确认书(Sales Confir…...

Docker部署ChatGLM3、One API、FastGPT
创建并运行chatglm3容器 docker run --name chatglm3 -p 8000:8000 registry.cn-hangzhou.aliyuncs.com/ryyan/chatglm.cpp:chatglm3-q5_1 创建并运行one-api容器 (其中挂载路径 D:\one-api 可以选择你自己喜欢的目录) docker run --name oneapi -d -p 3000:3000 -e TZAsia…...

【Linux-网络编程】
Linux-网络编程 ■ 网络结构■ C/S结构■ B/S结构 ■ 网络模型■ OSI七层模型■ TCP/IP四层模型 ■ TCP■ TCP通信流程■ TCP三次握手■ TCP四次挥手 ■ 套接字:socket 主机IP 主机上的进程(端口号)■ TCP传输文件 ■ 网络结构 ■ C/S结构…...

win10虚拟机安装驱动教程
在虚拟机菜单栏中选择安装VMware Tools: 安装好后,在虚拟机中打开此电脑,双击DVD驱动器进行安装: 一直点击下一步: 安装完成: 此时重启虚拟机,发面小屏幕页面的虚拟机自动占满了全部屏幕&#x…...

SpringBoot实战项目——博客笔记项目
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、项目介绍二、项目的整体框架 2.1 数据库模块 2.2 前端模块 2.3 后端模块三、项目图片展示四、项目的实现 4.1 准备工作 4.…...

【海贼王的数据航海】排序——直接选择排序|堆排序
目录 1 -> 选择排序 1.1 -> 基本思想 1.2 -> 直接选择排序 1.2.1 -> 代码实现 1.3 -> 堆排序 1.3.1 -> 代码实现 1 -> 选择排序 1.1 -> 基本思想 每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置&…...

Flutter 的 switch 语句补遗
我的 App 里,一个消息气泡变成空白了,非常奇怪,此前一直是没问题的,经过调试定位我发现: static TextSpan _buildRootSpan(BuildContext ctx, List<LinkifyElement> parts, TextStyle? style) {List<InlineS…...

Linux动态库*.so函数名修改
在某些学习或者特殊需求的情况下要对linux下动态库*.so文件内部的函数名进行修改。 比如一个函数ADD(int a,int b);修改为Add(int a,int b); 通过这篇文章你将了解到在linux下动态库函数名寻址的规则,截止2024年3月linux动态库的寻址规则已经出现多种,这…...

adb shell 指令集
1.connect device连接设备: adb devices #return: List of devices attached 0123456789ABCDEF device2.连接终端 adb shell从设备拷贝文件到本地 adb pull <remote> [local] 如: adb pull /sdcard/demo.txt e:\从到本地拷贝文件到设备 adb push &…...

【电子通识】CH340C与CH340G的区别
在USB转串口电路中,网上买到的模块常常用的到是CH340或是CP2102。 但是CH340也有很多的版本,比如CH340C和CH340G,那么他们到底都有哪些差别。 环境特性 从规格书中可以看出环境特性CH340G是-40度到85度,而CH340C批号不是4开头…...

基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的吸烟检测系统(深度学习+Python代码+PySide6界面+训练数据集)
摘要:本文详细说明了如何利用深度学习开发一个用于监测吸烟行为的系统,并分享了完整的代码实现。该系统采用了先进的YOLOv8算法,同时还使用YOLOv7、YOLOv6、YOLOv5算法,并对它们进行了性能比较,呈现了不同模型的性能指…...

Apache Paimon 使用之 Lookup Joins 解析
Lookup Join 是流式查询中的一种 Join,Join 要求一个表具有处理时间属性,另一个表由lookup source connector支持。 Paimon支持在主键表和附加表上进行Lookup Join。 a) 准备 创建一个Paimon表并实时更新它。 -- Create a paimon catalog CREATE CAT…...

GO语言-切片底层探索(下)
目录 切片的底层数据结构 扩容机制 总结: 练习验证代码 这是切片的底层探索下篇,上篇地址请见:GO语言-切片底层探索(上) 在上篇我们讲解了切片的两个重要实现或者说是两个特征 切片是引用类型,会进行…...

物理隔离条件下,如何安全高效地进行内外网文件导入导出?
内外网文件导入导出通常指的是在内部网络(内网)和外部网络(外网)之间传输文件的过程。这在企业环境中尤其常见,因为内部网络通常包含敏感数据,而外部网络(如互联网)则允许更广泛的访…...

代码随想录 贪心算法-难度题目-区间问题
目录 55.跳跃游戏 45.跳跃游戏|| 452.用最少数量的箭引爆气球 435.无重叠区间 763.划分字母区间 56.合并区间 55.跳跃游戏 55. 跳跃游戏 中等 给你一个非负整数数组 nums ,你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大…...

地理数据 vs. 3D数据
在表示我们周围的物理世界时,地理空间数据和 3D 建筑数据是两个最常见的选择。 他们在各个行业和项目中发挥着至关重要的作用。 从构建数字孪生到可视化城市景观和创建沉浸式应用程序。 尽管地理空间和 3D 建筑数据有相似之处,但它们不可互换。 虽然地…...

Redis删除
一、del命令 del命令是Redis提供的一个常规的删除键的命令。它的语法如下: DEL key [key …] 其中,key是要删除的键名。可以指定多个键名,删除多个键。如果指定的键不存在,则会被忽略。 del命令会直接删除指定的键以及与之相关联…...

力扣细节题:字符串中的最大奇数
奇数只要找到第一位是奇数的即可,不是找单个数字 //即从最低位开始,找到第一位为奇数的位 //然后之前的就是需要的数字char * largestOddNumber(char * num){int i strlen(num) - 1;while(i > 0){if((num[i] - 0) % 2 1)break;i--;}//先找到低位开…...

Unity PS5开发 天坑篇 之 申请开发者与硬件部署01
腾了好几天终于把PS5开发机调试部署成功, 希望能帮到国内的开发者, 主机游戏PlayStation/Nintendo Switch都是比较闭塞的,开发者账号是必须的。 开发环境有两个部分,一是DEV Kit 开发机, TEST Kit测试机两部分组成,二是Unity的支持库(安装后…...

十四届蓝桥杯省赛Java B组 合并区域
就是将两个矩阵进行拼接,两矩阵可以旋转90 180 270 度。 因为数据比较小,所以这基本上就是一个大的枚举模拟加搜索,直接暴力求解。 import java.io.*; import java.util.*;public class Main{static int n;static int N 101;static int mo…...