数据库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

相关文章

MySQL数据库双机热备的配置方法详解

《MySQL数据库双机热备的配置方法详解》在企业级应用中,数据库的高可用性和数据的安全性是至关重要的,MySQL作为最流行的开源关系型数据库管理系统之一,提供了多种方式来实现高可用性,其中双机热备(M... 目录1. 环境准备1.1 安装mysql1.2 配置MySQL1.2.1 主服务器配置1.2.2 从

Linux join命令的使用及说明

《Linuxjoin命令的使用及说明》`join`命令用于在Linux中按字段将两个文件进行连接,类似于SQL的JOIN,它需要两个文件按用于匹配的字段排序,并且第一个文件的换行符必须是LF,`jo... 目录一. 基本语法二. 数据准备三. 指定文件的连接key四.-a输出指定文件的所有行五.-o指定输出

SpringBoot基于注解实现数据库字段回填的完整方案

《SpringBoot基于注解实现数据库字段回填的完整方案》这篇文章主要为大家详细介绍了SpringBoot如何基于注解实现数据库字段回填的相关方法,文中的示例代码讲解详细,感兴趣的小伙伴可以了解... 目录数据库表pom.XMLRelationFieldRelationFieldMapping基础的一些代

Redis中Hash从使用过程到原理说明

《Redis中Hash从使用过程到原理说明》RedisHash结构用于存储字段-值对,适合对象数据,支持HSET、HGET等命令,采用ziplist或hashtable编码,通过渐进式rehash优化... 目录一、开篇:Hash就像超市的货架二、Hash的基本使用1. 常用命令示例2. Java操作示例三

Redis中Set结构使用过程与原理说明

《Redis中Set结构使用过程与原理说明》本文解析了RedisSet数据结构,涵盖其基本操作(如添加、查找)、集合运算(交并差)、底层实现(intset与hashtable自动切换机制)、典型应用场... 目录开篇:从购物车到Redis Set一、Redis Set的基本操作1.1 编程常用命令1.2 集

Python sys模块的使用及说明

《Pythonsys模块的使用及说明》Pythonsys模块是核心工具,用于解释器交互与运行时控制,涵盖命令行参数处理、路径修改、强制退出、I/O重定向、系统信息获取等功能,适用于脚本开发与调试,需... 目录python sys 模块详解常用功能与代码示例获取命令行参数修改模块搜索路径强制退出程序标准输入

使用Node.js和PostgreSQL构建数据库应用

《使用Node.js和PostgreSQL构建数据库应用》PostgreSQL是一个功能强大的开源关系型数据库,而Node.js是构建高效网络应用的理想平台,结合这两个技术,我们可以创建出色的数据驱动... 目录初始化项目与安装依赖建立数据库连接执行CRUD操作查询数据插入数据更新数据删除数据完整示例与最佳

Oracle数据库在windows系统上重启步骤

《Oracle数据库在windows系统上重启步骤》有时候在服务中重启了oracle之后,数据库并不能正常访问,下面:本文主要介绍Oracle数据库在windows系统上重启的相关资料,文中通过代... oracle数据库在Windows上重启的方法我这里是使用oracle自带的sqlplus工具实现的方

MySQL批量替换数据库字符集的实用方法(附详细代码)

《MySQL批量替换数据库字符集的实用方法(附详细代码)》当需要修改数据库编码和字符集时,通常需要对其下属的所有表及表中所有字段进行修改,下面:本文主要介绍MySQL批量替换数据库字符集的实用方法... 目录前言为什么要批量修改字符集?整体脚本脚本逻辑解析1. 设置目标参数2. 生成修改表默认字符集的语句3

MySQL之复合查询使用及说明

《MySQL之复合查询使用及说明》文章讲解了SQL复合查询中emp、dept、salgrade三张表的使用,涵盖多表连接、自连接、子查询(单行/多行/多列)及合并查询(UNION/UNIONALL)等... 目录复合查询基本查询回顾多表查询笛卡尔积自连接子查询单行子查询多行子查询多列子查询在from子句中使