首页 > 其他分享 >数据DML、DDL、DQL 、DCL说明

数据DML、DDL、DQL 、DCL说明

时间:2024-08-22 11:29:08浏览次数:7  
标签:DCL name 数据库 DML 授予 user DDL table 权限

目录

 

一、概述

二、作用和说明

三、用法示例

1. DML

2. DDL

3. DQL

4. DCL

4.1 授予权限

4.1.1 授予查询权限

4.1.2 授予所有权限

4.1.3 授予数据库级别的所有权限

4.2 撤销权限

4.2.1 撤销查询权限

4.2.2 撤销所有权限

4.3 授予角色权限

4.3.1 授予角色

4.3.2 撤销角色

4.4 授予特定类型的权限

4.4.1 授予插入权限

4.4.2 授予更新权限

4.4.3 授予删除权限

四、注意事项:


一、概述

        数据库DML、DDL、DQL 和 DCL 是数据库操作语言的四种主要类型,分别对应数据操纵、数据定义、数据查询和数据控制。

二、作用和说明

  1. DML (Data Manipulation Language) 数据操纵语言

    • 用于对数据库中的数据进行增加、修改、删除等操作。
    • 包括 INSERTUPDATEDELETE 等语句。
  2. DDL (Data Definition Language) 数据定义语言

    • 用于定义和管理数据库的结构,包括创建、修改和删除数据库对象。
    • 包括 CREATEALTERDROP 等语句。
  3. DQL (Data Query Language) 数据查询语言

    • 用于查询和检索数据库中的数据。
    • 主要包括 SELECT 语句,用于从数据库表中检索数据。
  4. DCL (Data Control Language) 数据控制语言

    • 用于定义数据库的安全策略和访问权限,控制用户对数据的访问。
    • 包括 GRANTREVOKE 语句,用于授予或撤销用户的权限。

三、用法示例

1. DML(MySql)

        DML 是指对数据库中的数据进行增加修改删除等操作

-- 插入新数据
INSERT INTO volvo.table_test
(id, update_time, id_value, id_name)
VALUES(0, '', '', '');

-- 更新现有数据。
UPDATE volvo.table_test
SET update_time='', id_value='', id_name=''
WHERE id=0;

-- :删除数据。
DELETE FROM volvo.table_test
WHERE id=0;

2. DDL(MySql)

        DDL 是指修改或定义数据库的表结构、视图、索引等操作命令。

-- 创建新表
CREATE TABLE `table_test` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `update_time` varchar(64) DEFAULT NULL,
  `id_value` varchar(64) DEFAULT NULL,
  `id_name` varchar(64) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

-- 添加列
ALTER TABLE demo.table_test ADD Column1 varchar(100) NULL;

-- 删除表
DROP TABLE demo.table_test;

-- 新建索引
CREATE INDEX table_test_id_value_IDX USING BTREE ON demo.table_test (id_value);

-- 创建视图
CREATE VIEW table_view AS
SELECT id,id_value
FROM table_test
WHERE id = 1;

3. DQL(MySql)

        DQL一般都是指的查询数据库中的数据,不修改数据

-- 查询数据
select * from table_test where id = 1;

4. DCL

        DCL数据库中的DCL(Data Control Language,数据控制语言)语句用于定义数据库的安全策略和访问权限,主要包括GRANTREVOKE两个关键字,控制数据库的访问权限

4.1 授予权限

4.1.1 授予查询权限
  • 这条语句授予 user_name 用户对 database_name 数据库中 table_name 表的查询权限。
-- 这条语句授予user_name用户对database_name数据库中table_name表的查询权限。
GRANT SELECT ON database_name.table_name TO user_name;
4.1.2 授予所有权限
  • 这条语句授予 user_name 用户对 database_name 数据库中 table_name 表的所有权限。
GRANT ALL PRIVILEGES ON database_name.table_name TO user_name;
4.1.3 授予数据库级别的所有权限
  • 这条语句授予 user_name 用户对 database_name 数据库中所有表的所有权限。
GRANT ALL PRIVILEGES ON database_name.* TO user_name;

4.2 撤销权限

4.2.1 撤销查询权限
  • 这条语句撤销 user_name 用户对 database_name 数据库中 table_name 表的查询权限。
REVOKE SELECT ON database_name.table_name FROM user_name;
4.2.2 撤销所有权限
  • 这条语句撤销 user_name 用户对 database_name 数据库中 table_name 表的所有权限。
REVOKE ALL PRIVILEGES ON database_name.table_name FROM user_name;

4.3 授予角色权限

4.3.1 授予角色
  • 这条语句授予 user_name 用户 role_name 角色,角色可能已经具有一组特定的权限。
GRANT role_name TO user_name;
4.3.2 撤销角色
  • 这条语句撤销 user_name 用户的 role_name 角色。
REVOKE role_name FROM user_name;

4.4 授予特定类型的权限

4.4.1 授予插入权限
  • 这条语句授予user_name用户对database_name数据库中table_name表的插入权限。
GRANT INSERT ON database_name.table_name TO user_name;
4.4.2 授予更新权限
  • 这条语句授予user_name用户对database_name数据库中table_name表的更新权限。
GRANT UPDATE ON database_name.table_name TO user_name;
4.4.3 授予删除权限
  • 这条语句授予user_name用户对database_name数据库中table_name表的删除权限。
GRANT DELETE ON database_name.table_name TO user_name;

四、注意事项:

  • 在使用DCL语句时,需要确保执行者具有足够的权限来授予或撤销权限。
  • 授予或撤销权限通常涉及到数据库的安全性和访问控制,应谨慎操作。
  • 不同的数据库系统(如MySQL、PostgreSQL、SQL Server等)可能在具体的语法和支持的权限类型上有所不同。


 

标签:DCL,name,数据库,DML,授予,user,DDL,table,权限
From: https://blog.csdn.net/weixin_39865508/article/details/141412660

相关文章

  • 昇腾 - AscendCL C++应用开发 线程安全的队列
    昇腾-AscendCLC++应用开发线程安全的队列flyfishC++mutex各种各样的互斥锁mutex、timed_mutex、recursive_mutex、shared_mutexC++线程间同步的条件变量std::condition_variable和std::condition_variable_anyC++提供的智能指针unique_ptr、shared_ptr、wea......
  • 昇腾 - AscendCL C++应用开发 目标检测中的非极大值抑制NMS和计算候选边界框之间的交
    昇腾-AscendCLC++应用开发目标检测中的非极大值抑制(NMS,Non-MaximumSuppression)涉及计算候选边界框之间的交并比(IOU,IntersectionoverUnion)flyfish结构体BBox:定义了一个边界框的数据结构,包含中心坐标、宽高、置信度分数、类别索引和输出索引。函数IOU:计算两个......
  • OnlineDDL
    DDL流程OceanBase4.x版本集群内部处理流程SQL指令会先发送到OBProxy中处理,然后OBProxy经过简单的解析,路由计算,把这条SQL发送到集群中的一台OBserver,我们称为中控OBServer。中控OBServer在收到消息后,经过SQL语法语义解析,发现这是一条altertable的DDL语句,在......
  • Oracle 12c后enable_ddl_logging的日志位置变化
     Oracle12c后enable_ddl_logging的日志位置变化 先吐个槽,enable_ddl_logging功能是OracleChangeManagementPack的一部分,需要作为单独的许可证购买,要单独花钱......开启enable_ddl_logging功能,在11g中,ddl操作将以XML格式被记录在ADR_HOME/trade/alert_<SID>.log文件中......
  • 数据库(二):DDL
    数据库(二):DDL一、数据库操作(一)查询(二)创建(三)使用(切换数据库)(四)删除二、表(图形化工具)(一)连接数据库(二)基础(三)表的具体操作1、常见数据类型2、创建2、查询3、修改4、删除一、数据库操作DDL:英文全称是DataDefinttionLanguage,数据定义语言,用来定义数据库对象(数据库、表)......
  • SQL— DDL语句学习【后端 10】
    SQL—DDL语句学习在数据管理的广阔领域中,SQL(StructuredQueryLanguage)作为操作关系型数据库的编程语言,扮演着举足轻重的角色。它不仅定义了操作所有关系型数据库的统一标准,还为我们提供了强大的工具来管理、查询和修改数据库中的数据。今天,我们将一起走进SQL的世界,了解其......
  • D43 2-SAT+前缀优化 P6378 [PA2010] Riddle
    视频链接: P6378[PA2010]Riddle-洛谷|计算机科学教育新生态(luogu.com.cn)//2-SAT+前缀优化O(n+m)#include<iostream>#include<cstring>#include<algorithm>usingnamespacestd;#definex0(x)x//点#definex1(x)x+n//反点#definep0(x)x+2*n......
  • 【人工智能】 使用线性回归预测波士顿房价 paddlepaddle 框架 飞桨
    一、简要介绍经典的线性回归模型主要用来预测一些存在着线性关系的数据集。回归模型可以理解为:存在一个点集,用一条曲线去拟合它分布的过程。如果拟合曲线是一条直线,则称为线性回归。如果是一条二次曲线,则被称为二次回归。线性回归是回归模型中最简单的一种。本示例简要介......
  • 基于PaddleNLP信息抽取,uie微调打造自己专属的信息抽取模型
    基于PaddleNLP信息抽取,uie微调打造自己专属的信息抽取模型UIE模型简介UIE优势应用示例UIE开箱即用UIE适用抽取示例命名实体识别(NamedEntityRecognition,简称NER)关系抽取(RelationExtraction,简称RE)事件抽取(EventExtraction,简称EE)评论观点抽取情感倾向分类......
  • 使用PaddleHub生成证件照
       飞桨是百度自主研发的开源深度学习平台。包含深度学习核心训练和推理框架、工具组件、基础模型库、端到端开发套件、预测部署和开发训练。    今天要说的PaddleHub是飞桨中的一个工具组件,包含了大量的预训练模型,不需要自己训练可以拿来直接使用,也可以根据自......