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

常用SQL语句总结

SQL语句

文章目录

  • SQL语句
  • 1 SQL语句简介
  • 2 DQL(数据查询语句)
  • 3 DML(数据操纵语句)
  • 4 DDL(数据定义语句)
  • 5 DCL(数据控制语句)
  • 6 TCL(事务控制语句)

在这里插入图片描述

1 SQL语句简介

SQL(Structured Query Language)语言用于管理和操作关系型数据库。它包括以下几种主要的语句类型:

  1. 数据查询语句(Data Query Language,简称DQL):用于从数据库中检索数据的语句。常见的DQL语句是SELECT语句,用于从数据库表中查询特定的数据行和列。
  2. 数据操纵语句(Data Manipulation Language,简称DML):用于操作数据库中的数据的语句。常见的DML语句包括INSERT、UPDATE和DELETE,分别用于插入、更新和删除数据库中的数据行。
  3. 数据定义语句(Data Definition Language,简称DDL):用于定义数据库结构的语句。常见的DDL语句包括CREATE、ALTER和DROP,分别用于创建、修改和删除数据库、表、列等对象。
  4. 数据控制语句(Data Control Language,简称DCL):用于控制数据库用户访问权限和安全性的语句。常见的DCL语句有GRANT和REVOKE,用于授予和撤销用户对数据库对象的访问权限。
  5. 事务控制语句(Transaction Control Language,简称TCL):用于控制数据库事务的语句。常见的TCL语句包括COMMIT、ROLLBACK和SAVEPOINT,用于提交、回滚和设置保存点以实现事务的管理。

这些不同类型的SQL语句提供了丰富的功能和灵活性,以满足不同的数据库操作需求。开发人员通过组合和使用这些语句,可以实现数据的查询、更新、定义和安全控制等操作,从而有效地管理数据库。

2 DQL(数据查询语句)

DQL(Data Query Language)是SQL语言的一个子集,用于从数据库中查询数据。以下是一些DQL语句的示例及其应用场景:

  1. SELECT:用于从数据库表中查询数据行和列。SELECT语句可以选择特定列或所有列。

    示例:SELECT * FROM employees; (查询所有员工数据)

  2. WHERE:用于在查询中设置条件,过滤满足条件的数据行。

    示例:SELECT * FROM customers WHERE city = ‘New York’; (查询居住在纽约的客户)

  3. DISTINCT:用于返回查询结果中的唯一值,去除重复的数据行。

    示例:SELECT DISTINCT country FROM customers; (查询唯一的国家列表)

  4. ORDER BY:用于对查询结果进行排序。

    示例:SELECT * FROM products ORDER BY price DESC; (按价格降序排列产品)

  5. GROUP BY:用于对查询结果进行分组汇总,常与聚合函数一起使用。

    示例:SELECT department, AVG(salary) FROM employees GROUP BY department; (按部门计算平均工资)

  6. JOIN:用于将多个表关联起来,通过共同的列进行匹配。

    示例:SELECT * FROM orders JOIN customers ON orders.customer_id = customers.customer_id; (查询订单和相应客户信息)

  7. LIMIT:用于限制查询结果返回的行数。

    示例:SELECT * FROM products LIMIT 10; (查询返回前10行产品数据)

这些是DQL语句的一些常见示例,通过使用DQL语句,可以从数据库中提取所需的数据,并根据需求进行排序、过滤、分组等操作。DQL在应用程序开发中非常常见,可用于构建动态的数据查询与显示功能,提供灵活的数据检索和分析能力

3 DML(数据操纵语句)

DML(Data Manipulation Language)用于操作数据库中的数据。以下是一些DML语句的示例及其应用场景:

  1. INSERT INTO:用于向数据库表中插入新的数据行。

    示例:INSERT INTO employees (name, age, salary) VALUES (‘John’, 30, 5000); (向员工表插入新的员工信息)

  2. UPDATE:用于更新数据库表中已有的数据行。

    示例:UPDATE customers SET city = ‘London’ WHERE customer_id = 1; (将ID为1的客户的城市更新为伦敦)

  3. DELETE FROM:用于删除数据库表中的数据行。

    示例:DELETE FROM orders WHERE order_date < ‘2022-01-01’; (删除早于2022年1月1日的订单数据)

这些DML语句用于对数据库中的数据进行新增、更新和删除操作。在应用程序开发中,DML语句经常用于数据的持久化和维护,例如用户注册、订单处理、数据更新等场景。通过执行这些语句,可以对数据库中的数据进行操作和改变,确保数据库与应用程序的数据一致性。

需要注意的是,执行DML语句时应谨慎,遵循数据完整性和安全性的原则,并充分考虑数据修改可能带来的影响。

4 DDL(数据定义语句)

DDL(Data Definition Language)用于定义数据库结构和对象的语句。以下是一些DDL语句的示例及其应用场景:

  1. CREATE TABLE:用于创建数据库表。

    示例:CREATE TABLE employees (id INT, name VARCHAR(50), age INT); (创建一个名为"employees"的表,包含id、name和age字段)

  2. ALTER TABLE:用于修改数据库表的结构,如添加、修改或删除列、约束等。

    示例:ALTER TABLE employees ADD COLUMN salary DECIMAL(10,2); (向"employees"表中添加一个名为salary的列)

  3. DROP TABLE:用于删除数据库表。

    示例:DROP TABLE employees; (删除名为"employees"的表)

  4. CREATE INDEX:用于创建索引,提高数据库查询的性能。

    示例:CREATE INDEX idx_name ON employees (name); (在"employees"表的name列上创建一个索引)

  5. CREATE VIEW:用于创建视图,类似于虚拟表,通过定义查询来简化数据访问。

    示例:CREATE VIEW active_customers AS SELECT * FROM customers WHERE status = ‘active’; (创建一个名为"active_customers"的视图,显示状态为"active"的客户)

  6. CREATE DATABASE:用于创建数据库。

    示例:CREATE DATABASE mydb; (创建名为"mydb"的数据库)

这些DDL语句用于定义数据库的结构和对象,如表、列、索引和视图等。在数据库设计和维护中,DDL语句起着重要的作用。开发人员可以使用DDL语句来创建、修改和删除数据库对象,确保数据库结构与应用程序需求一致。需要注意的是,执行DDL语句时应谨慎,因为对数据库结构的改变可能会对现有的数据和应用程序产生影响。在生产环境中,应谨慎地执行DDL语句,并在必要时备份数据库以防止意外情况的发生。

5 DCL(数据控制语句)

DCL(Data Control Language)用于控制数据库用户访问权限和安全性的语句。以下是一些DCL语句的示例及其应用场景:

  1. GRANT:用于赋予用户或用户组对数据库对象的权限。

    示例:GRANT SELECT, INSERT ON employees TO user1; (将SELECT和INSERT权限授予用户user1,使其对employees表有查询和插入的权限)

  2. REVOKE:用于撤销用户或用户组对数据库对象的权限。

    示例:REVOKE DELETE ON employees FROM user2; (从用户user2撤销对employees表的删除权限)

  3. DENY:用于拒绝用户对数据库对象的权限,与REVOKE不同之处在于,被拒绝的权限不能通过其他权限再次赋予。

    示例:DENY UPDATE ON employees TO user3; (拒绝用户user3对employees表的更新权限)

  4. SET ROLE:用于设置当前会话的角色。

    示例:SET ROLE admin; (将当前会话设置为admin角色)

这些DCL语句用于管理数据库用户的访问权限和安全控制。通过使用这些语句,数据库管理员可以精确地控制用户对数据库对象的操作权限,实施数据安全策略,并确保只有授权的用户能够访问和修改数据。这种权限控制可以防止未经授权的用户访问敏感数据,并提高数据库的安全性。

需要注意的是,在使用DCL语句时,应考虑权限的粒度和数据库安全策略,以确保权限的正确分配和撤销。同时,定期审查数据库权限和角色设置,及时检测和纠正可能存在的安全风险。

6 TCL(事务控制语句)

TCL(Transaction Control Language)用于管理数据库事务的语句。以下是一些TCL语句的示例及其应用场景:

  1. COMMIT:用于提交当前事务,将事务中的所有更改保存到数据库中。

    示例:COMMIT; (提交当前事务)

  2. ROLLBACK:用于回滚当前事务,撤销事务中的所有更改。

    示例:ROLLBACK; (回滚当前事务)

  3. SAVEPOINT:用于设置保存点,使得事务可以在特定点进行部分回滚。

    示例:SAVEPOINT sp1; (设置名为sp1的保存点)

  4. RELEASE SAVEPOINT:用于释放保存点。

    示例:RELEASE SAVEPOINT sp1; (释放名为sp1的保存点)

这些TCL语句用于管理数据库事务的提交、回滚和保存点控制。事务是数据库中一组操作的逻辑单元,要么全部成功执行提交,要么全部失败回滚。通过使用TCL语句,可以确保数据库操作的原子性、一致性、隔离性和持久性(ACID原则),从而保证数据的完整性和可靠性。

应用程序中经常使用TCL语句来管理数据库事务,尤其是在需要确保数据一致性和完整性的业务操作中,例如转账、订单处理等。通过正确使用TCL语句,可以避免数据丢失、冲突和不一致等问题,保证数据库操作的可靠性和稳定性。

滚和保存点控制。事务是数据库中一组操作的逻辑单元,要么全部成功执行提交,要么全部失败回滚。通过使用TCL语句,可以确保数据库操作的原子性、一致性、隔离性和持久性(ACID原则),从而保证数据的完整性和可靠性。

应用程序中经常使用TCL语句来管理数据库事务,尤其是在需要确保数据一致性和完整性的业务操作中,例如转账、订单处理等。通过正确使用TCL语句,可以避免数据丢失、冲突和不一致等问题,保证数据库操作的可靠性和稳定性。

需要注意的是,在使用TCL语句时,应合理划分事务的范围,选择合适的提交点和保存点,以及根据实际需求进行正确的提交或回滚操作。这有助于维护数据的一致性,并避免不必要的数据损失。

相关文章:

常用SQL语句总结

SQL语句 文章目录 SQL语句1 SQL语句简介2 DQL&#xff08;数据查询语句&#xff09;3 DML&#xff08;数据操纵语句&#xff09;4 DDL&#xff08;数据定义语句&#xff09;5 DCL&#xff08;数据控制语句&#xff09;6 TCL&#xff08;事务控制语句&#xff09; 1 SQL语句简介…...

arm交叉编译lmbench

一、下载lmbench www.bitmover.com/lmbench 官网下载&#xff0c;http://www.bitmover.com/lmbench/lmbench3.tar.gz 我没有下载下来&#xff0c;找的别人的百度云下载 链接: https://pan.baidu.com/s/1tGo1clCqY-jQPN8G1eWSsg 提取码: f6jd 二、修改makefile 修改三个文件…...

ExtJs 7.7.0 下载方法与去除trial水印

背景 最近发现Sencha ExtJs发布了ExtJs7.7.0版本&#xff0c;立刻下载了SDK包&#xff0c;许多朋友不知如何下载&#xff0c;如何去除右上角的trial水印。本文讲下相关下载技巧与方法。 下载SDK 首先需要申请试用&#xff0c;申请地址如下&#xff0c;需要注意可能需要梯子&…...

Android11开发规划

文章目录 规划总结规划 提示:这里可以添加本文要记录的大概内容: 从本文开始,会介绍如何移植瑞芯微提供的Android11源码到自己的RK3568的板子上 下面是整个Android开发的规划: 包括以下部分: … 一、移植部分 下载编译瑞芯微提供的源码 瑞芯微原厂源码目录介绍...

活动隔断在现在酒店运用的方式

活动隔断是一种在酒店内部划分空间的方式&#xff0c;用于实现不同活动的隔离和隐私。现代酒店常用的活动隔断方式有以下几种&#xff1a; 1. 固定隔断&#xff1a;使用墙体、固定屏风或者板材等材料&#xff0c;将空间划分为不同的房间或区域。这种方式常用于划分客房、会议室…...

Jenkins工具系列 —— 插件 钉钉发送消息

文章目录 安装插件 Ding TalkJenkins 配置钉钉机器人钉钉APP配置项目中启动钉钉通知功能 安装插件 Ding Talk 点击 左侧的 Manage Jenkins —> Plugins ——> 左侧的 Available plugins Jenkins 配置钉钉机器人 点击 左侧的 Manage Jenkins &#xff0c;拉到最后 钉…...

LeetCode 26 题:删除有序数组的重复项

思路 在写这一个题时&#xff0c;我突然想到了Python中的 set&#xff08;&#xff09;函数可能会有大用处&#xff0c;便选择了用Python写。 set&#xff08;&#xff09;函数可以将列表转化为集合&#xff0c;集合会保证元素的单一性&#xff0c;所以会自动删去相同字符。 …...

优雅地切换node版本(windows)

文章目录 1、下载并安装nvm2、nvm的使用3、处理npm版本与nodejs版本不匹配问题&#xff08;通常不会有这个问题&#xff09; 1、下载并安装nvm 卸载已安装的node&#xff1a;控制面板-程序-找到node并卸载 通常在控制面板中卸载后&#xff0c;nodejs目录、环境变量、注册表就自…...

反诈:吴明军、黄亮领导的WIN生活资金盘,大家警惕防范此类诈骗

消息已经证实&#xff01;“米粒”无法变现&#xff0c;数以万计的会员深套“315万民商城”&#xff0c;维权艰难&#xff0c;血汗钱无法讨回。 其实这一点笔者并不感到太意外&#xff0c;因为万民商城资金传销盘的定性之前就已经发文揭露过&#xff0c;并反复提醒大家小心警惕…...

shell、bash的关系及bash的特性(一)

一、概念 shell是壳&#xff0c;是运行在终端中的文本互动程序。Shell相当于是一个翻译&#xff0c;把我们在计算机上的操作命令&#xff0c;翻译为计算机可识别的二进制命令&#xff0c;传递给内核&#xff0c;以便调用计算机硬件执行相关的操作&#xff1b;同时&#xff0c;计…...

【问题随记】

ubuntu 14.04源更新(sources.list) deb http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ trusty-update…...

Stable Diffusion AI绘画学习指南【常用模型,采样器介绍】

常用采样器、目前有20个采样步骤越多每个步之间的降噪越小&#xff0c;减少采样过程中的截断误差&#xff0c;结果越好 学微分方程求解器 Euler&#xff08;最简单的采样器&#xff0c;采样过程中不加随机噪声&#xff0c;根据采样计划来执行每个步骤中的噪声&#xff0c;并使…...

pycharm——漏斗图

import pyecharts.options as opts from pyecharts.charts import Funnel""" Gallery 使用 pyecharts 1.1.0 参考地址: https://echarts.apache.org/examples/editor.html?cfunnel目前无法实现的功能:1、暂时无法对漏斗图的长宽等范围操作进行修改 ""…...

RISC-V基础之浮点指令(包含实例)

RISC-V体系结构定义了可选的浮点扩展&#xff0c;分别称为RVF、RVD和RVQ&#xff0c;用于操作单精度、双精度和四倍精度的浮点数。RVF/D/Q定义了32个浮点寄存器&#xff0c;f0到f31&#xff0c;它们的宽度分别为32位、64位或128位。当一个处理器实现了多个浮点扩展时&#xff0…...

前端生成图片验证码怎么做?

##题记&#xff1a;我们实现一个功能首先想一下我们需要做哪些工作&#xff0c;比如我们需要生成一个随机的图片验证码&#xff0c;我们需要一个就是点击事件获取验证码&#xff0c;通过接口我们去获取图片路径进行渲染就行&#xff0c;这里边还要牵扯一件事情就是获取一个随机…...

【Java】springboot框架 粮油质量溯源MES生产加工管理系统源码

粮油质量溯源MES生产加工管理系统源码&#xff0c;实现一物一码&#xff0c;全程追溯&#xff0c;正向追踪&#xff0c;逆向溯源。技术架构&#xff1a;spring bootmybatiseasyuimysql 。 粮油生产质量追溯系统实现种植主体、种植基地、生产计划、压榨、精炼、包装、销售、物料…...

macOS install redis遇到的bug(tar包,homebrew安装,守护进程redis.conf配置)

官网下载tar包再make install 首先是sudo make test的时候一直报 !!! WARNING The following tests failed: *** [err]: trim on SET with big value in tests/unit/type/string.tcl Expected [r memory usage key] < 42000 (context: type source line 478 file /usr/loca…...

面试题:创建JS对象的几种方式?构造函数是什么?new操作符具体干了什么?为什么字符串可以使用length?

内置构造函数还未更新完&#xff0c;待更新。。。 js创建对象的三种方式&#xff1f;构造函数是什么&#xff1f;new操作符具体干了什么&#xff1f;为什么字符串可以使用length&#xff1f; 内置构造函数还未更新完&#xff0c;待更新。。。一、利用对象字面量创建对象二、利用…...

LabVIEW深度相机与三维定位实战(下)

‍‍&#x1f3e1;博客主页&#xff1a; virobotics的CSDN博客&#xff1a;LabVIEW深度学习、人工智能博主 &#x1f384;所属专栏&#xff1a;『LabVIEW深度学习实战』 &#x1f37b;上期文章&#xff1a;『LabVIEW深度相机与三维定位实战&#xff08;上&#xff09;』 &#…...

【基础类】—CSS盒模型的全面认识

一、基本概念&#xff1a;标准IE模型 盒模型&#xff1a;margin border padding content 标准模型&#xff1a;将元素的宽度和高度仅计算为内容区域的尺寸&#xff08;content-box&#xff0c;默认&#xff09; 当CSS盒模型为 标准盒模型 &#xff08;box-sizing: conten…...

装饰模式(Decorator Pattern)重构java邮件发奖系统实战

前言 现在我们有个如下的需求&#xff0c;设计一个邮件发奖的小系统&#xff0c; 需求 1.数据验证 → 2. 敏感信息加密 → 3. 日志记录 → 4. 实际发送邮件 装饰器模式&#xff08;Decorator Pattern&#xff09;允许向一个现有的对象添加新的功能&#xff0c;同时又不改变其…...

Unity3D中Gfx.WaitForPresent优化方案

前言 在Unity中&#xff0c;Gfx.WaitForPresent占用CPU过高通常表示主线程在等待GPU完成渲染&#xff08;即CPU被阻塞&#xff09;&#xff0c;这表明存在GPU瓶颈或垂直同步/帧率设置问题。以下是系统的优化方案&#xff1a; 对惹&#xff0c;这里有一个游戏开发交流小组&…...

Spring Boot 实现流式响应(兼容 2.7.x)

在实际开发中&#xff0c;我们可能会遇到一些流式数据处理的场景&#xff0c;比如接收来自上游接口的 Server-Sent Events&#xff08;SSE&#xff09; 或 流式 JSON 内容&#xff0c;并将其原样中转给前端页面或客户端。这种情况下&#xff0c;传统的 RestTemplate 缓存机制会…...

基于ASP.NET+ SQL Server实现(Web)医院信息管理系统

医院信息管理系统 1. 课程设计内容 在 visual studio 2017 平台上&#xff0c;开发一个“医院信息管理系统”Web 程序。 2. 课程设计目的 综合运用 c#.net 知识&#xff0c;在 vs 2017 平台上&#xff0c;进行 ASP.NET 应用程序和简易网站的开发&#xff1b;初步熟悉开发一…...

在 Nginx Stream 层“改写”MQTT ngx_stream_mqtt_filter_module

1、为什么要修改 CONNECT 报文&#xff1f; 多租户隔离&#xff1a;自动为接入设备追加租户前缀&#xff0c;后端按 ClientID 拆分队列。零代码鉴权&#xff1a;将入站用户名替换为 OAuth Access-Token&#xff0c;后端 Broker 统一校验。灰度发布&#xff1a;根据 IP/地理位写…...

python如何将word的doc另存为docx

将 DOCX 文件另存为 DOCX 格式&#xff08;Python 实现&#xff09; 在 Python 中&#xff0c;你可以使用 python-docx 库来操作 Word 文档。不过需要注意的是&#xff0c;.doc 是旧的 Word 格式&#xff0c;而 .docx 是新的基于 XML 的格式。python-docx 只能处理 .docx 格式…...

高防服务器能够抵御哪些网络攻击呢?

高防服务器作为一种有着高度防御能力的服务器&#xff0c;可以帮助网站应对分布式拒绝服务攻击&#xff0c;有效识别和清理一些恶意的网络流量&#xff0c;为用户提供安全且稳定的网络环境&#xff0c;那么&#xff0c;高防服务器一般都可以抵御哪些网络攻击呢&#xff1f;下面…...

华硕a豆14 Air香氛版,美学与科技的馨香融合

在快节奏的现代生活中&#xff0c;我们渴望一个能激发创想、愉悦感官的工作与生活伙伴&#xff0c;它不仅是冰冷的科技工具&#xff0c;更能触动我们内心深处的细腻情感。正是在这样的期许下&#xff0c;华硕a豆14 Air香氛版翩然而至&#xff0c;它以一种前所未有的方式&#x…...

基于SpringBoot在线拍卖系统的设计和实现

摘 要 随着社会的发展&#xff0c;社会的各行各业都在利用信息化时代的优势。计算机的优势和普及使得各种信息系统的开发成为必需。 在线拍卖系统&#xff0c;主要的模块包括管理员&#xff1b;首页、个人中心、用户管理、商品类型管理、拍卖商品管理、历史竞拍管理、竞拍订单…...

Python Einops库:深度学习中的张量操作革命

Einops&#xff08;爱因斯坦操作库&#xff09;就像给张量操作戴上了一副"语义眼镜"——让你用人类能理解的方式告诉计算机如何操作多维数组。这个基于爱因斯坦求和约定的库&#xff0c;用类似自然语言的表达式替代了晦涩的API调用&#xff0c;彻底改变了深度学习工程…...