[MySQL-基础]SQL语句
目录
hello! 这里是欧_aita的频道。
今日语录: 只有放弃才是真正的失败。
祝福语:愿你的代码生活充满注释,逻辑清晰,debug之路畅通无阻。
大家可以在评论区畅所欲言,可以指出我的错误,在交流中共同进步。
欢迎关注我的专栏
数据结构与算法
C++
MySQL数据库
SQL
SQL
SQL的特点:
SQL通用语法
SQL分类
DDL
DDL-数据库操作
DDL-表操作
查询
创建
数据类型
DML
1.添加数据(INSERT)
2.修改数据(UPDATE)
3.删除数据(DELETE)
DQL
DQL-基本操作
查询多个字段
设置别名
去除重复记录
DQL-语法
条件查询
(1)条件符号
(3)聚合函数
( 4)常见聚合函数
2.分组查询
(1)语法
(2)Where和having的区别
(3)注意事项
3.排序查询
(1)语法
(2)排序方式
4.分页查询
执行顺序
DCL
1.DCL-管理用户
(1)查询用户
(2)删除用户
(3)修改用户密码
(4)创建用户
2.DCL-权限控制
(1)常用权限
(2)查询权限
(3)授予权限
(4) 撤销权限
SQL
定义:SQL(Structured Query Language,结构化查询语言)是一种用于管理和操作关系型数据库的标准化语言。它提供了一种简单而强大的方式,使用户能够定义、操作和控制数据库中的数据。
SQL
SQL的特点:
-
关系型数据库: SQL主要用于关系型数据库管理系统(RDBMS)。关系型数据库是一种以表格形式组织数据的数据库,其中数据通过表格之间的关系进行连接。
-
数据操作: SQL允许用户执行各种数据操作,包括插入(INSERT)、查询(SELECT)、更新(UPDATE)和删除(DELETE)等操作。这些操作使用户能够有效地管理数据库中的数据。
-
数据定义: SQL不仅可以用于操作数据,还可以用于定义数据库结构。这包括创建表(CREATE TABLE)、定义索引(CREATE INDEX)和定义约束(如主键、外键等)等。
-
数据控制: SQL还提供了对数据访问的控制,通过GRANT和REVOKE等命令可以授予或撤销用户对数据库对象的权限。
-
事务控制: SQL支持事务,通过BEGIN TRANSACTION、COMMIT和ROLLBACK等语句,可以确保在数据库操作中的一系列语句要么全部执行成功,要么全部失败。
SQL通用语法
- SQL语句单行或多行书写,以分号结尾。
- SQL语句可以使用空格/缩进来增强语句的可读性。
- MySQL数据库的SQL语句不区分大小写,关键字推荐使用大写。
- 注释:
(1)单行注释:--注释内容 或 #注释内容(MySQL特有)。
(2)多行注释:/*注释内容*/
SQL分类
- DDL 数据定义语言,用来定义数据库对象(数据库,表,字段)。
- DML 数据操作语言,用来对数据库表中的数据进行增删改查。
- DQL 数据查询语言,用来查询数据库中表的记录。
- DCL 数据控制语言,用来创建数据库用户。
DDL
定义:DDL(Data Definition Language,数据定义语言)是用于定义和管理数据库结构的SQL语言部分,包括创建、修改和删除表、索引等数据库对象。
DDL-数据库操作
- 查询
- 查询所有数据库:SHOW DATABASES;
- 查询当前数据库:SELECT DATABASE();

- 创建
- CREATE DATABASE[IF NOT EXISTS] 数据库名 [DEFAULT CHARSET 字符集][COLLATE 排序规则];
-

- 删除
- DROP DATABASE[IF EXISTS]数据库名;

- 使用
- USE 数据库名;

DDL-表操作
查询
- 查询当前数据库所有表:SHOW TABLES;
- 查询表结构:DESC表名。
- 查询指定表的建表语句:SHOW CREATE TABLE表名;
创建
CREATE TABLE 表名(
字段1 字段1类型[COMMENT 字段1注释],
字段2 字段2类型[COMMENT 字段2注释],
字段3 字段3类型[COMMENT 字段3注释],
……
字段n 字段n类型[COMMENT 字段n注释]
)[COMMENT 表注释];
创建一个员工表

数据类型
MySQL中的数据类型有很多,主要分三类:数值类型、字符串类型、日期时间类型
修改
- ( 添加 ) ALTER TABLE表名ADD 字段名 类型(长度)[COMMENT 注释][约束];
- ( 修改 )ALTER TABLE 表名 CHANGE 旧字段名 新字段名 类型(长度)[COMMENT 注释][约束];
- ( 删除 ) ALTER TABLE 表名 DROP 字段名;
- ( 删除并且重新创建个表 ) TRUNCATE TABLE 表名;
- ( 重命名 ) ALTER TABLE 表名 RENAME 新表名;
DML
定义:DML(Data Manipulation Language,数据操作语言)是SQL的一部分,用于执行数据库中的数据操作,包括插入、更新、删除和查询等操作。
1.添加数据(INSERT)
--给指定字段添加数据
(1)INSERT INTO表名(字段1,字段2,…)VALUES(值1,值2,…);
--给全部字段添加数据
(2)INSERT INTO表名VALUES(值1,值2,…);
--批量添加数据
(3)INSERT INTO表名(字段1,字段2,…)VALUES(值1,值2,…),(值1,值2,…);
添加员工信息

(4)INSERT INTO表名VALUES(值1,值2,…),(值1,值2,…),(值1,值2,…);
2.修改数据(UPDATE)
UPDATA 表名 SET 字段名1=值1,字段名2=值2,…[WHERE 条件];
3.删除数据(DELETE)
DELETE FROM 表名[WHERE 条件];

DQL
定义:DQL(Data Query Language,数据查询语言)是SQL的一部分,专注于执行数据库中的查询操作,主要包括SELECT语句用于检索数据。
DQL-基本操作
-
查询多个字段
- SELECT 字段1,字段2,字段3…FORM 表名;
- SELECT * FROM 表名;--返回所有字段
-
设置别名
- SELECT 字段1[AS 别名1],字段2[AS 别名2]…FROM 表名;
-
去除重复记录
- SELECT DISTINCT 字段列表 FROM 表名;
这是取别名的操作

这是去除重复记录的操作

DQL-语法
-
条件查询
1. SELECT字段列表FROM表名WHERE条件列表;
实际应用

(1)条件符号

(3)聚合函数
-
介绍:将一列数据作为整体,进行纵向计算。
( 4)常见聚合函数

注意: 所有null值不计入聚合函数计算
查询名字为两个字的员工(使用like __下划线占位符)

2.分组查询
(1)语法
- SELECT字段列表FROM表名[WHERE条件]GROUP BY分组字段名[HAVING分组后过滤条件];
(2)Where和having的区别
- 判断时机不同:where是分组之前进行过滤,不满足where条件,不参与分组;而having是分组之后对结果进行过滤。
- 判断条件不同:where不能对聚合函数进行判断,而having可以。


(3)注意事项
- 执行顺序:where>聚合函数>having。
- 分组之后,查询的字段一般为聚合函数和分组字段,查询其他字段无任何意义。
3.排序查询
(1)语法
- SELECT 字段列表 FROM 表名 ORDER BY字段1 排序方式1,字段2 排序方式2;
(2)排序方式
- ASC:升序(默认值)
- DESC:降序

注意:如果是多字段排序,当第一个字段值相同时,才会根据第二个字段进行排序。
4.分页查询
SELECT字段列表FROM表名LIMIT起始索引,查询记录数;
注意:
- 起始索引从0开始,起始索引=(查询页码-1)*每页显示记录数。
- 分页查询是数据库的方言,不同数据库有不同的实现,MySQL中是LIMIT。
- 如果查询的是第一页数据,起始索引可以忽略,直接简写为limit 10。
查询开始的6个员工信息,1页


执行顺序
- From 表名列表
- Where 条件列表
- Group by 分组字段列表
- Select 字段列表
- Order by 排序字段列表
- Limit 分页参数
- Having 分组后条件列表
DCL
定义:DCL(Data Control Language,数据控制语言)是SQL的一部分,用于管理数据库访问权限,包括授予(GRANT)和撤销(REVOKE)用户对数据库对象的权限。
1.DCL-管理用户
(1)查询用户
- USE mysql;
- SELECT * FROM user;

可以看见对应的数据表呈现出来了
(2)删除用户
- DROP USER ‘用户名’@’主机名’;

(3)修改用户密码
- ALTER USER ‘用户名’@’主机名’ IDENTIFIED WITH mysql_native_password BY‘新密码‘;

通过终端重新进入看密码是否改为123

成功登录,说明密码成功修改!
(4)创建用户
- CREATE USER ‘用户名’@‘主机名’ IDENTIFIED BY ‘密码’;

- USE mysql;

- SELECT * FROM user;
注意:
- 主机名可以使用%通配。
- 这类SQL开发人员操作的比较少,主要是DBA(数据库管理人员)使用。
2.DCL-权限控制
(1)常用权限

(2)查询权限
- SHOW GRANTS FOR ‘用户名’@’主机名’;

可以看见itcast用户的权限

(3)授予权限
- GRANT 权限列表 ON 数据库名.表名 TO ‘用户名’@’主机名’;

(4) 撤销权限
- REVOKE 权限列表 ON 数据库名.表名 FROM ‘用户名’@’主机名’;

注意:
多个权限之间,使用逗号分隔。
授权时,数据库名和表名都可以使用*进行统配,代表所有。
相关文章:
[MySQL-基础]SQL语句
目录 hello! 这里是欧_aita的频道。 今日语录: 只有放弃才是真正的失败。 祝福语:愿你的代码生活充满注释,逻辑清晰,debug之路畅通无阻。 大家可以在评论区畅所欲言,可以指出我的错误,在交流中共同进步。 欢迎关注我的…...
CentOS 7实现类似于Kali Linux中的自动补全功能
在CentOS 7中,可以通过安装和使用Bash-completion来实现自动补全功能,类似于Kali Linux中的自动补全。以下是安装和使用Bash-completion的步骤: 首先,确保您的系统已更新并安装了EPEL存储库。(非必要,直接…...
skywalking中gateway的拓扑图没有出现
背景: 刚开始的时候gateway没有出现,后来百度说添加插件的jar包, apm-spring-cloud-gateway-2.1.x-plugin-8.15.0.jar apm-spring-webflux-5.x-plugin-8.15.0.jar 然后解决了gateway节点出来了, 但是:拓扑图却是User指…...
【前端学java】java中的日期操作(12)
往期回顾: 【前端学java】JAVA开发的依赖安装与环境配置 (0)【前端学 java】java的基础语法(1)【前端学java】JAVA中的packge与import(2)【前端学java】面向对象编程基础-类的使用 (…...
用eclipse搭建简单的JavaWeb环境
在 Eclipse 中搭建 JavaWeb 项目的环境涉及到配置服务器、创建项目、添加库等步骤。以下是基于 Eclipse 的 JavaWeb 项目搭建的简要步骤: 步骤: 1. 安装 Eclipse IDE for Java EE Developers 确保你已经安装了 Eclipse IDE for Java EE Developers 版…...
【精选】改进的YOLOv5:红外遥感图像微型目标的高效识别系统
1.研究背景与意义 随着科技的不断发展,红外遥感技术在军事、安防、环境监测等领域中得到了广泛应用。红外遥感图像具有独特的优势,可以在夜间或恶劣天气条件下获取目标信息,因此在小目标检测方面具有重要的应用价值。然而,由于红…...
HarmonyOS ArkTS语言,运行Hello World(一)
一、下载与安装DevEco Studio 在HarmonyOS应用开发学习之前,需要进行一些准备工作,首先需要完成开发工具DevEco Studio的下载与安装以及环境配置。 进入DevEco Studio下载官网,单击“立即下载”进入下载页面。 DevEco Studio提供了Windows…...
IDEA中注释快捷键及模板
单行注释 将光标放置于要注释所在行,使用 Ctrl /, 添加行注释,再次使用,去掉行注释 若需要将多行进行单行注释,只需要选中要注释的多行,然后使用 Ctrl /, 添加行注释,再次使用&a…...
centos7系统下postgresql15离线安装,卸载
1. 创建postgres用户 #[rootVMTest postgresql16]# useradd -g postgres postgres [rootVMTest postgresql16]# useradd postgres 插曲:在线YUM安装 在线安装参考: PostgreSQL: Linux downloads (Red Hat family) 2. 下载并安装离线rpm包 2.1 从postgresql官网下…...
C#线程 ConcurrentQueue安全队列介绍
https://blog.csdn.net/qq_41230604/article/details/126305068 C#线程安全队列ConcurrentQueue ConcurrentQueue队列是一个高效的线程安全的队列,是Net Framework 4.0,System.Collections.Concurrent命名空间下的一个数据结构。 ConcurrentQueue内部结…...
CURL踩坑记录
因为项目使用的windows server,且没有安装Postman,所以对于在本地的Postman上执行的请求,要拷贝到服务器执行,只能先转化成为curl命令,操作也很简单,如下: 注意,Postman默认对url包围…...
Python 自动化(十八)admin后台管理
admin后台管理 什么是admin后台管理 django提供了比较完善的后台数据库的接口,可供开发过程中调用和测试使用 django会搜集所有已注册的模型类,为这些模型类提供数据管理界面,供开发使用 admin配置步骤 创建后台管理账号 该账号为管理后…...
Navicat 技术指引 | 适用于 GaussDB 的自动运行功能
Navicat Premium(16.2.8 Windows版或以上) 已支持对 GaussDB 主备版的管理和开发功能。它不仅具备轻松、便捷的可视化数据查看和编辑功能,还提供强大的高阶功能(如模型、结构同步、协同合作、数据迁移等),这…...
MySQL 的执行原理(四)
5.5. MySQL 的查询重写规则 对于一些执行起来十分耗费性能的语句,MySQL 还是依据一些规则,竭尽全力的把这个很糟糕的语句转换成某种可以比较高效执行的形式,这个过程也可以 被称作查询重写。 5.5.1. 条件化简 我们编写的查询语句的搜索条件…...
PHP 正则式 全能匹配URL(UBB)
PHP 正则式 全能匹配URL(UBB) 语言:PHP 注明:正则式 无语言限制(js、PHP、JSP、ASP、VB、.net、C#...)一切皆可。 简介:PHP UBB 正则式 全能匹配URL 自动加超级链接。网上找了很多都不匹配或…...
hadoop shell操作 hdfs处理文件命令 hdfs上传命令 hadoop fs -put命令hadoop fs相关命令 hadoop(十三)
hadoop fs -help rm 查看rm命令作用 hadoop fs 查看命令 1. 创建文件夹: # hdfs前缀也是可以的。更推荐hadoop hadoop fs -mkdir /sanguo 2.上传至hdfs命令: 作用: 从本地上传hdfs系统 (本地文件被剪切走,不存在了&…...
redis-cluster集群
1.redis-cluster集群 redis3.0引入的分布式存储方案 集群由多个node节点组成,redis数据分布在这些节点之中。 在集群之中分为主节点和从节点 集群模式当中,主从一一对应,数据写入和读取与主从模式一样,主负责写,从…...
Hfish安全蜜罐部署
一、Hfish蜜罐介绍 HFish蜜罐官网 HFish是一款社区型免费蜜罐,侧重企业安全场景,从内网失陷检测、外网威胁感知、威胁情报生产三个场景出发,为用户提供可独立操作且实用的功能,通过安全、敏捷、可靠的中低交互蜜罐增加用户在失陷…...
Apache POI(Java)
一、Apache POI介绍 Apache POI是Apache组织提供的开源的工具包(jar包)。大多数中小规模的应用程序开发主要依赖于Apache POI(HSSF XSSF)。它支持Excel 库的所有基本功能; 文本的导入和导出是它的主要特点。 我们可以使用 POI 在…...
P8599 [蓝桥杯 2013 省 B] 带分数(dfs+全排列+断点判断)
思路:1.深度枚举所有排列情况 2.设置为每个排列设置两个断点,分为三部分:a,b,c 3.转换为乘法判断条件,满足加一 代码如下:(可用next_permutation全排列函数代替dfs) #include<iostream>…...
基于FPGA的PID算法学习———实现PID比例控制算法
基于FPGA的PID算法学习 前言一、PID算法分析二、PID仿真分析1. PID代码2.PI代码3.P代码4.顶层5.测试文件6.仿真波形 总结 前言 学习内容:参考网站: PID算法控制 PID即:Proportional(比例)、Integral(积分&…...
深入浅出:JavaScript 中的 `window.crypto.getRandomValues()` 方法
深入浅出:JavaScript 中的 window.crypto.getRandomValues() 方法 在现代 Web 开发中,随机数的生成看似简单,却隐藏着许多玄机。无论是生成密码、加密密钥,还是创建安全令牌,随机数的质量直接关系到系统的安全性。Jav…...
数据库分批入库
今天在工作中,遇到一个问题,就是分批查询的时候,由于批次过大导致出现了一些问题,一下是问题描述和解决方案: 示例: // 假设已有数据列表 dataList 和 PreparedStatement pstmt int batchSize 1000; // …...
A2A JS SDK 完整教程:快速入门指南
目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库ÿ…...
python爬虫——气象数据爬取
一、导入库与全局配置 python 运行 import json import datetime import time import requests from sqlalchemy import create_engine import csv import pandas as pd作用: 引入数据解析、网络请求、时间处理、数据库操作等所需库。requests:发送 …...
go 里面的指针
指针 在 Go 中,指针(pointer)是一个变量的内存地址,就像 C 语言那样: a : 10 p : &a // p 是一个指向 a 的指针 fmt.Println(*p) // 输出 10,通过指针解引用• &a 表示获取变量 a 的地址 p 表示…...
【WebSocket】SpringBoot项目中使用WebSocket
1. 导入坐标 如果springboot父工程没有加入websocket的起步依赖,添加它的坐标的时候需要带上版本号。 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-websocket</artifactId> </dep…...
鸿蒙HarmonyOS 5军旗小游戏实现指南
1. 项目概述 本军旗小游戏基于鸿蒙HarmonyOS 5开发,采用DevEco Studio实现,包含完整的游戏逻辑和UI界面。 2. 项目结构 /src/main/java/com/example/militarychess/├── MainAbilitySlice.java // 主界面├── GameView.java // 游戏核…...
工厂方法模式和抽象工厂方法模式的battle
1.案例直接上手 在这个案例里面,我们会实现这个普通的工厂方法,并且对比这个普通工厂方法和我们直接创建对象的差别在哪里,为什么需要一个工厂: 下面的这个是我们的这个案例里面涉及到的接口和对应的实现类: 两个发…...
Linux入门课的思维导图
耗时两周,终于把慕课网上的Linux的基础入门课实操、总结完了! 第一次以Blog的形式做学习记录,过程很有意思,但也很耗时。 课程时长5h,涉及到很多专有名词,要去逐个查找,以前接触过的概念因为时…...
