MySQL 的关键字

news/2024/10/4 20:36:27/文章来源:https://blog.csdn.net/Flying_Fish_roe/article/details/141997275

MySQL 中的关键字是数据库中具有特殊含义的保留字,它们用于定义数据库结构、操作数据库数据和控制数据库行为。关键字在 MySQL 查询中扮演着至关重要的角色,因为它们是 SQL 语句的核心组成部分。

1. 数据定义语言 (DDL) 关键字

数据定义语言 (DDL) 关键字用于定义、修改和删除数据库结构,如数据库、表和索引等。这些关键字通常用于创建、删除表结构以及修改表的列等操作。

1.1 CREATE

CREATE 关键字用于创建数据库对象,比如数据库、表、索引等。

  • 创建数据库:

    CREATE DATABASE my_database;
    
  • 创建表:

    CREATE TABLE employees (id INT AUTO_INCREMENT PRIMARY KEY,name VARCHAR(100),salary DECIMAL(10, 2)
    );
    
  • 创建索引:

    CREATE INDEX idx_name ON employees(name);
    
1.2 ALTER

ALTER 关键字用于修改已存在的数据库对象,比如表的结构(添加或删除列、修改列类型等)。

  • 添加新列:

    ALTER TABLE employees ADD birth_date DATE;
    
  • 修改列的数据类型:

    ALTER TABLE employees MODIFY salary DECIMAL(12, 2);
    
  • 删除列:

    ALTER TABLE employees DROP COLUMN birth_date;
    
1.3 DROP

DROP 关键字用于删除数据库对象,如表、数据库或索引。删除操作是不可逆的,因此要谨慎使用。

  • 删除数据库:

    DROP DATABASE my_database;
    
  • 删除表:

    DROP TABLE employees;
    
  • 删除索引:

    DROP INDEX idx_name ON employees;
    
1.4 RENAME

RENAME 关键字用于重命名数据库对象,比如重命名表。

  • 重命名表:
    RENAME TABLE employees TO staff;
    

2. 数据操作语言 (DML) 关键字

数据操作语言 (DML) 关键字用于查询、插入、更新和删除表中的数据,是数据库操作中最为频繁使用的部分。

2.1 SELECT

SELECT 关键字用于从数据库中查询数据,是最常用的关键字之一。

  • 基本查询:

    SELECT * FROM employees;
    
  • 查询指定列:

    SELECT name, salary FROM employees;
    
  • 使用条件查询:

    SELECT * FROM employees WHERE salary > 5000;
    
2.2 INSERT

INSERT 关键字用于向表中插入新数据。

  • 插入一条记录:

    INSERT INTO employees (name, salary) VALUES ('John Doe', 7500);
    
  • 插入多条记录:

    INSERT INTO employees (name, salary) VALUES ('Alice', 6000), ('Bob', 5500);
    
2.3 UPDATE

UPDATE 关键字用于更新表中的数据。

  • 更新单条记录:

    UPDATE employees SET salary = 8000 WHERE id = 1;
    
  • 更新多条记录:

    UPDATE employees SET salary = salary * 1.1 WHERE salary < 6000;
    
2.4 DELETE

DELETE 关键字用于删除表中的数据。

  • 删除一条记录:

    DELETE FROM employees WHERE id = 1;
    
  • 删除所有记录:

    DELETE FROM employees;
    
2.5 REPLACE

REPLACE 关键字类似于 INSERT,但如果插入的记录主键冲突,会先删除原有记录,再插入新记录。

  • 插入新记录或替换已有记录:
    REPLACE INTO employees (id, name, salary) VALUES (1, 'John Doe', 8000);
    

3. 数据控制语言 (DCL) 关键字

数据控制语言 (DCL) 关键字用于控制数据库的访问权限,确保数据库的安全性和数据的保密性。

3.1 GRANT

GRANT 关键字用于向用户授予权限。

  • 授予用户查询权限:

    GRANT SELECT ON my_database.* TO 'username'@'localhost';
    
  • 授予用户所有权限:

    GRANT ALL PRIVILEGES ON my_database.* TO 'username'@'localhost';
    
3.2 REVOKE

REVOKE 关键字用于撤销用户的权限。

  • 撤销查询权限:

    REVOKE SELECT ON my_database.* FROM 'username'@'localhost';
    
  • 撤销所有权限:

    REVOKE ALL PRIVILEGES ON my_database.* FROM 'username'@'localhost';
    

4. 事务控制语言 (TCL) 关键字

事务控制语言 (TCL) 关键字用于管理数据库事务,确保数据操作的原子性和一致性。事务可以确保一组操作要么全部成功,要么全部回滚。

4.1 BEGIN / START TRANSACTION

BEGINSTART TRANSACTION 用于显式开启一个事务。

  • 开启事务:
    START TRANSACTION;
    
4.2 COMMIT

COMMIT 用于提交当前事务,使事务中的所有操作生效。

  • 提交事务:
    COMMIT;
    
4.3 ROLLBACK

ROLLBACK 用于回滚当前事务,撤销事务中的所有操作。

  • 回滚事务:
    ROLLBACK;
    
4.4 SAVEPOINT

SAVEPOINT 允许在事务中设置保存点,以便部分回滚。

  • 设置保存点:

    SAVEPOINT sp1;
    
  • 回滚到保存点:

    ROLLBACK TO SAVEPOINT sp1;
    
4.5 RELEASE SAVEPOINT

RELEASE SAVEPOINT 用于删除指定的保存点。

  • 删除保存点:
    RELEASE SAVEPOINT sp1;
    

5. 查询控制关键字

在 MySQL 中,还有一些关键字用于控制查询的执行方式和输出结果。

5.1 DISTINCT

DISTINCT 用于去除查询结果中的重复记录。

  • 查询不重复的员工姓名:
    SELECT DISTINCT name FROM employees;
    
5.2 ORDER BY

ORDER BY 用于对查询结果进行排序,可以按升序 (ASC) 或降序 (DESC) 排序。

  • 按工资升序排序:

    SELECT * FROM employees ORDER BY salary ASC;
    
  • 按姓名降序排序:

    SELECT * FROM employees ORDER BY name DESC;
    
5.3 GROUP BY

GROUP BY 用于将查询结果按某一列进行分组,常与聚合函数一起使用。

  • 按部门分组并计算每个部门的平均工资:
    SELECT department, AVG(salary) FROM employees GROUP BY department;
    
5.4 HAVING

HAVING 类似于 WHERE,但它用于过滤聚合结果。

  • 过滤出平均工资大于5000的部门:
    SELECT department, AVG(salary) FROM employees GROUP BY department HAVING AVG(salary) > 5000;
    
5.5 LIMIT

LIMIT 用于限制查询返回的记录数。

  • 返回前 5 条记录:

    SELECT * FROM employees LIMIT 5;
    
  • 返回第 3 条到第 7 条记录:

    SELECT * FROM employees LIMIT 2, 5;
    
5.6 UNION

UNION 用于将多个查询结果合并成一个结果集,同时去除重复记录。

  • 合并两个查询结果:
    SELECT name FROM employees WHERE salary > 5000
    UNION
    SELECT name FROM managers;
    

6. 常用条件关键字

6.1 WHERE

WHERE 用于指定查询的条件。

  • 查询工资大于5000的员工:
    SELECT * FROM employees WHERE salary > 5000;
    
6.2 AND / OR

ANDOR 用于组合多个查询条件。

  • 查询工资大于5000且在 IT 部门的员工:

    SELECT * FROM employees WHERE salary > 5000 AND department = 'IT';
  • 查询工资大于5000或在 IT 部门的员工:

    SELECT * FROM employees WHERE salary > 5000 OR department = 'IT';
    
6.3 IN

IN 用于指定多个值,类似于多个 OR 的组合。

  • 查询在 IT 或 HR 部门的员工:
    SELECT * FROM employees WHERE department IN ('IT', 'HR');
    
6.4 BETWEEN

BETWEEN 用于指定范围条件。

  • 查询工资在 3000 到 6000 之间的员工:
    SELECT * FROM employees WHERE salary BETWEEN 3000 AND 6000;
    
6.5 LIKE

LIKE 用于模糊匹配,常与通配符 %(匹配任意多个字符)和 _(匹配一个字符)配合使用。

  • 查询姓名以 “J” 开头的员工:
    SELECT * FROM employees WHERE name LIKE 'J%';
    

结论

MySQL 中的关键字定义了数据库操作的规则和行为,它们使得开发者能够高效地操作和管理数据。关键字分为多个类别,包括数据定义语言 (DDL)、数据操作语言 (DML)、数据控制语言 (DCL)、事务控制语言 (TCL) 和查询控制关键字等。理解并熟练使用这些关键字是 MySQL 数据库开发和操作的重要基础,通过合理应用它们可以提高数据管理的效率和准确性。

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

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

相关文章

跨越技术壁垒:EasyCVR为何选择支持FMP4格式,重塑视频汇聚平台标准

随着物联网、大数据、云计算等技术的飞速发展&#xff0c;视频监控系统已经从传统的安防监控扩展到智慧城市、智能交通、工业制造等多个领域。视频流格式作为视频数据传输与存储的基础&#xff0c;其兼容性与效率直接影响到整个视频监控系统的性能。 在众多视频流格式中&#…

UE4_后期处理_后期处理材质及后期处理体积二

效果&#xff1a; 步骤&#xff1a; 1、创建后期处理材质,并设置参数。 2、回到主界面&#xff0c;找到需要发光的物体的细节面板。 渲染自定义深度通道&#xff0c;默认自定义深度模具值为10&#xff08;需要修改此值&#xff0c;此值影响物体的亮度&#xff09;。 3、添加…

SLM561A​​系列 60V 10mA到50mA线性恒流LED驱动芯片 为智能家居照明注入新活力

SLM561A系列选型参考&#xff1a; SLM561A10ae-7G SOD123 SLM561A15ae-7G SOD123 SLM561A20ae-7G SOD123 SLM561A25ae-7G SOD123 SLM561A30ae-7G SOD123 SLM561A35ae-7G SOD123 SLM561A40ae-7G SOD123 SLM561A45ae-7G SOD123 SLM561A50ae-7G SOD123 …

java基础-IO(4)管道流 PipedOutputStream、PipedInputStream、PipedReader、PipedWriter

管道 提到管道&#xff0c;第一印象就是水管或者地下管道&#xff0c;一节接着一节&#xff0c;形如下图。 管道流 "流"从上一个管道 ——-> 下一个管道。又细分为字节流和字符流。 字节流&#xff08;PipedOutputStream、PipedInputStream&#xff09; 如果…

计算机组成原理(SRAM电路图示)

1.该电路由6个MOS管&#xff08;T1-T6&#xff09;组成 2.T1-T4是一个由MOS管组成的触发器基本电路&#xff1b; T5&#xff0c;T6像开关&#xff0c;受行地址选择信号控制&#xff1b; T7,T8受列地址选择控制&#xff0c;分别与位线A&#xff0c;和相连 3.假设触发器…

Avatar 高清图传

Avatar HD VTX 是一款数字视频发射器&#xff0c;专为与 Caddx/Walksnail 的 Avatar HD 系统配合使用而设计。最初以 Walksnail 品牌销售&#xff0c;实际上是 CaddX FPV 的一部分。 这些 VTX 设计用于 Caddx/Walksnail 的 Avatar HD 系统&#xff0c;并可与 Avatar HD Goggle…

零知识证明在BSV网络上的应用

​​发表时间&#xff1a;2023年6月15日 2024年7月19日&#xff0c;BSV区块链主网上成功通过使用零知识证明验证了一笔交易。 零知识证明是一种技术&#xff0c;它允许一方&#xff08;证明者&#xff09;在不透露任何秘密的情况下&#xff0c;向另一方&#xff08;验证者&…

ThinkPHP5 5.0.23-rce远程代码执行漏洞复现

启动环境&#xff0c;先关闭其他环境 启动 判断是否存在漏洞&#xff1a;访问/index.php?scaptcha页面&#xff0c;会出现报错 使用HackBar 插件发送 POST 请求 _method__construct&filter[]system&methodget&server[REQUEST_METHOD]dir 通过echo命令写入 Webshe…

2024Java基础总结+【Java数据结构】(2)

面向对象07&#xff1a;简单小结类与对象 面向对象08&#xff1a;封装详解 面向对象09&#xff1a;什么是继承 ctrlh看类的关系&#xff0c;所有的类都默认的或间接继承Object 面向对象10&#xff1a;Super详解 super注意点: super调用父类的构造方法&#xff0c;必须在构造方…

JavaScript使用高德API显示地图

前言 在JavaScript中&#xff0c;使用Leaflet库显示地图是一种常见的做法。Leaflet是一个开源的JavaScript库&#xff0c;用于在Web应用程序中创建互动地图。它非常轻量级&#xff0c;易于使用&#xff0c;并且提供了多种功能&#xff0c;使开发者能够轻松地将地图集成到他们的…

【自动驾驶】控制算法(八)横向控制Ⅰ | 算法与流程

写在前面&#xff1a; &#x1f31f; 欢迎光临 清流君 的博客小天地&#xff0c;这里是我分享技术与心得的温馨角落。&#x1f4dd; 个人主页&#xff1a;清流君_CSDN博客&#xff0c;期待与您一同探索 移动机器人 领域的无限可能。 &#x1f50d; 本文系 清流君 原创之作&…

IBM Storwize V7000存储控制器故障节点报错574

背景&#xff1a;由于客户机房搬迁&#xff0c;需要下电迁移设备。该存储自2016年投入生产使用后&#xff0c;从未关过机&#xff0c;已正常运行七八年时间&#xff0c;期间只更换过硬盘&#xff0c;无其他硬件故障。 在GUI界面点击关闭系统后&#xff0c;大概等了40分钟&…

轨迹规划-B样条

B样条究竟是干啥的&#xff1f;白话就是给出一堆点&#xff0c;用样条的方式&#xff0c;给这些点连接起来&#xff0c;并保证丝滑的。 同时B样条分为准均匀和非均匀&#xff0c;以下为准均匀为例。 参考链接1&#xff1a;https://zhuanlan.zhihu.com/p/50626506https://zhua…

汽车功能安全--TC3xx之PBIST、MONBIST

目录 1.PMS 电源监控速览 2.PBIST 3.MONBIST 4.小结 1.PMS 电源监控速览 英飞凌TC3xx芯片的四种硬件机制&#xff0c;分别是&#xff1a; PMS:PBIST: Power Built-in Self Test. MCU:LBIST: Logic Built-in Self Test. PMS:MONBIST: Monitor Built-in Self Test. VMT:MBI…

前端面试八股文

1. HTTP 和 HTTPS 1、http 和 https 的基本概念 http: 是一个客户端和服务器端请求和应答的标准&#xff08;TCP&#xff09;&#xff0c;用于从 WWW 服务器传输超文本到本地浏览器的超文本传输协议。 https:是以安全为目标的 HTTP 通道&#xff0c;即 HTTP 下 加入 SSL 层进…

手机如何切换网络IP地址:‌方法详解与操作指南‌

在当今的数字化时代&#xff0c;‌网络IP地址作为设备在网络中的唯一标识&#xff0c;‌扮演着至关重要的角色。‌对于手机用户而言&#xff0c;‌了解如何切换网络IP地址不仅有助于提升网络体验&#xff0c;‌还能在一定程度上保护个人隐私。‌本文将详细介绍手机切换网络IP地…

springboot 整合swagger

没有多余废话&#xff0c;就是干 spring-boot 2.7.8 springfox-boot-starter 3.0.0 结构 POM.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/…

抢鲜体验 PolarDB PG 15 开源版

unsetunsetPolarDB 商业版unsetunset 8 月&#xff0c;PolarDB PostgreSQL 版兼容 PostgreSQL 15 版本&#xff08;商业版&#xff09;正式发布上线。 当前版本主要增强优化了以下方面&#xff1a; 改进排序功能&#xff1a;改进内存和磁盘排序算法。 增强SQL功能&#xff1a;支…

easyExcel-读取Excel

1、简单读取&#xff0c;没有合并单元格 2、复杂读取&#xff0c;合并单元格-方法一 1、简单读取&#xff0c;没有合并单元格 1.1、引入pom文件 <dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.…

若楠带你初识OpenCV(6) -- 轮廓近似与模板匹配

文章目录 OpenCV轮廓近似1. 读取灰度图2. 二值化阈值处理3. 查找轮廓4. 轮廓近似5. 绘画近似图像 模板匹配1. 读取图片2. 查找与模板图像最匹配的区域3. 找到得分的最大值及其位置4. 绘制匹配区域完整代码 总结 OpenCV OpenCV&#xff08;Open Source Computer Vision Library…