数据库中的 DDL、DML 和 DCL
数据库中的 DDL、DML 和 DCL
在数据库的定义与操作中,DDL、DML 和 DCL 是三个核心概念,分别用于不同层面的数据库管理与操作。
1. DDL(Data Definition Language) - 数据定义语言
定义
DDL 用于定义和管理数据库的结构或模式。它负责创建、修改、删除数据库对象(如表、视图、索引等)。
常见操作
CREATE
:创建数据库对象(如表、视图、索引)。CREATE TABLE students (id INT PRIMARY KEY,name VARCHAR(50),age INT );
ALTER
:修改数据库对象的结构。ALTER TABLE students ADD COLUMN gender VARCHAR(10);
DROP
:删除数据库对象。DROP TABLE students;
TRUNCATE
:清空表的数据,但保留表结构。TRUNCATE TABLE students;
特点
- DDL 操作通常会隐式提交事务,不能回滚。
- 改变的是数据库结构,而不是数据内容。
高级特性
- 模式迁移工具支持:与数据库迁移工具(如 Liquibase、Flyway)集成,可实现版本化管理。
- 生成脚本:支持自动生成脚本以备份和迁移数据库。
- 支持多种存储引擎:可根据需求选择不同的存储引擎(如 InnoDB 或 MyISAM)。
2. DML(Data Manipulation Language) - 数据操作语言
定义
DML 用于操作数据库中的数据,包括插入、更新、删除和查询等操作。
常见操作
SELECT
:查询数据。SELECT * FROM students;
INSERT
:插入数据。INSERT INTO students (id, name, age) VALUES (1, 'Alice', 20);
UPDATE
:更新数据。UPDATE students SET age = 21 WHERE id = 1;
DELETE
:删除数据。DELETE FROM students WHERE id = 1;
特点
- DML 操作需要显式提交事务(如
COMMIT
或ROLLBACK
)。 - 主要用于操作数据内容,而不是结构。
高级特性
- 批量操作:支持批量插入、更新和删除,提高效率。
- 事务控制:结合事务管理,可以确保数据操作的原子性、一致性、隔离性和持久性(ACID)。
- 优化查询:支持查询优化器,提供索引、分区和子查询等高级功能。
- 多表联结:支持复杂的多表关联操作(如 JOIN)。
3. DCL(Data Control Language) - 数据控制语言
定义
DCL 用于控制对数据库的访问权限,管理用户权限和安全性。
常见操作
GRANT
:授予用户权限。GRANT SELECT, INSERT ON students TO user1;
REVOKE
:撤销用户权限。REVOKE INSERT ON students FROM user1;
特点
- DCL 操作通常需要管理员权限。
- 涉及数据库的安全性和权限控制。
高级特性
- 角色管理:支持角色的创建和分配,简化权限管理。
- 细粒度权限控制:可以精确到表、列或行级别授予权限。
- 审计功能:记录权限变更和访问情况,增强数据库安全性。
- 数据屏蔽:结合数据安全功能,可以对敏感数据进行屏蔽处理。
主要区别总结
类别 | 全称 | 作用 | 关键操作 | 影响范围 |
---|---|---|---|---|
DDL | 数据定义语言 | 定义数据库结构 | CREATE, ALTER, DROP | 数据库结构 |
DML | 数据操作语言 | 操作和管理数据 | SELECT, INSERT, UPDATE, DELETE | 数据库中的数据内容 |
DCL | 数据控制语言 | 管理用户权限和安全性 | GRANT, REVOKE | 数据库访问权限 |
相关文章:
数据库中的 DDL、DML 和 DCL
数据库中的 DDL、DML 和 DCL 在数据库的定义与操作中,DDL、DML 和 DCL 是三个核心概念,分别用于不同层面的数据库管理与操作。 1. DDL(Data Definition Language) - 数据定义语言 定义 DDL 用于定义和管理数据库的结构或模式。…...
OKR 极简史及理解
大家读完觉得有帮助记得点赞和关注!!! 目录 MBO SMART 和 KPI OKR 1. 什么是 OKR? 1.1 Objectives(目标) 1.2 Key Results(关键成果) KR 应当是困难的,但并非不可…...
电商项目-基于ElasticSearch实现商品搜索功能(四)
一、 高亮显示 1.1 高亮分析 高亮显示是指根据商品关键字搜索商品的时候,显示的页面对关键字给定了特殊样式,让它显示更加突出,如商品搜索中,关键字变成了红色,其实就是给定了红色样式。 1.2 高亮搜索实现步骤解析 …...
TCP封装数据帧
void *send_data(void *arg) //这是一个发送数据的线程 {int sockfd init_tcp_cli("192.168.0.148",50000) //传ip和port,port 50000是因为大概前五万都被其它服务所占用,50000后是私人ipif(sockfd < 0){return NULL;}unsigned char …...
数据结构与算法之二叉树: LeetCode 515. 在每个树行中找最大值 (Ts版)
在每个树行中找最大值 https://leetcode.cn/problems/find-largest-value-in-each-tree-row/description/ 描述 给定一棵二叉树的根节点 root ,请找出该二叉树中每一层的最大值 示例1 输入: root [1,3,2,5,3,null,9] 输出: [1,3,9]示例2 输入: root [1,2,3]…...
百度视频搜索架构演进
导读 随着信息技术的迅猛发展,搜索引擎作为人们获取信息的主要途径,其背后的技术架构也在不断演进。本文详细阐述了近年来视频搜索排序框架的重大变革,特别是在大模型技术需求驱动下,如何从传统的多阶段级联框架逐步演变为更加高…...
构造函数的原型原型链
代码示例 // 定义一个构造函数 Test function Test() {this.name 张三 }; //向构造函数的原型添加一个属性 age18 Test.prototype.age 18;//使用构造函数 Test 来实例化一个新对象 const test new Test();//向 Object.prototype 添加了一个名为 sex 的属性,其值…...
nginx反向代理及负载均衡
华子目录 nginx反向代理功能http反向代理反向代理配置参数proxy_pass的注意事项案例:反向代理单台后端服务器案例:反向代理实现动静分离案例:反向代理的缓存功能非缓存场景下测压准备缓存缓存场景下测压验证缓存文件 反向代理负载均衡&#x…...
单片机实物成品-011 火灾监测
火灾监测(20个版本) 版本20: oled显示温湿度烟雾浓度火焰传感器天然气浓度窗户风扇水泵排气系统声光报警语音播报按键WIFI模块 ----------------------------------------------------------------------------- https://www.bilibili.com…...
使用 Docker 在 Alpine Linux 下部署 Caddy 服务器
简介 在现代 web 开发中,选择合适的 web 服务器至关重要。Caddy 是一个功能强大的现代化 HTTP/2 服务器,支持自动 HTTPS,配置简单,适合开发和生产环境。Docker 则为我们提供了一种轻量级的容器化技术,使得应用程序的部…...
每日十题八股-2025年1月12日
1.为什么四次挥手之后要等2MSL? 2.服务端出现大量的timewait有哪些原因? 3.TCP和UDP区别是什么? 4.TCP为什么可靠传输 5.怎么用udp实现http? 6.tcp粘包怎么解决? 7.TCP的拥塞控制介绍一下? 8.描述一下打开百度首页后发生的网络过…...
Python中定位包含特定文本信息的元素
目录 一、为什么需要定位包含文本信息的元素 二、使用Selenium定位包含文本的元素 1. 使用find_element_by_link_text 2. 使用find_element_by_partial_link_text 3. 使用XPath定位包含文本的元素 4. 使用CSS选择器定位包含文本的元素 三、使用BeautifulSoup定位包含文本…...
uniapp实现H5页面内容居中与两边留白,打造类似微信公众号阅读体验
在 UniApp 中,由于需要兼容多端应用,我们通常使用 rpx 作为尺寸单位。然而,在某些情况下,如需要实现内容居中且两边留白时,直接使用 rpx 可能会带来一些限制。这时,我们可以考虑使用 px 或 rem 等单位&…...
极品飞车6里的赛道简介
极品飞车里有很多赛道,赛道分为前向赛道Forward、后向赛道Backward。前向赛道Forward是从A点到B点;后向赛道Backward是前向赛道的逆过程,即从B点到A点。这里介绍极品飞车6的赛道长度、中英文名称翻译、难度等级。 序号赛道英文名赛道中文名总长(km)急弯难度等级1Alpine Trai…...
SAP推出云端ERP解决方案,加速零售行业数字化转型
2025年1月9日,SAP发布了一款专为零售行业设计的云端ERP行业解决方案——S/4HANA Cloud Public Edition,进一步推动企业向云端迁移。这款解决方案旨在集中运营数据,整合财务、采购和商品管理流程,以帮助零售企业优化运营效率。 核…...
Python爬虫进阶——案例:模拟bilibili登录)
主要内容:模拟bilibili账号密码登录,不要实现的的实现功能是单击登录按钮,切换登录方式, 输入账号和密码,然后完成图片点击验证,最后单击立即登录按钮。 1、第一步:通过selenium模块访问bilibi…...
什么是数据分析?
什么是数据分析? 数据分析(Data Analysis)是指通过对数据进行收集、整理、处理、建模和解读,以揭示数据中的有用信息、支持决策和解决实际问题的过程。它是一门将数据转化为知识的学科,广泛应用于商业、科学研究、医疗…...
基于springboot的课程作业管理系统源码(springboot+vue+mysql)
风定落花生,歌声逐流水,大家好我是风歌,混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的课程作业管理系统。项目源码以及部署相关请联系风歌,文末附上联系信息 。 项目简介: 可以管理首页、个人中心…...
多线程之旅:属性及其基本操作
上次分享到了,多线程中是是如何创建的,那么接下来,小编继续分享下多线程的相关知识。 多线程中的一些基本属性。 基本属性 属性获取方法IDgetId()名称getName()状态getState()优先级getPriority()是否后台线程isDemo()是否存活isAlive()是…...
数据表中的数据插入、更新和删除
文章目录 一、表的插入二、更新表中的数据记录三、删除表中的数据记录 一、表的插入 插入数据记录是常见的数据操作,可以显示向表中增加的新的数据记录。在MySQL中可以通过“INSERT INTO”语句来实现插入数据记录,该SQL语句可以通过如下4种方式使用&…...
Q_OBJECT宏报错的问题
在Qt中继承QObject,并且加上Q_OBJECT宏,有时候会报错,比如我的错误: error: debug/httpmgr.o:httpmgr.cpp:(.rdata$.refptr._ZTV7HttpMgr[.refptr._ZTV7HttpMgr]0x0): undefined reference to vtable for HttpMgr 意思是没有虚…...
提升性能300ms:深入解析Spring多表联接查询优化与SQL调优实战
优化所需知识点(必须掌握) 索引篇 explain命令 重点:这是后续分析是否使用索引以及使用是否恰当的工具 作用:查看sql的执行计划,可以看sql语句是否使用了索引,索引的使用情况,以及sql的性能。 …...
增量导入和全量导入的区别是什么?
定义 全量导入:是指将数据源中的所有数据一次性全部导入到目标系统中。例如,一个电商公司要将其旧数据库中的所有商品信息(包括商品名称、价格、库存等)全部迁移到新的数据库系统中,这个过程就是全量导入。这种方式会覆…...
【百度智能云客悦智能客服】搭建AI agent智能对话 - 购车推荐
前期准备 平台链接:https://keyue.cloud.baidu.com/ 一、开始创建 二、会话流程配置 我们以购车推荐的案例,来进行 AI agent 配置演示 1.添加开场白 在 起始主题 画布中,我们可以配置 AI agent 的开场白,画布左侧默认有 开始 …...
【HTML+CSS+JS+VUE】web前端教程-3-标题标签
标题介绍与应用 标题是通过<h1>-<h6>标签进行定义的 <h1>定义最大的标题 <h6>定义最小的标题<h1...
逐笔成交逐笔委托Level2高频数据下载和分析:20250102
level2逐笔成交逐笔委托下载 链接: https://pan.baidu.com/s/1p7OOj5p-QGFrWkt6KKoYng?pwd7f4g 提取码: 7f4g Level2逐笔成交逐笔委托数据分享下载 通过Level2逐笔成交和逐笔委托这种每一笔的毫秒级别的数据可以分析出很多有用的点,包括主力意图,虚假动…...
JavaEE之线程池
前面我们了解了多个任务可以通过创建多个线程去处理,达到节约时间的效果,但是每一次的线程创建和销毁也是会消耗计算机资源的,那么我们是否可以将线程进阶一下,让消耗计算机的资源尽可能缩小呢?线程池可以达到此效果&a…...
java 中 main 方法使用 KafkaConsumer 拉取 kafka 消息如何禁止输出 debug 日志
pom 依赖: <dependency><groupId>org.springframework.kafka</groupId><artifactId>spring-kafka</artifactId><version>2.5.14.RELEASE</version> </dependency> 或者 <dependency><groupId>org.ap…...
【后端面试总结】Golang可能的内存泄漏场景及应对策略
Golang可能的内存泄漏场景及应对策略 一、引言 Golang作为一种高性能、并发友好的编程语言,其内置的垃圾回收机制极大地简化了内存管理。然而,这并不意味着开发者可以完全忽视内存泄漏问题。在实际开发中,由于不当的资源管理、循环引用、以…...
Java 反射机制详解
在 Java 编程世界中,反射机制犹如一把神奇的钥匙,它能够打开许多隐藏在代码深处的 “大门”,让开发者突破常规的限制,实现一些极具灵活性的功能。今天,就跟随我一同深入探究 Java 反射机制的奥秘。 一、什么是反射 反…...
网站建设总流程/网络营销技巧培训班
随时随地阅读更多技术实战干货,获取项目源码、学习资料,请关注源代码社区公众号(ydmsq666)、QQ技术交流群(183198395)。 在网上看到一篇多渠道打包APK的,思路是没问题的,原文地址:http://www.cnblogs.com/yyyyy5101/ar…...
龙岩新闻网/长沙官网seo推广
二分查找: 引用网上大神的一句话: Although the basic idea of binary search is comparatively straightforward, the details can be surprisingly tricky... 这句话可以这样理解:思路很简单,细节是魔鬼。 所以本文中讲述的都是…...
石家庄建设网站公司简介/世界互联网峰会
迭代器(Iterator)和生成器(Generator) 前言 最早知道迭代器是在学java的时候,那时候遍历map只能使用迭代器。具体怎么使用我现在忘得差不多了。其他语言应该大部分都有迭代器,甚至SQL也有cursor(游标)。 …...
桂林做网站公司/百度认证号码平台
github 其实博主在一年前就已入门stm32,但是由于当年C语言和相关知识比较薄弱,仅仅是跟着原子教程学习了前面的外设内容(此处并没有任何对原子有任何冒犯的意思,原子的教程是十分好的,论坛上资源也十分充足),并没有对s…...
什么网站可以做2.5D场景/最近发生的新闻事件
mail转载于:https://blog.51cto.com/panzhengming/1549017...
济南骏驰网站开发/优化网站软文
http://www.dbanotes.net/arch/yahoo_arch.html旧金山举行的 QCon 会议带给我们很多新鲜的信息。虽然没机会参加,但是看看各个网站"晒架构"也是个比较过瘾的事情。请参观并收藏这个页面:Architectures youve always wondered about。 eBay 的架…...