MYSQL数据库-SQL语句
数据库相关概念
| 名称 | 全称 | 简称 |
|---|---|---|
| 数据库 | 存储数据的仓库,数据是有组织的进行存储 | DataBase(DB) |
| 数据库管理系统 | 操纵和管理数据库的大型软件 | DataBase Management System(DBMS) |
| SQL | 操作关系型数据库的编程语言,定义了一套操作关系型数据库统一标准 | Structured Query Language(SQL) |
数据模型
关系型数据库(RDBMS)
概念
建立在关系模型基础上,由多张相互连接的二维表(见下图)组成的数据库。

特点
- 使用表存储数据,格式统一,便于维护
- 使用SQL语言操作,标准统一,使用方便
SQL通用语法
- SQL语句可以单行或者多行书写,以分号结尾
- SQL语句可以使用空格/缩进来增强语句的可读性
- Mysql数据库的SQL语句不区分大小写,关键字使用大写
- 注释:单行注释:–或者# 多行注释:/* 注释内容*/
SQL分类
| 分类 | 全称 | 说明 |
|---|---|---|
| DDL | Data Definition Language | 数据定义语言,用来定义数据库对象(数据库,表,字段) |
| DML | Data Manipulation Language | 数据操作语言,用来对数据库表中的数据进行增删改 |
| DQL | Data Query Language | 数据查询语言,用来查询数据库中表的记录 |
| DCL | Data Control Lanquage | 数据控制语言,用来创建数据库用户、控制数据库的访问权限 |
DDL-数据库操作
查询
查询所有数据库
SHOW DATABASES;
查询当前数据库
SELECT DATABASE();
当不知道自己在操作哪个数据库时,可以执行该指令。
创建
CREATE DATABASE [IF NOT EXISTS] 数据库名 [DEFAULT CHARSET 字符集] [COLLATE 排序规则];
[IF NOT EXISTS] 判断是否存在,不存在创建
[DEFAULT CHARSET] 设置字符集
删除
DROP DATABASE [IF EXISTS] 数据库名;
使用
USE 数据库名;
DDL-表操作-查询
查询当前数据库所有的表
SHOW TABLES;
查询表结构
DESC 表名;
查询指定表的建表语句(创建表的SQL语句)
SHOW CREATE TABLE 表名;
DDL-表操作-创建
CREATE TABLE 表名(
字段1 字段1类型[COMMENT 字段1注释],
字段2 字段2类型[COMMENT 字段2注释 ],
字段3 字段3类型[COMMENT 字段3注释],
...
字段n 字段n类型[COMMENT 字段n注释 ]
)[COMMENT 表注释];
DDL-表操作-数据类型



DDL-表操作-修改
添加字段
ALTER TABLE 表名 ADD 字段名 类型(长度) [COMMENT 注释] [约束];
修改数据类型
ALETR TABLE 表名 MODIFY 字段名 新数据类型(长度);
修改字段名和字段类型
ALTER TABLE 表名 CHANGE 旧字段名 新字段名 类型(长度) [COMMENT 注释] [约束];
删除字段
ALTER TABLE 表名 DROP 字段名;
修改表名
ALTER TABLE 表名 RENAME TO 新表名;
DDL-表操作-删除
在删除表的时候,表中的数据也会被删除。
删除表
DROP TABLE [IF EXISTS] 表名;
删除指定表,并重新创建该表
TRUNCATE TABLE 表名;
DML-添加数据
DML英文全称是Data Manipulation Language(数据操作语言),用来对数据库中表的数据记录进行增删改操作。
给指定字段添加数据
INSERT INTO 表名 (字段1,字段2) VALUES(值1,值2);
给全部字段添加数据
INSERT INTO 表名 (值1,值2);
批量添加数据
INSERT INTO 表名 (字段1,字段2,...) VALUES(值1,值2,...),(值1,值2,...),...;
INSERT INTO VALUES(值1,值2,...),(值1,值2,...),...;
注意
- 插入数据时,指定的字段/顺序需要与值的顺序是一一对应的
- 字符串和日期数据应包含在引导中
- 插入的数据大小,应该在规定的范围内
DML-修改数据
UPDATE SET 字段名1=值1,字段名2=值2....[WHERE 条件];
[WHERE 条件] 可以有,可以无,无的话修改的是整张表的所有数据。
DML-删除数据
DELETE FROM 表名 [WHERE 条件];
DELETE语句的条件可以有,也可以没有,如果没有条件,则会删除整张表的所有数据。
DELETE语句不能删除某一个字段的值(可以使用UPDATE)
DQL
DQL英文全称是Data QueryLanguage(数据查询语言),数据查询语言,用来查询数据库中表的记录。
查询的关键字 SELECT
DQL语法
SELECT字段列表
FROM表名列表
WHERE条件列表
GROUP BY分组字段列表
HAVING分组后条件列表
ORDER BY排序字段列表
LIMIT分页参数
DQL-基础查询
查询多个字段
SELECT 字段1,字段2,字段3,... FROM 表名;
SELECT * FROM 表名;
设置别名
SELECT 字段1 [AS 别名1],字段2[AS 别名2],... FROM 表名;
去除重复记录
SELECT DISTINCT 字段列表 FROM 表名;
DQL-条件查询
语法
SELECT 字段列表 FROM 表名 WHERE 条件列表
条件
| 比较运算符 | 功能 |
|---|---|
| > | 大于 |
| < | 小于 |
| >= | 大于等于 |
| <= | 小于等于 |
| = | 等于 |
| <> 或!= | 不等于 |
| BETWEEN … AND … | 在某个范围之内(含最小、最大值) |
| IN(…) | 在in之后的列表中的值,多选一 |
| LIKE 占位符 | 模糊匹配(_匹配单个字符,%匹配任意个字符) |
| IS NULL | 是NULL |
| 逻辑运算符 | 功能 |
|---|---|
| AND 或 && | 并且(多个条件同时成立) |
| OR 或 | 或者(多个条件任意一个成立) |
| NOT 或! | 非,不是 |
DQL-聚合函数
将一列数据作为一个整体,进行纵向计算。
| 函数 | 功能 |
|---|---|
| count | 统计数量 |
| max | 最大值 |
| min | 最小值 |
| avg | 平均值 |
| sum | 求和 |
语法
SELECT 聚合函数 (字段列表) FROM 表名;
null 不参与所有的聚合运算
DQL-分组查询
语法
SELECT 字段列表 FROM 表名 [WHERE 条件] GROUP BY 分组字段名 [HAVING 分组后过滤条件];
where与having区别
执行时机不同:where是分组之前进行过滤,不满足where条件,不参与分组;而having是分组之后对结果进行过滤。
判断条件不同:where不能对聚合函数进行判断,而having可以。
注意:
- 执行顺序: where >聚合函数>having。
- 分组之后,查询的字段一般为聚合函数和分组字段,查询其他字段无任何意义
DQL-排序查询
语法
SELECT 字段列表 FROM 表名 ORDER BY 字段1 排序方式1,字段2 排序方式2;
排序方式
ASC:升序
DESC:降序
注意:如果是多字段排序,当第一个字段值相同时,才会根据第二个字段进行排序
DQL-分页查询
语法
SELECT 字段列表 FROM 表名 LIMIT 起始索引, 查询记录数
注意
- 起始索引从0开始,起始索引=(查询页码-1)*每页显示记录数
- 分页查询是数据库的方言,不同的数据库有不同的实现,MySQL中是LIMIT。
- 如果查询的是第一页数据,起始索引可以省略,直接简写为limit 10。
例子
2.查询第2页员工数据,每页展示10条记录从
SELECT * from emp limit 10,10;
DQL-执行顺序

DCL-用户管理
DCL英文全称是Data ControlLanguage(数据控制语言),用来管理数据库用户、控制数据库的访问 权限
- 查询用户
USE mysql;
SELECT * FROM user;
- 创建用户
CREATE USER '用户名' @ '主机名’ ID ENTIFIED BY '密码'
- 修改用户密码
ALTER USER '用户名' @ '主机名’ IDENTIFIED WTH mysql native password BY '新密码’
- 删除用户
DROP USER '用户名' @ '主机名’;
DCL-权限控制
MySOL中定义了很多种权限,但是常用的就以下几种:
| 权限 | 说明 |
|---|---|
| ALL, ALL PRIVILEGES | 所有权限 |
| SELECT | 查询数据 |
| INSERT | 插入数据 |
| UPDATE | 修改数据 |
| DELETE | 删除数据 |
| ALTER | 修改表 |
| DROP | 删除数据库/表/视图 |
| CREATE | 创建数据库/表 |
1.查询权限
SHOW GRANTS FOR'用户名'@'主机名
2.授予权限
GRANT 权限列表 ON 数据库名.表名 TO '用户名'@'主机名’
3.撤销权限
REVOKE 权限列表0心 数据库名.表名 FROM'用户名'@'主机名';
相关文章:
MYSQL数据库-SQL语句
数据库相关概念 名称全称简称数据库存储数据的仓库,数据是有组织的进行存储DataBase(DB)数据库管理系统操纵和管理数据库的大型软件DataBase Management System(DBMS)SQL操作关系型数据库的编程语言,定义了一套操作关系型数据库统一标准Structured Quer…...
MyBatis认识
一、定义 MyBatis是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java O…...
【WEEK11】 【DAY6】Employee Management System Part 7【English Version】
2024.5.11 Saturday Continued from 【WEEK11】 【DAY5】Employee Management System Part 6【English Version】 Contents 10.8. Delete and 404 Handling10.8.1. Modify list.html10.8.2. Modify EmployeeController.java10.8.3. Restart10.8.4. 404 Page Handling10.8.4.1. …...
【52】Camunda8-Zeebe核心引擎-Clustering与流程生命周期
Clustering集群 Zeebe本质是作为一个brokers集群运行,形成一个点对点网络。在这个网络中,所有brokers的功能与服务都相同,没有单点故障。 Gossip协议 Zeebe实现了gossip协议,并借此知悉哪些broker当前是集群的一部分。 集群使用…...
从零开始的软件测试学习之旅(八)jmeter线程组参数化及函数学习
jmeter线程组参数化及函数学习 Jmeter基础基本使用流程组件与元件 线程组线程的执行方式Jmeter组件执行顺序 常见属性设置查看结果数的作用域举例 Jmeter参数化实现方式1.用户定义参数2.用户参数3.函数4.csv数据文件设置 每日复习 Jmeter基础 基本使用流程 启动项目案例 启动…...
图文并茂:解析Spring Boot Controller返回图片的三种方式
欢迎来到我的博客,代码的世界里,每一行都是一个故事 图文并茂:解析Spring Boot Controller返回图片的三种方式 前言使用Base64编码返回图片使用byte数组返回图片使用Resource对象返回图片图片格式转换与性能对比 前言 在互联网的世界里&…...
问题处理记录 | 表输出报错 Packet for query is too large (5,214,153 > 4,194,304).
这个错误是由于MySQL服务器接收到的查询数据包太大而引起的。具体来说,错误消息中提到的数据包大小为5,214,153字节,而MySQL服务器默认只接受最大为4,194,304字节的数据包。 要解决这个问题,你可以尝试通过修改MySQL服务器的配置来增大max_a…...
数据结构_栈和队列(Stack Queue)
✨✨所属专栏:数据结构✨✨ ✨✨作者主页:嶔某✨✨ 栈: 代码:function/数据结构_栈/stack.c 钦某/c-language-learning - 码云 - 开源中国 (gitee.com)https://gitee.com/wang-qin928/c-language-learning/blob/master/function/…...
基于docker 的elasticsearch冷热分离及生命周期管理
文章目录 冷热集群架构的应用场景冷热集群架构的优势冷热集群架构实战搭建集群 索引生命周期管理认识索引生命周期索引生命周期管理的历史演变索引生命周期管理的基础知识Rollover:滚动索引 冷热集群架构的应用场景 某客户的线上业务场景如下:系统每天增…...
pikachu靶场(xss通关教程)
(注:若复制注入代码攻击无效,请手动输入注入语句,在英文输入法下) 反射型xss(get型) 1.打开网站 发现有个框,然后我们在框中输入一个“1”进行测试, 可以看到提交的数据在url处有显示…...
实验0.0 Visual Studio 2022安装指南
Visual Studio 2022 是一个功能强大的开发工具,对于计算机专业的学生来说,它不仅可以帮助你完成学业项目,还能为你将来的职业生涯打下坚实的基础。通过学习和使用 Visual Studio,你将能够更高效地开发软件,并在编程领域…...
数据结构之----线性表
线性表分为 顺序存储结构 和 链式存储结构 线性表的顺序存储结构: 线性表的顺序存储结构,指的是用一段地址连续的存储单元依次存储线性表的数据元素。 1,顺序表的结构: #define MAXSIZE 20 typedef int El…...
thinkphp5.1 模型auto
在ThinkPHP5.1中,模型的自动完成功能可以通过在模型类中定义auto属性来实现。这个属性是一个数组,包含了需要自动填充的字段和对应的处理规则。 以下是一个简单的例子,展示了如何在ThinkPHP5.1的模型中使用自动完成功能: <?…...
企业微信创建应用(一)
登录到企业微信后台管理(https://work.weixin.qq.com/)进入自建应用(应用管理-应用-创建应用) 3.查看参数AgentId和 Secret 4.企业微信查看效果...
Cosmo Bunny Girl
可爱的宇宙兔女郎的3D模型。用额外的骨骼装配到Humanoid上,Apple混合了形状。完全模块化,包括不带衣服的身体。 技术细节 内置,包括URP和HDRP PDF。还包括关于如何启用URP和HDRP的说明。 LOD 0:面:40076,tris 76694,verts 44783 装配了Humanoid。添加到Humanoid中的其他…...
初始化linux数据盘(3TB)分区-格式化-挂载目录
场景说明:某云给我们服务器加载了一块3TB的硬盘扩容(没有直接扩,原因是原来的盘做的是mbr(什么年代了,谁干的)的分区,最大识别2TB) 确认磁盘 输入命令lsblk 查看数据盘信息 &#…...
NFS网络文件系统的应用
1.配置2台服务器要求如下: a)服务器1: 主机名:user-server.timinglee.org ip地址: 172.25.254.100 [rootserver100 桌面]# hostnamectl hostname user-server.timinglee.org [rootserver100 桌面]# ifconfig eth0: fl…...
AttributeError: module ‘PIL.Image‘ has no attribute ‘ANTIALIAS‘
问题描述 修改图片大小的时候,代码报错:AttributeError: module PIL.Image has no attribute ANTIALIAS 解决方案 在pillow的10.0.0版本中,ANTIALIAS方法被删除了。 方法1:修改版本(不推荐) pip instal…...
进程的共享主存通信实验
进程的共享主存通信 【预备知识】 共享存储区为进程提供了直接通过主存进行通信的有效手段,不像消息缓冲机制那样需要系统提供缓冲,也不像pipe机制那样需要事先建立一个特殊文件,而是由通信双方直接访问某些共享虚拟储存空间。在Linux中&…...
深度缓冲技术在AI去衣中的神奇作用
引言: 随着人工智能技术的飞速发展,其在图形处理和视觉领域的应用日益增多。AI去衣技术便是其中一个颇具争议但又技术上引人入胜的话题。今天,我们将深入探讨一项关键技术——深度缓冲(Depth Buffering),它…...
【Perplexity AI高手速成指南】:20年AI工程师亲授7大核心技能与3个避坑红线
更多请点击: https://kaifayun.com 第一章:Perplexity AI平台核心架构与能力边界 Perplexity AI 并非传统意义上的开源模型托管平台,而是一个以“答案溯源”为设计哲学的智能问答引擎。其底层融合了多阶段检索增强生成(RAG&#…...
如何实现Galgame与漫画的实时多语言翻译?MisakaTranslator技术解析
如何实现Galgame与漫画的实时多语言翻译?MisakaTranslator技术解析 【免费下载链接】MisakaTranslator 御坂翻译器—Galgame/文字游戏/漫画多语种实时机翻工具 项目地址: https://gitcode.com/gh_mirrors/mi/MisakaTranslator 御坂翻译器(MisakaT…...
从Demo到实战:手把手教你用OpenMMLab的MMDetection训练自己的第一个目标检测模型(附数据集制作)
从零构建目标检测模型:OpenMMLab实战指南与数据集制作全流程 当你第一次成功运行OpenMMLab的Demo时,那种成就感可能很快会被新的困惑取代——如何让这套强大的工具识别你自己的数据?本文将带你跨越从"跑通示例"到"训练自定义模…...
STM32F407移植EasyFlash:嵌入式Flash键值存储与磨损均衡实战
1. 项目概述:为什么要在STM32F407上折腾EasyFlash?最近在做一个基于STM32F407的物联网终端设备,功能上需要记录一些运行参数、用户配置,还得在意外断电后能恢复现场。最开始想着用片内Flash模拟EEPROM,自己写读写擦除逻…...
电路分析基础(2)
受控源 基本概念 理想受控源模型...
3分钟掌握ncmdump:网易云音乐NCM文件终极解密方案
3分钟掌握ncmdump:网易云音乐NCM文件终极解密方案 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式音乐无法在其他播放器使用而烦恼吗?ncmdump这款免费开源工具正是你的完美解决…...
Windows热键冲突终结者:3步精准定位占用进程的智能方案
Windows热键冲突终结者:3步精准定位占用进程的智能方案 【免费下载链接】hotkey-detective A small program for investigating stolen key combinations under Windows 7 and later. 项目地址: https://gitcode.com/gh_mirrors/ho/hotkey-detective 你是否曾…...
基于红外传感器与CircuitPython的互动声光糖果碗制作指南
1. 项目概述:一个会“尖叫”的互动糖果碗又到了捣鼓点有趣玩意儿的时候了。作为一个喜欢在万圣节搞点小惊喜的创客,我总觉得光是发糖有点平淡。能不能让糖果碗自己“活”过来,在孩子们伸手时,用灯光和声音制造一点既有趣又不会太过…...
Lingtrain Aligner:如何让多语言文本对齐变得像拼图一样简单?
Lingtrain Aligner:如何让多语言文本对齐变得像拼图一样简单? 【免费下载链接】lingtrain-aligner Lingtrain Aligner — ML powered library for the accurate texts alignment. 项目地址: https://gitcode.com/gh_mirrors/li/lingtrain-aligner …...
LabVIEW虚拟仪表:数据流编程与测控应用的核心交互范式
1. 项目概述:为什么虚拟仪表是LabVIEW的灵魂如果你用过LabVIEW,或者哪怕只是看过它的界面,第一印象大概率是那些花花绿绿的旋钮、开关、仪表盘和波形图。很多人觉得这就是LabVIEW的“皮肤”,一个为了让程序看起来像真实仪器而做的…...
