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

MySQL-基础篇-SQL

  • SQL通用语法

    • 1、SQL语句可以单行或多行书写,以分号结尾。
    • 2、SQL语句可以使用空格/缩进来增强语句的可读性。
    • 3、MySQL数据库的SQL语句不区分大小写,关键字建议使用大写。
    • 4、注释:
      • 单行注释:-- 注释内容 或 # 注释内容(MySQL特有)
      • 多行注释:/* 注释内容 */
  • SQL分类

  • DDL

    • DDL-数据库操作

      • 查询

        • 查询所有数据库:SHOW DATABASES;
        • 查询当前数据库:SELECT DATABASE();
      • 创建

        • CREATEDATABASE[IFNOTEXISTS]数据库名[DEFAULTCHARSET字符集][COLLATE排序规则];
      • 删除

        • DROPDATABASE[IFEXISTS]数据库名;
      • 使用:USE 数据库名;

    • DDL-表操作-查询

      • 查询当前数据库所有表

        • SHOWTABLES;
      • 查询表结构

        • DESC表名;
      • 查询指定表的建表语句

        • SHOWCREATETABLE表名;
    • DDL-表操作-创建

      • CREATETABLE表名(字段1字段1类型[COMMENT字段1注释],字段2字段2类型[COMMENT字段2注释],字段3字段3类型[COMMENT字段3注释],......,字段n 字段n类型[COMMENT字段n注释])COMMENT表注释];
        • 注意:[…]为可选参数,最后一个字段后面没有逗号。
    • DDL-表操作-数据类型

      • MySQL中的数据类型有很多,主要分为三类:数值类型、字符串类型、日期时间类型。
      • 数值类型
        • - 精度:整个数值的位数(例如123.45,其精度为5) - 标度:小数的位数(例如123.45,其标度为2)
      • 字符串类型
        • - 补充:char比varchar性能更好,但具体选择使用谁需看使用场景。
      • 日期时间类型
    • DDL-表操作-修改

      • 添加字段

        • ALTERTABLE表名ADD字段名类型(长度)[COMMENT注释][约束];
      • 修改数据类型

        • ALTERTABLE表名MODIFY字段名 新数据类型(长度);
      • 修改字段名和字段类型

        • ALTERTABLE表名 CHANGE 旧字段名 新字段名 类型(长度)[COMMENT注释][约束];
      • 删除字段

        • ALTERTABLE表名DROP字段名;
      • 修改表名

        • ALTERTABLE表名RENAMETO新表名;
    • DDL-表操作-删除

      • 删除表

        • DROPTABLE[IFEXISTS]表名;
      • 删除指定表,并重新创建该表

        • TRUNCATETABLE表名;
      • 注意:在删除表时,表中的全部数据也会被删除。

  • DML

    • DML英文全称是Data Manipulation Language(数据操作语言),用来对数据库中表的数据记录进行增删改操作。

      • 添加数据(INSERT)
      • 修改数据(UPDATE)
      • 删除数据(DELETE)
    • DML-添加数据

      • 给指定字段添加数据

        • INSERTINTO表名(字段名1,字段名2,...)VALUES(1,2,...);
      • 给全部字段添加数据

        • INSERTINTO表名VALUES(1,2,...);
      • 批量添加数据

        • INSERTINTO表名(字段名1,字段名2,...)VALUES(1,2,...),(1,2,...),(1,2,...);
        • INSERTINTO表名VALUES(1,2,...),(1,2,...),(1,2,...);
      • 注意

        • 插入数据时,指定的字段顺序需要与值的顺序是一一对应的。
        • 字符串和日期型数据应该包含在引号中。
        • 插入的数据大小,应该在字段的规定范围内。
    • DML-修改数据

      • UPDATE表名SET字段名1=1,字段名2=2,......[WHERE条件];
        • 注意:修改语句的条件可以有,也可以没有,如果没有条件,则会修改整张表的所有数据。
    • DML-删除数据

      • DELETEFROM表名[WHERE条件]
        • 注意
          • DELETE语句的条件可以有,也可以没有,如果没有条件,则会删除整张表的所有数据。
          • DELETE语句不能删除某一个字段的值(可以使用UPDATE)。
  • DQL

    • DQL英文全称是Data Query Language(数据查询语言),数据查询语言,用来查询数据库中表的记录。

    • DQL-语法

      • SELECT字段列表FROM表名列表WHERE条件列表GROUPBY分组字段列表HAVING分组后条件列表ORDERBY排序字段列表LIMIT分页参数
    • 基本查询

      • 查询多个字段

        • SELECT字段1,字段2,字段3,...FROM表名;
        • SELECT*FROM表名;
      • 设置别名

        • SELECT字段1[AS别名1],字段2[AS别名2],...FROM表名;
      • 去除重复记录

        • SELECTDISTINCT字段列表FROM表名;
    • 条件查询(WHERE)

      • SELECT字段列表FROM表名WHERE条件列表;
        • 条件
    • 聚合函数(count、max、min、avg、sum)

      • 介绍:将一列数据作为一个整体,进行纵向计算。

      • 常见聚合函数

      • 语法

        • SELECT聚合函数(字段列表)FROM表名;
      • 注意:null值不参与所有聚合函数运算。

    • 分组查询(GROUP BY)

      • SELECT字段列表FROM表名[WHERE条件]GROUPBY分组字段名[HAVING分组后过滤条件];
        • where与having的区别
          • 执行时机不同:where是分组之前进行过滤,不满足where条件,不参与分组;而having是分组之后对结果进行过滤。
          • 判断条件不同:where不能对聚合函数进行判断,而having可以。
        • 注意
          • 执行顺序:where > 聚合函数 > having。
          • 分组之后,查询的字段一般为聚合函数和分组字段,查询其他字段无任何意义。
    • 排序查询(ORDER BY)

      • SELECT字段列表FROM表名ORDERBY字段1排序方式1,字段2排序方式2;
        • 排序方式
          • ASC:升序(默认值)
          • DESC:降序
        • 注意:如果是多字段排序,当第一个字段值相同时,才会根据第二个字段进行排序。
    • 分页查询(LIMIT)

      • SELECT字段列表FROM表名LIMIT起始索引,查询记录数;
        • 注意
          • 起始索引从0开始,起始索引 =(查询页码-1)* 每页显示记录数。
          • 分页查询是数据库的方言,不同的数据库有不同的实现,MySQL中是LIMIT。
          • 如果查询的是第一页数据,起始索引可以省略,直接简写为limit10。
    • DQL-执行顺序

  • DCL

    • DCL英文全称是Data Control Language(数据控制语言),用来管理数据库用户、控制数据库的访问权限。

    • DCL-管理用户

      • 查询用户

        • USEmysql;SELECT*FROMuser;
      • 创建用户

        • CREATEUSER'用户名'@'主机名'IDENTIFIEDBY'密码';
      • 修改用户密码

        • ALTERUSER'用户名'@'主机名'IDENTIFIEDWITHmysql_native_passwordBY'新密码';
      • 删除用户

        • DROPUSER'用户名'@'主机名';
      • 注意

        • 主机名可以使用%通配。
        • 这类SQL开发人员操作的比较少,主要是DBA(Database Administrator 数据库管理员)使用。
    • DCL-权限控制

      • MySQL中定义了很多种权限,但是常用的就以下几种:

      • 查询权限

        • SHOWGRANTSFOR'用户名'@'主机名';
      • 授予权限

        • GRANT权限列表ON数据库名.表名TO'用户名'@'主机名';
      • 撤销权限

        • REVOKE权限列表ON数据库名.表名FROM'用户名'@'主机名';
      • 注意

        • 多个权限之间,使用逗号分隔。
        • 授权时,数据库名和表名可以使用*进行通配,代表所有。
  • MySQL图形化界面(课程中使用的是DataGrip)

http://www.jsqmd.com/news/787039/

相关文章:

  • PCIe验证挑战与MVC解决方案解析
  • Jasminum:Zotero中文文献元数据抓取终极解决方案,如何彻底解决中文PDF识别难题?
  • 【2026全球AI技术大会倒计时警报】:距官方报名截止仅剩72小时,错过再等365天!
  • 基于依赖矩阵的代码架构分析:从AST解析到架构质量度量
  • 基于Claude AI的ASO自动化审计:架构、实现与工程实践
  • DeepSeek-TUI:终端里的 AI 编码 Agent(23,211 Stars)
  • MySQL-基础篇-函数
  • 无人巡检车锂电池包完整设计方案要求【浩博电池】
  • 防尘升降货梯优势大揭秘!泰州群利起重设备有限公司实力之作!
  • 开源AI广告助手RemyAI_ad:从部署到实战的完整指南
  • Dotfiles配置管理:一键部署开发环境与Windows全局热键实践
  • 机器学习高效工作流:ml-retreat深度工作法实战指南
  • 无线通信设备内共存干扰分析与OTA测量技术
  • 基于Vue 3与Vite的现代化中后台前端解决方案:fast-soy-admin深度解析
  • 无人搬运平台锂电池包完整设计方案要求【浩博电池】
  • 代码解释器:从执行到理解的智能编程助手设计与实现
  • 分布式事务Saga模式实践:基于Lanerra/saga的Node.js微服务事务解决方案
  • 从零构建实时聊天应用:WebSocket、Node.js与React全栈实践
  • Neohive:基于MCP协议实现AI代理本地化协作的完整指南
  • AI驱动的联盟营销自动化:52个技能构建数据闭环飞轮
  • CANN/ops-collections昇腾容器库
  • CoPaw Agent配置文件审计:从身份、灵魂、行为到记忆的全面优化指南
  • AI智能体集成命令行交易:Rust CLI工具与Alpaca API实战指南
  • FPGA入门核心笔记 · CLB 与 Slice 详解
  • 2026年热门的武汉一站式整装装修公司/武汉大宅装修公司哪家有实力 - 品牌宣传支持者
  • CANN/ops-transformer密集闪电索引Softmax算子
  • 基于Alexa技能与无服务器架构的香港地铁实时查询系统开发实战
  • Cursor AI 上下文优化:智能压缩代码提升 AI 编程助手效率
  • Go语言CLI工具longClaw:模板驱动项目脚手架实战指南
  • 量子计算与深度学习结合解决Frenkel激子模拟难题