数据库DML、DDL、DQL 、DCL语句详解

打印 上一主题 下一主题

主题 891|帖子 891|积分 2673

目次
一. 概述
二. 作用和说明
三. 用法示例
1. DML(MySql)
2. DDL(MySql)
3. DQL(MySql)
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 是数据库操纵语言的四种重要类型,分别对应数据操纵、数据界说、数据查询和数据控制。
二. 作用和说明


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

    • 用于对数据库中的数据进行增加、修改、删除等操纵。
    • 包括 INSERT、UPDATE、DELETE 等语句。

  • DDL (Data Definition Language) 数据界说语言

    • 用于界说和管理数据库的结构,包括创建、修改和删除数据库对象。
    • 包括 CREATE、ALTER、DROP 等语句。

  • DQL (Data Query Language) 数据查询语言

    • 用于查询和检索数据库中的数据。
    • 重要包括 SELECT 语句,用于从数据库表中检索数据。

  • DCL (Data Control Language) 数据控制语言

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

三. 用法示例

1. DML(MySql)

        DML 是指对数据库中的数据进行增加修改删除等操纵
  1. -- 插入新数据
  2. INSERT INTO volvo.table_test
  3. (id, update_time, id_value, id_name)
  4. VALUES(0, '', '', '');
  5. -- 更新现有数据。
  6. UPDATE volvo.table_test
  7. SET update_time='', id_value='', id_name=''
  8. WHERE id=0;
  9. -- :删除数据。
  10. DELETE FROM volvo.table_test
  11. WHERE id=0;
复制代码
2. DDL(MySql)

        DDL 是指修改或界说数据库的表结构、视图、索引等操纵下令。
  1. -- 创建新表
  2. CREATE TABLE `table_test` (
  3.   `id` bigint(20) NOT NULL AUTO_INCREMENT,
  4.   `update_time` varchar(64) DEFAULT NULL,
  5.   `id_value` varchar(64) DEFAULT NULL,
  6.   `id_name` varchar(64) DEFAULT NULL,
  7.   PRIMARY KEY (`id`)
  8. ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  9. -- 添加列
  10. ALTER TABLE demo.table_test ADD Column1 varchar(100) NULL;
  11. -- 删除表
  12. DROP TABLE demo.table_test;
  13. -- 新建索引
  14. CREATE INDEX table_test_id_value_IDX USING BTREE ON demo.table_test (id_value);
  15. -- 创建视图
  16. CREATE VIEW table_view AS
  17. SELECT id,id_value
  18. FROM table_test
  19. WHERE id = 1;
复制代码
3. DQL(MySql)

        DQL一般都是指的查询数据库中的数据,不修改数据
  1. -- 查询数据
  2. select * from table_test where id = 1;
复制代码
4. DCL

        DCL数据库中的DCL(Data Control Language,数据控制语言)语句用于界说数据库的安全策略和访问权限,重要包括GRANT和REVOKE两个关键字,控制数据库的访问权限
4.1 授予权限

4.1.1 授予查询权限



  • 这条语句授予 user_name 用户对 database_name 数据库中 table_name 表的查询权限。
  1. -- 这条语句授予user_name用户对database_name数据库中table_name表的查询权限。
  2. GRANT SELECT ON database_name.table_name TO user_name;
复制代码
4.1.2 授予所有权限



  • 这条语句授予 user_name 用户对 database_name 数据库中 table_name 表的所有权限。
  1. GRANT ALL PRIVILEGES ON database_name.table_name TO user_name;
复制代码
4.1.3 授予数据库级别的所有权限



  • 这条语句授予 user_name 用户对 database_name 数据库中所有表的所有权限。
  1. GRANT ALL PRIVILEGES ON database_name.* TO user_name;
复制代码
4.2 撤销权限

4.2.1 撤销查询权限



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



  • 这条语句撤销 user_name 用户对 database_name 数据库中 table_name 表的所有权限。
  1. REVOKE ALL PRIVILEGES ON database_name.table_name FROM user_name;
复制代码
4.3 授予角色权限

4.3.1 授予角色



  • 这条语句授予 user_name 用户 role_name 角色,角色可能已经具有一组特定的权限。
  1. GRANT role_name TO user_name;
复制代码
4.3.2 撤销角色



  • 这条语句撤销 user_name 用户的 role_name 角色。
  1. REVOKE role_name FROM user_name;
复制代码
4.4 授予特定类型的权限

4.4.1 授予插入权限



  • 这条语句授予user_name用户对database_name数据库中table_name表的插入权限。
  1. GRANT INSERT ON database_name.table_name TO user_name;
复制代码
4.4.2 授予更新权限



  • 这条语句授予user_name用户对database_name数据库中table_name表的更新权限。
  1. GRANT UPDATE ON database_name.table_name TO user_name;
复制代码
4.4.3 授予删除权限



  • 这条语句授予user_name用户对database_name数据库中table_name表的删除权限。
  1. GRANT DELETE ON database_name.table_name TO user_name;
复制代码
四. 留意事项:



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

 

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

美食家大橙子

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表