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

相关文章

Python调用Orator ORM进行数据库操作

《Python调用OratorORM进行数据库操作》OratorORM是一个功能丰富且灵活的PythonORM库,旨在简化数据库操作,它支持多种数据库并提供了简洁且直观的API,下面我们就... 目录Orator ORM 主要特点安装使用示例总结Orator ORM 是一个功能丰富且灵活的 python O

使用 sql-research-assistant进行 SQL 数据库研究的实战指南(代码实现演示)

《使用sql-research-assistant进行SQL数据库研究的实战指南(代码实现演示)》本文介绍了sql-research-assistant工具,该工具基于LangChain框架,集... 目录技术背景介绍核心原理解析代码实现演示安装和配置项目集成LangSmith 配置(可选)启动服务应用场景

使用Navicat工具比对两个数据库所有表结构的差异案例详解

《使用Navicat工具比对两个数据库所有表结构的差异案例详解》:本文主要介绍如何使用Navicat工具对比两个数据库test_old和test_new,并生成相应的DDLSQL语句,以便将te... 目录概要案例一、如图两个数据库test_old和test_new进行比较:二、开始比较总结概要公司存在多

MySQL数据库函数之JSON_EXTRACT示例代码

《MySQL数据库函数之JSON_EXTRACT示例代码》:本文主要介绍MySQL数据库函数之JSON_EXTRACT的相关资料,JSON_EXTRACT()函数用于从JSON文档中提取值,支持对... 目录前言基本语法路径表达式示例示例 1: 提取简单值示例 2: 提取嵌套值示例 3: 提取数组中的值注意

查询SQL Server数据库服务器IP地址的多种有效方法

《查询SQLServer数据库服务器IP地址的多种有效方法》作为数据库管理员或开发人员,了解如何查询SQLServer数据库服务器的IP地址是一项重要技能,本文将介绍几种简单而有效的方法,帮助你轻松... 目录使用T-SQL查询方法1:使用系统函数方法2:使用系统视图使用SQL Server Configu

Spring Boot Actuator使用说明

《SpringBootActuator使用说明》SpringBootActuator是一个用于监控和管理SpringBoot应用程序的强大工具,通过引入依赖并配置,可以启用默认的监控接口,... 目录项目里引入下面这个依赖使用场景总结说明:本文介绍Spring Boot Actuator的使用,关于Spri

SQL Server数据库迁移到MySQL的完整指南

《SQLServer数据库迁移到MySQL的完整指南》在企业应用开发中,数据库迁移是一个常见的需求,随着业务的发展,企业可能会从SQLServer转向MySQL,原因可能是成本、性能、跨平台兼容性等... 目录一、迁移前的准备工作1.1 确定迁移范围1.2 评估兼容性1.3 备份数据二、迁移工具的选择2.1

Python中连接不同数据库的方法总结

《Python中连接不同数据库的方法总结》在数据驱动的现代应用开发中,Python凭借其丰富的库和强大的生态系统,成为连接各种数据库的理想编程语言,下面我们就来看看如何使用Python实现连接常用的几... 目录一、连接mysql数据库二、连接PostgreSQL数据库三、连接SQLite数据库四、连接Mo

Oracle数据库如何切换登录用户(system和sys)

《Oracle数据库如何切换登录用户(system和sys)》文章介绍了如何使用SQL*Plus工具登录Oracle数据库的system用户,包括打开登录入口、输入用户名和口令、以及切换到sys用户的... 目录打开登录入口登录system用户总结打开登录入口win+R打开运行对话框,输php入:sqlp

数据库使用之union、union all、各种join的用法区别解析

《数据库使用之union、unionall、各种join的用法区别解析》:本文主要介绍SQL中的Union和UnionAll的区别,包括去重与否以及使用时的注意事项,还详细解释了Join关键字,... 目录一、Union 和Union All1、区别:2、注意点:3、具体举例二、Join关键字的区别&php