当前位置: 首页 > news >正文

[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的特点:

  1. 关系型数据库: SQL主要用于关系型数据库管理系统(RDBMS)。关系型数据库是一种以表格形式组织数据的数据库,其中数据通过表格之间的关系进行连接。

  2. 数据操作: SQL允许用户执行各种数据操作,包括插入(INSERT)、查询(SELECT)、更新(UPDATE)和删除(DELETE)等操作。这些操作使用户能够有效地管理数据库中的数据。

  3. 数据定义: SQL不仅可以用于操作数据,还可以用于定义数据库结构。这包括创建表(CREATE TABLE)、定义索引(CREATE INDEX)和定义约束(如主键、外键等)等。

  4. 数据控制: SQL还提供了对数据访问的控制,通过GRANT和REVOKE等命令可以授予或撤销用户对数据库对象的权限。

  5. 事务控制: SQL支持事务,通过BEGIN TRANSACTION、COMMIT和ROLLBACK等语句,可以确保在数据库操作中的一系列语句要么全部执行成功,要么全部失败。

SQL通用语法

  1. SQL语句单行或多行书写,以分号结尾。
  2. SQL语句可以使用空格/缩进来增强语句的可读性。
  3. MySQL数据库的SQL语句不区分大小写,关键字推荐使用大写。
  4. 注释:

           (1)单行注释:--注释内容 或 #注释内容(MySQL特有)。

           (2)多行注释:/*注释内容*/

SQL分类

  1. DDL   数据定义语言,用来定义数据库对象(数据库,表,字段)。
  2. DML   数据操作语言,用来对数据库表中的数据进行增删改查。
  3. DQL   数据查询语言,用来查询数据库中表的记录。
  4. 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-表操作

       查询
  1. 查询当前数据库所有表:SHOW TABLES;
  2. 查询表结构:DESC表名。
  3. 查询指定表的建表语句: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-基本操作

  1. 查询多个字段
    1. SELECT 字段1,字段2,字段3…FORM 表名;
    2. SELECT * FROM 表名;--返回所有字段
  2. 设置别名
    1. SELECT 字段1[AS 别名1],字段2[AS 别名2]…FROM 表名;
  3. 去除重复记录
    1. SELECT DISTINCT 字段列表 FROM 表名;

这是取别名的操作 

 

 这是去除重复记录的操作

       DQL-语法

  1. 条件查询

              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页

执行顺序
  1. From 表名列表
  2. Where 条件列表
  3. Group by 分组字段列表
  4. Select 字段列表
  5. Order by 排序字段列表
  6. Limit 分页参数
  7. 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】面向对象编程基础-类的使用 &#xff08…...

用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+全排列+断点判断)

思路&#xff1a;1.深度枚举所有排列情况 2.设置为每个排列设置两个断点&#xff0c;分为三部分&#xff1a;a,b,c 3.转换为乘法判断条件&#xff0c;满足加一 代码如下&#xff1a;&#xff08;可用next_permutation全排列函数代替dfs&#xff09; #include<iostream>…...

OpenClaw从入门到应用——Agent:订阅认证(OAuth)

通过OpenClaw实现副业收入&#xff1a;《OpenClaw赚钱实录&#xff1a;从“养龙虾“到可持续变现的实践指南》 OpenClaw 通过 OAuth 支持"订阅认证"&#xff0c;适用于提供此功能的提供商&#xff08;特别是 OpenAI Codex (ChatGPT OAuth)&#xff09;。对于 Anthro…...

别再乱用MyBatisPlus的selectOne了!这3个坑我帮你踩过了(附正确用法)

MyBatisPlus查询方法避坑指南&#xff1a;从生产事故看selectOne的正确使用姿势 上周团队里刚发生一起线上事故——用户积分无故清零。排查后发现是某位同事在代码中误用了selectOne方法&#xff0c;导致本该返回唯一结果的查询匹配到多条数据&#xff0c;系统错误地取了第一条…...

如何用SQL快速获取上个月的对比数据_LAG函数应用

LAG函数无法直接获取上月数据&#xff0c;因其按行序而非自然月偏移&#xff1b;需先用generate_series或递归CTE补全连续月份&#xff0c;再对归一化月字段开窗计算。LAG 函数为什么拿不到上个月数据直接用 LAG 按行偏移&#xff0c;不等于按「自然月」偏移。它只看当前结果集…...

新手应该怎样选择第一把琴?尤克里里入门推荐攻略一次讲清

很多想尝试学习乐器的朋友都会把尤克里里当做入门之选&#xff0c;但在学琴前&#xff0c;大部份人都会被“如何选择第一把琴”难住。市面上太多五花八门的品牌和型号&#xff0c;各种尺寸、材质让人眼花缭乱&#xff0c;选贵了怕浪费&#xff0c;选便宜的怕踩雷。尤克里里入门…...

别乱升BIOS!给ThinkPad P53升级前,你必须知道的3件事和1个关键备份

ThinkPad P53 BIOS升级避坑指南&#xff1a;理性评估与终极备份方案 每次看到论坛里有人分享"升级BIOS后性能提升30%"的帖子&#xff0c;我的工程师本能就会拉响警报——这种缺乏风险评估的盲目操作&#xff0c;简直是在电子元件的刀尖上跳舞。上周又接到一位客户的P…...

OpenClaw的PDF处理Skill收费吗?

结论&#xff1a;OpenClaw 本身和绝大多数 PDF Skill 都是免费的&#xff0c;只有个别商业引擎有 “免费额度 超额付费” 的模式。一、框架本身&#xff08;永久免费&#xff09;OpenClaw 采用 MIT 开源协议&#xff0c;自托管版无订阅费、无隐藏收费。你只需要承担&#xff1…...

告别盲调!手把手教你用ETAS ISOLAR配置AUTOSAR XCP模块(附A2L文件生成避坑指南)

告别盲调&#xff01;手把手教你用ETAS ISOLAR配置AUTOSAR XCP模块&#xff08;附A2L文件生成避坑指南&#xff09; 在汽车电子控制单元&#xff08;ECU&#xff09;开发中&#xff0c;XCP协议作为测量与标定的黄金标准&#xff0c;其重要性不言而喻。但对于许多刚接触ETAS ISO…...

基于云模型-MABAC决策框架的冷链物流供应商选择研究附Matlab代码

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。&#x1f34e; 往期回顾关注个人主页&#xff1a;Matlab科研工作室&#x1f447; 关注我领取海量matlab电子书和…...

【光学】㪚斑成像和荧光成像双模态融合Matlab实现

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。&#x1f34e; 往期回顾关注个人主页&#xff1a;Matlab科研工作室&#x1f447; 关注我领取海量matlab电子书和…...

【GPR回归预测】双向长短期记忆神经网络结合高斯过程回归(BiLSTM-GPR)的多变量回归预测 (多输入单输出)【含Matlab源码 15399期】

💥💥💥💥💥💥💥💥💞💞💞💞💞💞💞💞💞Matlab武动乾坤博客之家💞💞💞💞💞💞💞💞💞💥💥💥💥💥💥💥💥 🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚤🚤🚤🚤🚤🚤🚤🚤🚤🚤🚤🚤🚤🚤�…...