[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 ‘用户名’@’主机名’;

注意:

      多个权限之间,使用逗号分隔。

      授权时,数据库名和表名都可以使用*进行统配,代表所有。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/205530.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【刷题】DFS

DFS 递归: 1.判断是否失败终止 2.判断是否成功终止,如果成功的,记录一个成果 3.遍历各种选择,在这部分可以进行剪枝 4.在每种情况下进行DFS,并进行回退。 199. 二叉树的右视图 给定一个二叉树的 根节点 root&#x…

Linux 常用基本命令

文章目录 7.1 帮助命令7.1.1 man 获得帮助信息7.1.2 help 获得shell内置命令的帮助信息7.1.3 常用快捷键 7.2 文件目录类7.2.1 pwd 显示当前工作目录的绝对路径7.2.2 ls 列出目录的内容7.2.3 cd 切换目录7.2.4 mkdir 创建一个新的目录7.2.5 rmdir 删除一个空的目录7.2.6 touch …

2023 最新 PDF.js 在 Vue3 中的使用

因为自己写业务要定制各种 pdf 预览情况(可能),所以采用了 pdf.js 而不是各种第三方封装库,主要还是为了更好的自由度。 一、PDF.js 介绍 官方地址 中文文档 PDF.js 是一个使用 HTML5 构建的便携式文档格式查看器。 pdf.js 是社区…

短 URL 生成器设计:百亿短 URL 怎样做到无冲突?

Java全能学习面试指南:https://javaxiaobear.cn 我们先来看看,当高并发遇到海量数据处理时的架构。在社交媒体上,人们经常需要分享一些 URL,但是有些 URL 可能会很长,比如: https://time.geekbang.org/hyb…

分割掩模 VS 掩膜

掩膜 Mask分割掩模 Segmentation Mask总结示例 掩膜 Mask “掩膜” 是指一种用于 标识或遮蔽图像中特定区域 的 图像。 在图像处理中,掩膜通常是一个 二值图像,其中的 像素值为 0 或 1。binary Mask 叫做二元掩膜,如下图所示: 这…

bugku 渗透测试

场景1 查看源代码 场景2 用dirsearch扫描一下看看 ok看到登录的照应了第一个提示 进去看看 不出所料 随便试试admin/admin进去了 在基本设置里面看到falg 场景3 确实是没啥想法了 找到php在线运行 检查网络,我们发现这个php在线运行会写入文件 那我们是不是写…

智能优化算法应用:基于回溯搜索算法无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于回溯搜索算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于回溯搜索算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.回溯搜索算法4.实验参数设定5.算法结果6.参考…

Vue19 列表过滤

直接上代码 以下代码使用了两种实现方式&#xff0c;监视属性和计算属性 当能用计算属性实现时&#xff0c;推荐使用计算属性 <!DOCTYPE html> <html><head><meta charset"UTF-8" /><title>列表过滤</title><script type&q…

三十、elasticsearch集群

目录 一、集群的概念 1、节点 2、索引 3、分片和副本 二、集群的架构 三、集群的部署方式 1、单主节点 2、多主节点 3、安全集群 四、搭建ES集群 1、elasticsearch中集群节点有不同的职责划分 2、elasticsearch中的每个节点角色都有自己不同的职责&#xff0c;因此…

git stash save untracked not staged

git stash save untracked not staged 如图 解决方案&#xff1a; git stash save "tag标记信息" --include-untracked或者&#xff1a; git stash save -u "tag标记信息" git stash clear清空本地暂存代码_zhangphil的博客-CSDN博客文章浏览阅读486次。…

如何用CHAT写“科技探索者”视频号运营方案

问CHAT&#xff1a;生成一篇“科技探索者”视频号运营方案&#xff0c;要求内容&#xff1a; &#xff08;1&#xff09;视频号的定位、面向的人群、主要发布哪方面的内容 &#xff08;2&#xff09;视频号的内容设计&#xff08;用什么样的方式来体现、最好有内容创意&#xf…

YOLOv8改进 | 2023 | DWRSeg扩张式残差助力小目标检测 (附修改后的C2f+Bottleneck)

论文地址&#xff1a;官方论文地址 代码地址&#xff1a;该代码目前还未开源&#xff0c;我根据论文内容进行了复现内容在文章末尾。 一、本文介绍 本文内容给大家带来的DWRSeg中的DWR模块来改进YOLOv8中的C2f和Bottleneck模块&#xff0c;主要针对的是小目标检测&#xff0c…

基于社区电商的Redis缓存架构-缓存数据库双写、高并发场景下优化

基于社区电商的Redis缓存架构 首先来讲一下 Feed 流的含义&#xff1a; Feed 流指的是当我们进入 APP 之后&#xff0c;APP 要做一个 Feed 行为&#xff0c;即主动的在 APP 内提供各种各样的内容给我们 在电商 APP 首页&#xff0c;不停在首页向下拉&#xff0c;那么每次拉的…

在虚拟机搭建nignx,和使用本地访问nginx的情况

下载nginx yum install nginx 查看nginx是否安装成功。 nginx -v nginx的配置文件的目录和资源的目录。 先到nginx.conf的目录下&#xff0c;在 /etc/nginx/nginx.conf&#xff0c;编辑它。 vi /etc/nginx/nginx.conf 可以看到默认的html的目录。在 /usr/share/nginx/html 下面…

牛客网刷题笔记四 链表节点k个一组翻转

NC50 链表中的节点每k个一组翻转 题目&#xff1a; 思路&#xff1a; 这种题目比较习惯现在草稿本涂涂画画链表处理过程。整体思路是赋值新的链表&#xff0c;用游离指针遍历原始链表进行翻转操作&#xff0c;当游离个数等于k时&#xff0c;就将翻转后的链表接到新的链表后&am…

mybatis参数输入 #{}和${}

1、建库建表 CREATE DATABASE mybatis-example;USE mybatis-example;CREATE TABLE t_emp(emp_id INT AUTO_INCREMENT,emp_name CHAR(100),emp_salary DOUBLE(10,5),PRIMARY KEY(emp_id) );INSERT INTO t_emp(emp_name,emp_salary) VALUES("tom",200.33); INSERT INTO…

Linux使用宝塔面板+Discuz+cpolar内网穿透工具搭建可公网访问论坛

Linux宝塔面板搭建Discuz论坛&#xff0c; 并内网穿透实现公网访问 文章目录 Linux宝塔面板搭建Discuz论坛&#xff0c; 并内网穿透实现公网访问前言1.安装基础环境2.一键部署Discuz3.安装cpolar工具4.配置域名访问Discuz5.固定域名公网地址6.配置Discuz论坛 前言 Crossday Di…

智慧城市内涝积水监测仪功能,提升城市预防功能

内涝积水监测仪不仅改变了人们应对城市内涝的老办法&#xff0c;还让智慧城市往前迈了一大步。这个监测仪是怎么做到的呢&#xff1f;就是靠它精准的数据监测和预警&#xff0c;让城市管理有了更科学高效的解决妙招。它就像有了个聪明又负责任的助手&#xff0c;让城市管理更加…

SAP 调取http的x-www-form-urlencoded形式的接口

一、了解下x-www-form-urlencoded形式对于SAP来说有啥区别 简单来说&#xff0c; 1.raw格式就是标准的json格式&#xff1a;{“Name”:“John Smith”&#xff0c;“Age”: 23} 2.x-www格式是要转化一下的&#xff1a;NameJohnSmith&Age23 字段与字段相互连接要用 & 符…

记录一次YAMLException异常

记录一次YAMLException异常 ✅作者简介&#xff1a;大家好&#xff0c;我是Leo&#xff0c;热爱Java后端开发者&#xff0c;一个想要与大家共同进步的男人&#x1f609;&#x1f609; &#x1f34e;个人主页&#xff1a;Leo的博客 &#x1f49e;当前专栏&#xff1a; 报错以及B…