数据库DML、DDL、DQL 、DCL说明

2024-08-22 18:12
文章标签 dml 数据库 说明 ddl dql dcl

本文主要是介绍数据库DML、DDL、DQL 、DCL说明,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

 

一、概述

二、作用和说明

三、用法示例

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等)可能在具体的语法和支持的权限类型上有所不同。


 

这篇关于数据库DML、DDL、DQL 、DCL说明的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1097023

相关文章

SQL Server修改数据库名及物理数据文件名操作步骤

《SQLServer修改数据库名及物理数据文件名操作步骤》在SQLServer中重命名数据库是一个常见的操作,但需要确保用户具有足够的权限来执行此操作,:本文主要介绍SQLServer修改数据... 目录一、背景介绍二、操作步骤2.1 设置为单用户模式(断开连接)2.2 修改数据库名称2.3 查找逻辑文件名

SQL Server数据库死锁处理超详细攻略

《SQLServer数据库死锁处理超详细攻略》SQLServer作为主流数据库管理系统,在高并发场景下可能面临死锁问题,影响系统性能和稳定性,这篇文章主要给大家介绍了关于SQLServer数据库死... 目录一、引言二、查询 Sqlserver 中造成死锁的 SPID三、用内置函数查询执行信息1. sp_w

Before和BeforeClass的区别及说明

《Before和BeforeClass的区别及说明》:本文主要介绍Before和BeforeClass的区别及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Before和BeforeClass的区别一个简单的例子当运行这个测试类时总结Before和Befor

Python pip下载包及所有依赖到指定文件夹的步骤说明

《Pythonpip下载包及所有依赖到指定文件夹的步骤说明》为了方便开发和部署,我们常常需要将Python项目所依赖的第三方包导出到本地文件夹中,:本文主要介绍Pythonpip下载包及所有依... 目录步骤说明命令格式示例参数说明离线安装方法注意事项总结要使用pip下载包及其所有依赖到指定文件夹,请按照以

Spring中管理bean对象的方式(专业级说明)

《Spring中管理bean对象的方式(专业级说明)》在Spring框架中,Bean的管理是核心功能,主要通过IoC(控制反转)容器实现,下面给大家介绍Spring中管理bean对象的方式,感兴趣的朋... 目录1.Bean的声明与注册1.1 基于XML配置1.2 基于注解(主流方式)1.3 基于Java

Druid连接池实现自定义数据库密码加解密功能

《Druid连接池实现自定义数据库密码加解密功能》在现代应用开发中,数据安全是至关重要的,本文将介绍如何在​​Druid​​连接池中实现自定义的数据库密码加解密功能,有需要的小伙伴可以参考一下... 目录1. 环境准备2. 密码加密算法的选择3. 自定义 ​​DruidDataSource​​ 的密码解密3

Maven项目中集成数据库文档生成工具的操作步骤

《Maven项目中集成数据库文档生成工具的操作步骤》在Maven项目中,可以通过集成数据库文档生成工具来自动生成数据库文档,本文为大家整理了使用screw-maven-plugin(推荐)的完... 目录1. 添加插件配置到 pom.XML2. 配置数据库信息3. 执行生成命令4. 高级配置选项5. 注意事

在Java中基于Geotools对PostGIS数据库的空间查询实践教程

《在Java中基于Geotools对PostGIS数据库的空间查询实践教程》本文将深入探讨这一实践,从连接配置到复杂空间查询操作,包括点查询、区域范围查询以及空间关系判断等,全方位展示如何在Java环... 目录前言一、相关技术背景介绍1、评价对象AOI2、数据处理流程二、对AOI空间范围查询实践1、空间查

Python+PyQt5实现MySQL数据库备份神器

《Python+PyQt5实现MySQL数据库备份神器》在数据库管理工作中,定期备份是确保数据安全的重要措施,本文将介绍如何使用Python+PyQt5开发一个高颜值,多功能的MySQL数据库备份工具... 目录概述功能特性核心功能矩阵特色功能界面展示主界面设计动态效果演示使用教程环境准备操作流程代码深度解

MySQL数据库实现批量表分区完整示例

《MySQL数据库实现批量表分区完整示例》通俗地讲表分区是将一大表,根据条件分割成若干个小表,:本文主要介绍MySQL数据库实现批量表分区的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考... 目录一、表分区条件二、常规表和分区表的区别三、表分区的创建四、将既有表转换分区表脚本五、批量转换表为分区