[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.mzph.cn/news/162250.shtml

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

相关文章

基于51单片机的病床呼叫系统设计

**单片机设计介绍, 基于51单片机的病床呼叫系统设计 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于51单片机的病床呼叫系统是一种用于医疗机构的设备,旨在提供快速、可靠的病人呼叫和监控功能。以下是…

Centos7使用rpm安装mysql 5.7.43

Centos7使用rpm安装mysql 5.7.43 1、下载rpm包 wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.43-1.el7.x86_64.rpm-bundle.tar2、解压并安装 tar xf mysql-5.7.43-1.el7.x86_64.rpm-bundle.tar yum -y install mysql-*3、按需修改mysql配置 #注意&a…

Django框架环境的搭建(图文详解)

目录 day01 Web框架和Django基础 1.web框架底层 1.1 网络通信​编辑 1.2 常见软件架构 1.3 手撸web框架 2.web框架 2.1 wsgiref 2.2 werkzeug 2.3 各框架的区别 3.快速上手django框架 3.1 安装 3.2 命令行 3.3 Pycharm 4.虚拟环境 4.1 创建虚拟环境 - 命令行 4…

页面添加水印效果实现

页面效果&#xff1a; 源代码&#xff1a; <div id"water-wrapper"></div> <div><div>111111111111111111111111111111111111111111111111111111111111111111111111111111111111</div><div>1111111111111111111111111111111111…

电线电缆行业生产管理怎么数字化?

行业介绍 随着市场环境的变化和现代生产管理理念的不断更新&#xff0c;电缆的生产模式也在发生转变&#xff0c;批量小&#xff0c;规格多&#xff0c;交期短的新型制造需求逐年上升&#xff0c;所以企业车间管理的重要性越发凸显&#xff0c;作为企业良性运营的关键&#xf…

2023 年 亚太赛 APMCM (A题)国际大学生数学建模挑战赛 |数学建模完整代码+建模过程全解全析

当大家面临着复杂的数学建模问题时&#xff0c;你是否曾经感到茫然无措&#xff1f;作为2022年美国大学生数学建模比赛的O奖得主&#xff0c;我为大家提供了一套优秀的解题思路&#xff0c;让你轻松应对各种难题。 完整内容可以在文章末尾领取&#xff01; 问题1 图像处理&am…

硬核神作|2w字带你拿下Sentinal

目录 Sentinel概述 基本介绍 Sentinel 基本核心概念 Sentinel安装 简单安装启动 启动配置项 SpringCloud简单整合 实战架构 父工程pom文件 teacher-service服务 student-service服务 测试 整合Sentinel SpringCloud微服务保护方案解读 服务雪崩定义 问题的产生 …

AIGC重塑教育:AI大模型驱动的教育变革与实践

这次&#xff0c;狼真的来了。 AI正迅猛地改变着我们的生活。 根据高盛发布的一份报告&#xff0c;AI有可能取代3亿个全职工作岗位&#xff0c;影响全球18%的工作岗位。在欧美&#xff0c;或许四分之一的工作可以用AI完成。另一份Statista的报告预测&#xff0c;仅2023年&#…

【Linux】make/Makefile 进度条小程序

目录 一&#xff0c;认识 make/makefile 二&#xff0c;实例代码 1&#xff0c;依赖关系 2&#xff0c;原理 3&#xff0c;项目清理 4&#xff0c;测试讲解 三&#xff0c;Linux第一个小程序&#xff0d;进度条 game.h game.c test.c 程序详解 一&#xff0c;认识 m…

教你如何将Web项目部署到Linux中

文章目录 前言0. 什么是部署1. 调整代码达成一致2. 数据库建表3. 构建项目并打包4. 拷贝到 Tomcat 中5. 效果总结 前言 在我们完成了一个Web项目后, 我们该怎样将项目部署到 Linux 系统中呢? 本文就来简单讲解一下. 文章已部署本人的博客系统代码展开讲解. 关注收藏, 开始学…

NeurIPS 2023 | RGIB:对抗双边图噪声的鲁棒图学习

▐ 摘要 链接预测[1,2]是图学习的一种基础任务&#xff0c;用于判断图中的两个节点是否可能相连&#xff0c;被广泛应用于药物发现、知识图谱补全和在线问答等实际场景。尽管图神经网络&#xff08;Graph Neural Network&#xff0c;GNN&#xff09;在该问题的性能上取得了显著…

机器学习的概念和类型

1、人工智能、机器学习、深度学习之间的关系 人工智能&#xff08;AI&#xff09;是广泛的概念&#xff0c;指赋予计算机智能特性。机器学习&#xff08;ML&#xff09;是AI的一个分支&#xff0c;是指通过计算机学习和改进性能。深度学习&#xff08;DL&#xff09;是ML的一类…

搭个网页应用,让ChatGPT帮我写SQL

大家好&#xff0c;我是凌览。 开门见山&#xff0c;我搭了一个网页应用名字叫sql-translate。访问链接挂在我的个人博客(https://linglan01.cn/about)导航栏&#xff0c;也可以访问https://www.linglan01.cn/c/sql-translate/直达sql-translate。 它的主要功能有&#xff1a;…

第95步 深度学习图像目标检测:Faster R-CNN建模

基于WIN10的64位系统演示 一、写在前面 本期开始&#xff0c;我们学习深度学习图像目标检测系列。 深度学习图像目标检测是计算机视觉领域的一个重要子领域&#xff0c;它的核心目标是利用深度学习模型来识别并定位图像中的特定目标。这些目标可以是物体、人、动物或其他可识…

Docker Swarm总结(1/3)

目录 1、swarm 理论基础 1.1 简介 1.2 节点架构 1.3 服务架构 1.4 服务部署模式 2、swarm 集群搭建 2.1 需求 ​2.2 克隆主机 2.3 启动5个docker宿主机 2.4 查看 swarm 激活状态 2.5 关闭防火墙 2.6 swarm 初始化 2.7 添加 worker 节点 2.8 添加 manager 节点 3、…

Mybatis-Plus3.0默认主键策略导致自动生成19位长度主键id的坑

码字不易&#xff0c;如果对您有用&#xff0c;求各位看官点赞关注~ 原创/朱季谦 目前的Mybatis-Plus版本是3.0&#xff0c;至于最新版本是否已经没有这个问题&#xff0c;后续再考虑研究。 某天检查一位离职同事写的代码&#xff0c;发现其对应表虽然设置了AUTO_INCREMENT自…

7.1 Windows驱动开发:内核监控进程与线程回调

在前面的文章中LyShark一直在重复的实现对系统底层模块的枚举&#xff0c;今天我们将展开一个新的话题&#xff0c;内核监控&#xff0c;我们以监控进程线程创建为例&#xff0c;在Win10系统中监控进程与线程可以使用微软提供给我们的两个新函数来实现&#xff0c;此类函数的原…

office 365企业版安装教程

1.下载所需工具&#xff08;防火墙和防毒软件记得关闭&#xff09; 下载链接&#xff1a;所需文件 2.安装激活office 1.安装 office tool plus 2.已安装过office 先进行office的移除&#xff0c;再进行未安装office的步骤进行 3.未安装过office 1.设置部署 按照以下来进行安…

360:流氓or保家卫国的勇士?

你曾用过360吗&#xff0c;这个在国内名声不好的杀毒软件&#xff0c;却是令国外黑客闻风丧胆的存在。 首先&#xff0c;在电脑病毒刚兴起的年代&#xff0c;杀毒软件是要收费的&#xff0c;当时盛行的瑞星和金山就是采用的付费模式&#xff0c;而就在2006年&#xff0c;奇虎…

C/C++通过位操作实现2个uint32_t合并为uint64_t

#include <iostream> using namespace std;int main() {uint32_t a 10;uint32_t b 600;//先将uint32_t的a转为uint64_t&#xff0c;此时a前面32位都是0&#xff0c;然后左移32位&#xff0c;此时右32位为0&#xff0c;最后加上uint32_t类型的b&#xff0c;填充右32位的…