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

数据库中的 DDL、DML 和 DCL

数据库中的 DDL、DML 和 DCL

在数据库的定义与操作中,DDLDMLDCL 是三个核心概念,分别用于不同层面的数据库管理与操作。


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 操作需要显式提交事务(如 COMMITROLLBACK)。
  • 主要用于操作数据内容,而不是结构。

高级特性

  • 批量操作:支持批量插入、更新和删除,提高效率。
  • 事务控制:结合事务管理,可以确保数据操作的原子性、一致性、隔离性和持久性(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&#xff0c;port 50000是因为大概前五万都被其它服务所占用&#xff0c;50000后是私人ipif(sockfd < 0){return NULL;}unsigned char …...

数据结构与算法之二叉树: LeetCode 515. 在每个树行中找最大值 (Ts版)

在每个树行中找最大值 https://leetcode.cn/problems/find-largest-value-in-each-tree-row/description/ 描述 给定一棵二叉树的根节点 root &#xff0c;请找出该二叉树中每一层的最大值 示例1 输入: root [1,3,2,5,3,null,9] 输出: [1,3,9]示例2 输入: root [1,2,3]…...

百度视频搜索架构演进

导读 随着信息技术的迅猛发展&#xff0c;搜索引擎作为人们获取信息的主要途径&#xff0c;其背后的技术架构也在不断演进。本文详细阐述了近年来视频搜索排序框架的重大变革&#xff0c;特别是在大模型技术需求驱动下&#xff0c;如何从传统的多阶段级联框架逐步演变为更加高…...

构造函数的原型原型链

代码示例 // 定义一个构造函数 Test function Test() {this.name 张三 }; //向构造函数的原型添加一个属性 age18 Test.prototype.age 18;//使用构造函数 Test 来实例化一个新对象 const test new Test();//向 Object.prototype 添加了一个名为 sex 的属性&#xff0c;其值…...

nginx反向代理及负载均衡

华子目录 nginx反向代理功能http反向代理反向代理配置参数proxy_pass的注意事项案例&#xff1a;反向代理单台后端服务器案例&#xff1a;反向代理实现动静分离案例&#xff1a;反向代理的缓存功能非缓存场景下测压准备缓存缓存场景下测压验证缓存文件 反向代理负载均衡&#x…...

单片机实物成品-011 火灾监测

火灾监测&#xff08;20个版本&#xff09; 版本20&#xff1a; oled显示温湿度烟雾浓度火焰传感器天然气浓度窗户风扇水泵排气系统声光报警语音播报按键WIFI模块 ----------------------------------------------------------------------------- https://www.bilibili.com…...

使用 Docker 在 Alpine Linux 下部署 Caddy 服务器

简介 在现代 web 开发中&#xff0c;选择合适的 web 服务器至关重要。Caddy 是一个功能强大的现代化 HTTP/2 服务器&#xff0c;支持自动 HTTPS&#xff0c;配置简单&#xff0c;适合开发和生产环境。Docker 则为我们提供了一种轻量级的容器化技术&#xff0c;使得应用程序的部…...

每日十题八股-2025年1月12日

1.为什么四次挥手之后要等2MSL? 2.服务端出现大量的timewait有哪些原因? 3.TCP和UDP区别是什么&#xff1f; 4.TCP为什么可靠传输 5.怎么用udp实现http&#xff1f; 6.tcp粘包怎么解决&#xff1f; 7.TCP的拥塞控制介绍一下&#xff1f; 8.描述一下打开百度首页后发生的网络过…...

Python中定位包含特定文本信息的元素

目录 一、为什么需要定位包含文本信息的元素 二、使用Selenium定位包含文本的元素 1. 使用find_element_by_link_text 2. 使用find_element_by_partial_link_text 3. 使用XPath定位包含文本的元素 4. 使用CSS选择器定位包含文本的元素 三、使用BeautifulSoup定位包含文本…...

uniapp实现H5页面内容居中与两边留白,打造类似微信公众号阅读体验

在 UniApp 中&#xff0c;由于需要兼容多端应用&#xff0c;我们通常使用 rpx 作为尺寸单位。然而&#xff0c;在某些情况下&#xff0c;如需要实现内容居中且两边留白时&#xff0c;直接使用 rpx 可能会带来一些限制。这时&#xff0c;我们可以考虑使用 px 或 rem 等单位&…...

极品飞车6里的赛道简介

极品飞车里有很多赛道,赛道分为前向赛道Forward、后向赛道Backward。前向赛道Forward是从A点到B点;后向赛道Backward是前向赛道的逆过程,即从B点到A点。这里介绍极品飞车6的赛道长度、中英文名称翻译、难度等级。 序号赛道英文名赛道中文名总长(km)急弯难度等级1Alpine Trai…...

SAP推出云端ERP解决方案,加速零售行业数字化转型

2025年1月9日&#xff0c;SAP发布了一款专为零售行业设计的云端ERP行业解决方案——S/4HANA Cloud Public Edition&#xff0c;进一步推动企业向云端迁移。这款解决方案旨在集中运营数据&#xff0c;整合财务、采购和商品管理流程&#xff0c;以帮助零售企业优化运营效率。 核…...

Python爬虫进阶——案例:模拟bilibili登录)

主要内容&#xff1a;模拟bilibili账号密码登录&#xff0c;不要实现的的实现功能是单击登录按钮&#xff0c;切换登录方式&#xff0c; 输入账号和密码&#xff0c;然后完成图片点击验证&#xff0c;最后单击立即登录按钮。 1、第一步&#xff1a;通过selenium模块访问bilibi…...

什么是数据分析?

什么是数据分析&#xff1f; 数据分析&#xff08;Data Analysis&#xff09;是指通过对数据进行收集、整理、处理、建模和解读&#xff0c;以揭示数据中的有用信息、支持决策和解决实际问题的过程。它是一门将数据转化为知识的学科&#xff0c;广泛应用于商业、科学研究、医疗…...

基于springboot的课程作业管理系统源码(springboot+vue+mysql)

风定落花生&#xff0c;歌声逐流水&#xff0c;大家好我是风歌&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的课程作业管理系统。项目源码以及部署相关请联系风歌&#xff0c;文末附上联系信息 。 项目简介&#xff1a; 可以管理首页、个人中心…...

多线程之旅:属性及其基本操作

上次分享到了&#xff0c;多线程中是是如何创建的&#xff0c;那么接下来&#xff0c;小编继续分享下多线程的相关知识。 多线程中的一些基本属性。 基本属性 属性获取方法IDgetId()名称getName()状态getState()优先级getPriority()是否后台线程isDemo()是否存活isAlive()是…...

数据表中的数据插入、更新和删除

文章目录 一、表的插入二、更新表中的数据记录三、删除表中的数据记录 一、表的插入 插入数据记录是常见的数据操作&#xff0c;可以显示向表中增加的新的数据记录。在MySQL中可以通过“INSERT INTO”语句来实现插入数据记录&#xff0c;该SQL语句可以通过如下4种方式使用&…...

三维GIS开发cesium智慧地铁教程(5)Cesium相机控制

一、环境搭建 <script src"../cesium1.99/Build/Cesium/Cesium.js"></script> <link rel"stylesheet" href"../cesium1.99/Build/Cesium/Widgets/widgets.css"> 关键配置点&#xff1a; 路径验证&#xff1a;确保相对路径.…...

QMC5883L的驱动

简介 本篇文章的代码已经上传到了github上面&#xff0c;开源代码 作为一个电子罗盘模块&#xff0c;我们可以通过I2C从中获取偏航角yaw&#xff0c;相对于六轴陀螺仪的yaw&#xff0c;qmc5883l几乎不会零飘并且成本较低。 参考资料 QMC5883L磁场传感器驱动 QMC5883L磁力计…...

基于Flask实现的医疗保险欺诈识别监测模型

基于Flask实现的医疗保险欺诈识别监测模型 项目截图 项目简介 社会医疗保险是国家通过立法形式强制实施&#xff0c;由雇主和个人按一定比例缴纳保险费&#xff0c;建立社会医疗保险基金&#xff0c;支付雇员医疗费用的一种医疗保险制度&#xff0c; 它是促进社会文明和进步的…...

【OSG学习笔记】Day 16: 骨骼动画与蒙皮(osgAnimation)

骨骼动画基础 骨骼动画是 3D 计算机图形中常用的技术&#xff0c;它通过以下两个主要组件实现角色动画。 骨骼系统 (Skeleton)&#xff1a;由层级结构的骨头组成&#xff0c;类似于人体骨骼蒙皮 (Mesh Skinning)&#xff1a;将模型网格顶点绑定到骨骼上&#xff0c;使骨骼移动…...

关于 WASM:1. WASM 基础原理

一、WASM 简介 1.1 WebAssembly 是什么&#xff1f; WebAssembly&#xff08;WASM&#xff09; 是一种能在现代浏览器中高效运行的二进制指令格式&#xff0c;它不是传统的编程语言&#xff0c;而是一种 低级字节码格式&#xff0c;可由高级语言&#xff08;如 C、C、Rust&am…...

k8s业务程序联调工具-KtConnect

概述 原理 工具作用是建立了一个从本地到集群的单向VPN&#xff0c;根据VPN原理&#xff0c;打通两个内网必然需要借助一个公共中继节点&#xff0c;ktconnect工具巧妙的利用k8s原生的portforward能力&#xff0c;简化了建立连接的过程&#xff0c;apiserver间接起到了中继节…...

OpenLayers 分屏对比(地图联动)

注&#xff1a;当前使用的是 ol 5.3.0 版本&#xff0c;天地图使用的key请到天地图官网申请&#xff0c;并替换为自己的key 地图分屏对比在WebGIS开发中是很常见的功能&#xff0c;和卷帘图层不一样的是&#xff0c;分屏对比是在各个地图中添加相同或者不同的图层进行对比查看。…...

使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台

🎯 使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台 📌 项目背景 随着大语言模型(LLM)的广泛应用,开发者常面临多个挑战: 各大模型(OpenAI、Claude、Gemini、Ollama)接口风格不统一;缺乏一个统一平台进行模型调用与测试;本地模型 Ollama 的集成与前…...

C语言中提供的第三方库之哈希表实现

一. 简介 前面一篇文章简单学习了C语言中第三方库&#xff08;uthash库&#xff09;提供对哈希表的操作&#xff0c;文章如下&#xff1a; C语言中提供的第三方库uthash常用接口-CSDN博客 本文简单学习一下第三方库 uthash库对哈希表的操作。 二. uthash库哈希表操作示例 u…...

Oracle11g安装包

Oracle 11g安装包 适用于windows系统&#xff0c;64位 下载路径 oracle 11g 安装包...