常用SQL语句总结
SQL语句
文章目录
- SQL语句
- 1 SQL语句简介
- 2 DQL(数据查询语句)
- 3 DML(数据操纵语句)
- 4 DDL(数据定义语句)
- 5 DCL(数据控制语句)
- 6 TCL(事务控制语句)
1 SQL语句简介
SQL(Structured Query Language)语言用于管理和操作关系型数据库。它包括以下几种主要的语句类型:
- 数据查询语句(Data Query Language,简称DQL):用于从数据库中检索数据的语句。常见的DQL语句是SELECT语句,用于从数据库表中查询特定的数据行和列。
- 数据操纵语句(Data Manipulation Language,简称DML):用于操作数据库中的数据的语句。常见的DML语句包括INSERT、UPDATE和DELETE,分别用于插入、更新和删除数据库中的数据行。
- 数据定义语句(Data Definition Language,简称DDL):用于定义数据库结构的语句。常见的DDL语句包括CREATE、ALTER和DROP,分别用于创建、修改和删除数据库、表、列等对象。
- 数据控制语句(Data Control Language,简称DCL):用于控制数据库用户访问权限和安全性的语句。常见的DCL语句有GRANT和REVOKE,用于授予和撤销用户对数据库对象的访问权限。
- 事务控制语句(Transaction Control Language,简称TCL):用于控制数据库事务的语句。常见的TCL语句包括COMMIT、ROLLBACK和SAVEPOINT,用于提交、回滚和设置保存点以实现事务的管理。
这些不同类型的SQL语句提供了丰富的功能和灵活性,以满足不同的数据库操作需求。开发人员通过组合和使用这些语句,可以实现数据的查询、更新、定义和安全控制等操作,从而有效地管理数据库。
2 DQL(数据查询语句)
DQL(Data Query Language)是SQL语言的一个子集,用于从数据库中查询数据。以下是一些DQL语句的示例及其应用场景:
-
SELECT:用于从数据库表中查询数据行和列。SELECT语句可以选择特定列或所有列。
示例:SELECT * FROM employees; (查询所有员工数据)
-
WHERE:用于在查询中设置条件,过滤满足条件的数据行。
示例:SELECT * FROM customers WHERE city = ‘New York’; (查询居住在纽约的客户)
-
DISTINCT:用于返回查询结果中的唯一值,去除重复的数据行。
示例:SELECT DISTINCT country FROM customers; (查询唯一的国家列表)
-
ORDER BY:用于对查询结果进行排序。
示例:SELECT * FROM products ORDER BY price DESC; (按价格降序排列产品)
-
GROUP BY:用于对查询结果进行分组汇总,常与聚合函数一起使用。
示例:SELECT department, AVG(salary) FROM employees GROUP BY department; (按部门计算平均工资)
-
JOIN:用于将多个表关联起来,通过共同的列进行匹配。
示例:SELECT * FROM orders JOIN customers ON orders.customer_id = customers.customer_id; (查询订单和相应客户信息)
-
LIMIT:用于限制查询结果返回的行数。
示例:SELECT * FROM products LIMIT 10; (查询返回前10行产品数据)
这些是DQL语句的一些常见示例,通过使用DQL语句,可以从数据库中提取所需的数据,并根据需求进行排序、过滤、分组等操作。DQL在应用程序开发中非常常见,可用于构建动态的数据查询与显示功能,提供灵活的数据检索和分析能力
3 DML(数据操纵语句)
DML(Data Manipulation Language)用于操作数据库中的数据。以下是一些DML语句的示例及其应用场景:
-
INSERT INTO:用于向数据库表中插入新的数据行。
示例:INSERT INTO employees (name, age, salary) VALUES (‘John’, 30, 5000); (向员工表插入新的员工信息)
-
UPDATE:用于更新数据库表中已有的数据行。
示例:UPDATE customers SET city = ‘London’ WHERE customer_id = 1; (将ID为1的客户的城市更新为伦敦)
-
DELETE FROM:用于删除数据库表中的数据行。
示例:DELETE FROM orders WHERE order_date < ‘2022-01-01’; (删除早于2022年1月1日的订单数据)
这些DML语句用于对数据库中的数据进行新增、更新和删除操作。在应用程序开发中,DML语句经常用于数据的持久化和维护,例如用户注册、订单处理、数据更新等场景。通过执行这些语句,可以对数据库中的数据进行操作和改变,确保数据库与应用程序的数据一致性。
需要注意的是,执行DML语句时应谨慎,遵循数据完整性和安全性的原则,并充分考虑数据修改可能带来的影响。
4 DDL(数据定义语句)
DDL(Data Definition Language)用于定义数据库结构和对象的语句。以下是一些DDL语句的示例及其应用场景:
-
CREATE TABLE:用于创建数据库表。
示例:CREATE TABLE employees (id INT, name VARCHAR(50), age INT); (创建一个名为"employees"的表,包含id、name和age字段)
-
ALTER TABLE:用于修改数据库表的结构,如添加、修改或删除列、约束等。
示例:ALTER TABLE employees ADD COLUMN salary DECIMAL(10,2); (向"employees"表中添加一个名为salary的列)
-
DROP TABLE:用于删除数据库表。
示例:DROP TABLE employees; (删除名为"employees"的表)
-
CREATE INDEX:用于创建索引,提高数据库查询的性能。
示例:CREATE INDEX idx_name ON employees (name); (在"employees"表的name列上创建一个索引)
-
CREATE VIEW:用于创建视图,类似于虚拟表,通过定义查询来简化数据访问。
示例:CREATE VIEW active_customers AS SELECT * FROM customers WHERE status = ‘active’; (创建一个名为"active_customers"的视图,显示状态为"active"的客户)
-
CREATE DATABASE:用于创建数据库。
示例:CREATE DATABASE mydb; (创建名为"mydb"的数据库)
这些DDL语句用于定义数据库的结构和对象,如表、列、索引和视图等。在数据库设计和维护中,DDL语句起着重要的作用。开发人员可以使用DDL语句来创建、修改和删除数据库对象,确保数据库结构与应用程序需求一致。需要注意的是,执行DDL语句时应谨慎,因为对数据库结构的改变可能会对现有的数据和应用程序产生影响。在生产环境中,应谨慎地执行DDL语句,并在必要时备份数据库以防止意外情况的发生。
5 DCL(数据控制语句)
DCL(Data Control Language)用于控制数据库用户访问权限和安全性的语句。以下是一些DCL语句的示例及其应用场景:
-
GRANT:用于赋予用户或用户组对数据库对象的权限。
示例:GRANT SELECT, INSERT ON employees TO user1; (将SELECT和INSERT权限授予用户user1,使其对employees表有查询和插入的权限)
-
REVOKE:用于撤销用户或用户组对数据库对象的权限。
示例:REVOKE DELETE ON employees FROM user2; (从用户user2撤销对employees表的删除权限)
-
DENY:用于拒绝用户对数据库对象的权限,与REVOKE不同之处在于,被拒绝的权限不能通过其他权限再次赋予。
示例:DENY UPDATE ON employees TO user3; (拒绝用户user3对employees表的更新权限)
-
SET ROLE:用于设置当前会话的角色。
示例:SET ROLE admin; (将当前会话设置为admin角色)
这些DCL语句用于管理数据库用户的访问权限和安全控制。通过使用这些语句,数据库管理员可以精确地控制用户对数据库对象的操作权限,实施数据安全策略,并确保只有授权的用户能够访问和修改数据。这种权限控制可以防止未经授权的用户访问敏感数据,并提高数据库的安全性。
需要注意的是,在使用DCL语句时,应考虑权限的粒度和数据库安全策略,以确保权限的正确分配和撤销。同时,定期审查数据库权限和角色设置,及时检测和纠正可能存在的安全风险。
6 TCL(事务控制语句)
TCL(Transaction Control Language)用于管理数据库事务的语句。以下是一些TCL语句的示例及其应用场景:
-
COMMIT:用于提交当前事务,将事务中的所有更改保存到数据库中。
示例:COMMIT; (提交当前事务)
-
ROLLBACK:用于回滚当前事务,撤销事务中的所有更改。
示例:ROLLBACK; (回滚当前事务)
-
SAVEPOINT:用于设置保存点,使得事务可以在特定点进行部分回滚。
示例:SAVEPOINT sp1; (设置名为sp1的保存点)
-
RELEASE SAVEPOINT:用于释放保存点。
示例:RELEASE SAVEPOINT sp1; (释放名为sp1的保存点)
这些TCL语句用于管理数据库事务的提交、回滚和保存点控制。事务是数据库中一组操作的逻辑单元,要么全部成功执行提交,要么全部失败回滚。通过使用TCL语句,可以确保数据库操作的原子性、一致性、隔离性和持久性(ACID原则),从而保证数据的完整性和可靠性。
应用程序中经常使用TCL语句来管理数据库事务,尤其是在需要确保数据一致性和完整性的业务操作中,例如转账、订单处理等。通过正确使用TCL语句,可以避免数据丢失、冲突和不一致等问题,保证数据库操作的可靠性和稳定性。
滚和保存点控制。事务是数据库中一组操作的逻辑单元,要么全部成功执行提交,要么全部失败回滚。通过使用TCL语句,可以确保数据库操作的原子性、一致性、隔离性和持久性(ACID原则),从而保证数据的完整性和可靠性。
应用程序中经常使用TCL语句来管理数据库事务,尤其是在需要确保数据一致性和完整性的业务操作中,例如转账、订单处理等。通过正确使用TCL语句,可以避免数据丢失、冲突和不一致等问题,保证数据库操作的可靠性和稳定性。
需要注意的是,在使用TCL语句时,应合理划分事务的范围,选择合适的提交点和保存点,以及根据实际需求进行正确的提交或回滚操作。这有助于维护数据的一致性,并避免不必要的数据损失。
相关文章:
常用SQL语句总结
SQL语句 文章目录 SQL语句1 SQL语句简介2 DQL(数据查询语句)3 DML(数据操纵语句)4 DDL(数据定义语句)5 DCL(数据控制语句)6 TCL(事务控制语句) 1 SQL语句简介…...
arm交叉编译lmbench
一、下载lmbench www.bitmover.com/lmbench 官网下载,http://www.bitmover.com/lmbench/lmbench3.tar.gz 我没有下载下来,找的别人的百度云下载 链接: https://pan.baidu.com/s/1tGo1clCqY-jQPN8G1eWSsg 提取码: f6jd 二、修改makefile 修改三个文件…...
ExtJs 7.7.0 下载方法与去除trial水印
背景 最近发现Sencha ExtJs发布了ExtJs7.7.0版本,立刻下载了SDK包,许多朋友不知如何下载,如何去除右上角的trial水印。本文讲下相关下载技巧与方法。 下载SDK 首先需要申请试用,申请地址如下,需要注意可能需要梯子&…...
Android11开发规划
文章目录 规划总结规划 提示:这里可以添加本文要记录的大概内容: 从本文开始,会介绍如何移植瑞芯微提供的Android11源码到自己的RK3568的板子上 下面是整个Android开发的规划: 包括以下部分: … 一、移植部分 下载编译瑞芯微提供的源码 瑞芯微原厂源码目录介绍...
活动隔断在现在酒店运用的方式
活动隔断是一种在酒店内部划分空间的方式,用于实现不同活动的隔离和隐私。现代酒店常用的活动隔断方式有以下几种: 1. 固定隔断:使用墙体、固定屏风或者板材等材料,将空间划分为不同的房间或区域。这种方式常用于划分客房、会议室…...
Jenkins工具系列 —— 插件 钉钉发送消息
文章目录 安装插件 Ding TalkJenkins 配置钉钉机器人钉钉APP配置项目中启动钉钉通知功能 安装插件 Ding Talk 点击 左侧的 Manage Jenkins —> Plugins ——> 左侧的 Available plugins Jenkins 配置钉钉机器人 点击 左侧的 Manage Jenkins ,拉到最后 钉…...
LeetCode 26 题:删除有序数组的重复项
思路 在写这一个题时,我突然想到了Python中的 set()函数可能会有大用处,便选择了用Python写。 set()函数可以将列表转化为集合,集合会保证元素的单一性,所以会自动删去相同字符。 …...
优雅地切换node版本(windows)
文章目录 1、下载并安装nvm2、nvm的使用3、处理npm版本与nodejs版本不匹配问题(通常不会有这个问题) 1、下载并安装nvm 卸载已安装的node:控制面板-程序-找到node并卸载 通常在控制面板中卸载后,nodejs目录、环境变量、注册表就自…...
反诈:吴明军、黄亮领导的WIN生活资金盘,大家警惕防范此类诈骗
消息已经证实!“米粒”无法变现,数以万计的会员深套“315万民商城”,维权艰难,血汗钱无法讨回。 其实这一点笔者并不感到太意外,因为万民商城资金传销盘的定性之前就已经发文揭露过,并反复提醒大家小心警惕…...
shell、bash的关系及bash的特性(一)
一、概念 shell是壳,是运行在终端中的文本互动程序。Shell相当于是一个翻译,把我们在计算机上的操作命令,翻译为计算机可识别的二进制命令,传递给内核,以便调用计算机硬件执行相关的操作;同时,计…...
【问题随记】
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个采样步骤越多每个步之间的降噪越小,减少采样过程中的截断误差,结果越好 学微分方程求解器 Euler(最简单的采样器,采样过程中不加随机噪声,根据采样计划来执行每个步骤中的噪声,并使…...
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体系结构定义了可选的浮点扩展,分别称为RVF、RVD和RVQ,用于操作单精度、双精度和四倍精度的浮点数。RVF/D/Q定义了32个浮点寄存器,f0到f31,它们的宽度分别为32位、64位或128位。当一个处理器实现了多个浮点扩展时࿰…...
前端生成图片验证码怎么做?
##题记:我们实现一个功能首先想一下我们需要做哪些工作,比如我们需要生成一个随机的图片验证码,我们需要一个就是点击事件获取验证码,通过接口我们去获取图片路径进行渲染就行,这里边还要牵扯一件事情就是获取一个随机…...
【Java】springboot框架 粮油质量溯源MES生产加工管理系统源码
粮油质量溯源MES生产加工管理系统源码,实现一物一码,全程追溯,正向追踪,逆向溯源。技术架构: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?
内置构造函数还未更新完,待更新。。。 js创建对象的三种方式?构造函数是什么?new操作符具体干了什么?为什么字符串可以使用length? 内置构造函数还未更新完,待更新。。。一、利用对象字面量创建对象二、利用…...
LabVIEW深度相机与三维定位实战(下)
🏡博客主页: virobotics的CSDN博客:LabVIEW深度学习、人工智能博主 🎄所属专栏:『LabVIEW深度学习实战』 🍻上期文章:『LabVIEW深度相机与三维定位实战(上)』 &#…...
【基础类】—CSS盒模型的全面认识
一、基本概念:标准IE模型 盒模型:margin border padding content 标准模型:将元素的宽度和高度仅计算为内容区域的尺寸(content-box,默认) 当CSS盒模型为 标准盒模型 (box-sizing: conten…...
设计模式和设计原则回顾
设计模式和设计原则回顾 23种设计模式是设计原则的完美体现,设计原则设计原则是设计模式的理论基石, 设计模式 在经典的设计模式分类中(如《设计模式:可复用面向对象软件的基础》一书中),总共有23种设计模式,分为三大类: 一、创建型模式(5种) 1. 单例模式(Sing…...
React hook之useRef
React useRef 详解 useRef 是 React 提供的一个 Hook,用于在函数组件中创建可变的引用对象。它在 React 开发中有多种重要用途,下面我将全面详细地介绍它的特性和用法。 基本概念 1. 创建 ref const refContainer useRef(initialValue);initialValu…...
前端倒计时误差!
提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...
在Ubuntu中设置开机自动运行(sudo)指令的指南
在Ubuntu系统中,有时需要在系统启动时自动执行某些命令,特别是需要 sudo权限的指令。为了实现这一功能,可以使用多种方法,包括编写Systemd服务、配置 rc.local文件或使用 cron任务计划。本文将详细介绍这些方法,并提供…...
【Zephyr 系列 10】实战项目:打造一个蓝牙传感器终端 + 网关系统(完整架构与全栈实现)
🧠关键词:Zephyr、BLE、终端、网关、广播、连接、传感器、数据采集、低功耗、系统集成 📌目标读者:希望基于 Zephyr 构建 BLE 系统架构、实现终端与网关协作、具备产品交付能力的开发者 📊篇幅字数:约 5200 字 ✨ 项目总览 在物联网实际项目中,**“终端 + 网关”**是…...
c#开发AI模型对话
AI模型 前面已经介绍了一般AI模型本地部署,直接调用现成的模型数据。这里主要讲述讲接口集成到我们自己的程序中使用方式。 微软提供了ML.NET来开发和使用AI模型,但是目前国内可能使用不多,至少实践例子很少看见。开发训练模型就不介绍了&am…...
3-11单元格区域边界定位(End属性)学习笔记
返回一个Range 对象,只读。该对象代表包含源区域的区域上端下端左端右端的最后一个单元格。等同于按键 End 向上键(End(xlUp))、End向下键(End(xlDown))、End向左键(End(xlToLeft)End向右键(End(xlToRight)) 注意:它移动的位置必须是相连的有内容的单元格…...
rnn判断string中第一次出现a的下标
# coding:utf8 import torch import torch.nn as nn import numpy as np import random import json""" 基于pytorch的网络编写 实现一个RNN网络完成多分类任务 判断字符 a 第一次出现在字符串中的位置 """class TorchModel(nn.Module):def __in…...
【Java学习笔记】BigInteger 和 BigDecimal 类
BigInteger 和 BigDecimal 类 二者共有的常见方法 方法功能add加subtract减multiply乘divide除 注意点:传参类型必须是类对象 一、BigInteger 1. 作用:适合保存比较大的整型数 2. 使用说明 创建BigInteger对象 传入字符串 3. 代码示例 import j…...
React---day11
14.4 react-redux第三方库 提供connect、thunk之类的函数 以获取一个banner数据为例子 store: 我们在使用异步的时候理应是要使用中间件的,但是configureStore 已经自动集成了 redux-thunk,注意action里面要返回函数 import { configureS…...
