MySQL 中的 DDL、DML、DQL 和 DCL

文章目录

    • 1. 数据定义语言(DDL)
    • 2. 数据操作语言(DML)
    • 3. 数据查询语言(DQL)
    • 4. 数据控制语言(DCL)
    • 总结

在 MySQL 数据库管理系统中,SQL 语句可以根据其功能分为不同的类别,主要包括 DDL(数据定义语言)、DML(数据操作语言)、DQL(数据查询语言)和 DCL(数据控制语言)。每一类语句都有其特定的用途和操作对象。本文将详细介绍这四类 SQL 语句及其常用的命令。

1. 数据定义语言(DDL)

DDL(Data Definition Language)用于定义和管理数据库结构或模式。这类语句主要包括创建、修改和删除数据库对象(如数据库、表、索引等)。

命令描述示例
CREATE创建数据库或表CREATE DATABASE mydatabase;
CREATE TABLE users (id INT, username VARCHAR(50));
ALTER修改数据库对象ALTER TABLE users ADD COLUMN age INT;
DROP删除数据库或表DROP DATABASE mydatabase;
DROP TABLE users;
TRUNCATE清空表数据TRUNCATE TABLE users;
  • CREATE:用于创建数据库和表。

    -- 创建数据库
    CREATE DATABASE mydatabase;
    
    -- 创建表
    CREATE TABLE users (
        id INT AUTO_INCREMENT PRIMARY KEY,
        username VARCHAR(50) NOT NULL,
        email VARCHAR(100)
    );
    
  • ALTER:用于修改已有的数据库对象。

    -- 修改表,添加新列
    ALTER TABLE users ADD COLUMN age INT;
    
    -- 修改表,修改列数据类型
    ALTER TABLE users MODIFY COLUMN username VARCHAR(100);
    
  • DROP:用于删除数据库或表。

    -- 删除数据库
    DROP DATABASE mydatabase;
    
    -- 删除表
    DROP TABLE users;
    
  • TRUNCATE:用于清空表中的所有数据,但不删除表结构。

    TRUNCATE TABLE users;
    

2. 数据操作语言(DML)

DML(Data Manipulation Language)用于对表中的数据进行操作,包括插入、更新和删除数据。
DML(Data Manipulation Language)用于对表中的数据进行操作,包括插入、更新和删除数据。

命令描述示例
INSERT插入数据INSERT INTO users (username, email) VALUES ('Alice', 'alice@example.com');
UPDATE更新数据UPDATE users SET email = 'alice_new@example.com' WHERE username = 'Alice';
DELETE删除数据DELETE FROM users WHERE username = 'Alice';
  • INSERT:用于向表中插入数据。

    -- 插入单行数据
    INSERT INTO users (username, email, age) VALUES ('Alice', 'alice@example.com', 30);
    
    -- 插入多行数据
    INSERT INTO users (username, email, age) VALUES 
        ('Bob', 'bob@example.com', 25),
        ('Charlie', 'charlie@example.com', 35);
    
  • UPDATE:用于更新表中的数据。

    -- 更新单行数据
    UPDATE users SET email = 'alice_new@example.com' WHERE username = 'Alice';
    
    -- 更新多行数据
    UPDATE users SET age = age + 1 WHERE age < 30;
    
  • DELETE:用于删除表中的数据。

    -- 删除单行数据
    DELETE FROM users WHERE username = 'Alice';
    
    -- 删除多行数据
    DELETE FROM users WHERE age > 40;
    

3. 数据查询语言(DQL)

DQL(Data Query Language)主要用于查询数据库中的数据。最常用的 DQL 命令是 SELECT。

命令描述示例
SELECT查询数据SELECT * FROM users;
SELECT username, email FROM users;
SELECT * FROM users WHERE age > 30;
  • SELECT:用于从表中查询数据。
    -- 查询所有列
    SELECT * FROM users;
    
    -- 查询特定列
    SELECT username, email FROM users;
    
    -- 带条件的查询
    SELECT * FROM users WHERE age > 30;
    
    -- 排序查询
    SELECT * FROM users ORDER BY age DESC;
    
    -- 分组查询
    SELECT age, COUNT(*) FROM users GROUP BY age;
    
    -- 联合查询
    SELECT users.username, orders.order_id FROM users
    JOIN orders ON users.id = orders.user_id;
    

4. 数据控制语言(DCL)

DCL(Data Control Language)用于控制数据库的访问权限和安全性。这类语句包括授予和撤销用户的权限。

命令描述示例
GRANT授予权限GRANT SELECT ON mydatabase.* TO 'username'@'host';
REVOKE撤销权限REVOKE SELECT ON mydatabase.* FROM 'username'@'host';
  • GRANT:用于授予用户权限。

    -- 授予用户读取数据库的权限
    GRANT SELECT ON mydatabase.* TO 'username'@'host';
    
    -- 授予用户所有权限
    GRANT ALL PRIVILEGES ON mydatabase.* TO 'username'@'host';
    
  • REVOKE:用于撤销用户权限。

    -- 撤销用户读取数据库的权限
    REVOKE SELECT ON mydatabase.* FROM 'username'@'host';
    
    -- 撤销用户所有权限
    REVOKE ALL PRIVILEGES ON mydatabase.* FROM 'username'@'host';
    

总结

理解和熟练运用 DDL、DML、DQL 和 DCL 是管理和操作 MySQL 数据库的基础。通过这些 SQL 语句,你可以有效地对数据库进行定义、操作、查询和权限控制,从而满足各种应用场景的需求。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/781195.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

电源纹波相关

什么是纹波&#xff1f;什么是噪声&#xff1f; 这种叠加在直流稳定量上的交流分量就称为纹波。 纹波的危害 电源纹波能影响设备性能和稳定性 纹波会导致电器上产生谐波&#xff0c;降低电源的使用效率&#xff1b; 高频电源纹波可能会产生浪涌电压或电流&#xff0c;影响设…

VSCode神仙插件——CodeSnap (好看的代码截图)

1 安装 2 使用 选中要截图的代码,右键 此时右侧会出现代码截图的预览图 如果要将截图保存到本地,则点击上图红色框中的图标 也可以点击下面截的图,CtrlC复制,然后就可以CtrlV粘贴到其他应用程序里了

拉曼光谱入门:3.拉曼光谱的特征参数与定量定性分析策略

1.特征参数 1.1 退偏振率 退偏振率&#xff08;p&#xff09;是一个衡量拉曼散射光偏振状态的参数&#xff0c;它描述了拉曼散射光的偏振方向与入射光偏振方向之间的关系。退偏振率定义为垂直偏振方向的拉曼散射强度与平行偏振方向的拉曼散射强度之比。退偏振率&#xff08;p&…

shark云原生-日志体系-filebeat高级配置(适用于生产)-更新中

文章目录 1. filebeat.inputs 静态日志收集器2. filebeat.autodiscover 自动发现2.1. autodiscover 和 inputs2.2. 如何配置生效2.3. Providers 提供者2.4. Providers kubernetes2.5. 配置 templates2.5.1. kubernetes 自动发现事件中的变量字段2.5.2 配置 templates 2.6. 基于…

微信小程序简历Demo

微信小程序简历Demo 使用介绍最后获取源码 bilibili视频介绍 使用介绍 使用微信小程序实现的一个简历实现Demo 拖动马里奥&#xff0c;到指定Name下方 向上顶就可以显示对应的简历样式 点击头像可拨打电话 点击信息处可显示当前位置 最后 这是一个简单并且有趣的微信小程…

el-table 树形数据与懒加载 二级数据不展示

返回的数据中 children和hasChildren只能有一个&#xff0c;不能同时存在&#xff0c;否则加载数据会失败

端口被占用,使用小黑框查杀

netstat -ano &#xff08;查看目前所有被占的端口&#xff09; netstat -ano|findstr " 8080" 查一下目前被占用的端口号 &#xff0c;目前我要查的端口号是&#xff1a;8080&#xff0c;注意 后面打8080的时候&#xff0c;要有空格&#xff0c;要不然报错 **task…

【React Native优质开源项目】

&#x1f308;个人主页: 程序员不想敲代码啊 &#x1f3c6;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f44d;点赞⭐评论⭐收藏 &#x1f91d;希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff0c;让我们共…

17_VGG深度学习图像分类算法

1.1 简介 VGG网络&#xff0c;全称为Visual Geometry Group网络&#xff0c;是由牛津大学的Visual Geometry Group和谷歌DeepMind的研究人员共同提出的深度卷积神经网络模型。这一模型因在2014年ILSVRC&#xff08;ImageNet大规模视觉识别挑战赛&#xff09;中取得图像分类任务…

高级计算机体系结构--期末真题及题型总结

2024 年春季学期期末考题回顾一、名词解释二、简答题2007 年简答题2008 年简答题简答题答案 三、分析题1. MESI 和 Dragon 协议计算给定内存存取序列所需的时钟周期2007年第一题及参考答案例题及解答 2. 顺序一致性存储模型&#xff0c;判断进程的合法输出2007年第二题及参考答…

【网站推荐】Developer Roadmaps 开发者学习路线

你是否想学习某门技术而苦苦找不到学习路线。本文推荐一个网站&#xff0c;解决学习路径问题。 roadmap.sh 旨在创建路线图、指南和其他教育内容&#xff0c;以帮助指导开发人员选择路径并指导他们的学习。 技术路线包括了前端后端安卓iosUI设计等内容&#xff0c;一些技术比如…

CV- 人工智能-深度学习基础知识

一, 深度学习基础知识 1,什么是深度学习?机器学习是实现人工智能的一种途径,深度学习是机器学习的一个子集,也就是说深度学习是实现机器学习的一种方法。2, 传统机器学习算术依赖人工设计特征,并进行特征提取,而深度学习方法不需要人工,而是依赖算法自动提取特征。深度…

【网络安全】实验四(网络扫描工具的使用)

一、本次实验的实验目的 &#xff08;1&#xff09;掌握使用端口扫描器的技术&#xff0c;了解端口扫描器的原理 &#xff08;2&#xff09;会用Wireshark捕获数据包&#xff0c;并对捕获的数据包进行简单的分析 二、搭配环境 打开两台虚拟机&#xff0c;并参照下图&#xff…

sublime 3 背景和字体颜色修改

sublime 4 突然抽风&#xff0c;每次打开都显示 “plugin_host-3.3 has exited unexpectedly, some plugin functionality won’t be available until Sublime Text has been restarted” 一直没调好&#xff0c;所以我退回到sublime 3了。下载好了软件没问题&#xff0c;但是一…

运维系列.Nginx中使用HTTP压缩功能

运维专题 Nginx中使用HTTP压缩功能 - 文章信息 - Author: 李俊才 (jcLee95) Visit me at CSDN: https://jclee95.blog.csdn.netMy WebSite&#xff1a;http://thispage.tech/Email: 291148484163.com. Shenzhen ChinaAddress of this article:https://blog.csdn.net/qq_28550…

Vue3中的Composables组合式函数,Vue3实现minxins

Vue3中的Composables是什么 Vue3中的Composables 简单理解其实就是类React Hooks式的组合式函数封装方法。 Vue官方称为Composables 组合式函数。 1.抽离复用逻辑时 Vue2写法 &#xff08;1&#xff09;Vue2 中的mixins混入器写法缺点 (Vue3 optionsApi写法同理) 新建minxins…

【基于R语言群体遗传学】-10-适应性与正选择

在之前的博客中&#xff0c;我们学习了哈代温伯格模型&#xff0c;学习了Fisher模型&#xff0c;学习了遗传漂变与变异的模型&#xff0c;没有看过之前内容的朋友可以先看一下之前的文章&#xff1a; 群体遗传学_tRNA做科研的博客-CSDN博客 一些新名词 &#xff08;1&#xf…

HCIE之IPV6三大动态协议ISIS BGP (十五)

IPV6 1、三大动态路由协议ipv61.1、ISIS1.1.1、ISIS多拓扑实验&#xff08;需要详细看下lsdb verbose&#xff09;1.2、ISIS TLV简单总结 1.2、BGP 2、IPv6 隧道技术2.1、ipv6手工隧道2.1.1、ipv6 gre手工隧道2.1.1.1、 ipv6、ipv4基础配置&#xff08;省略&#xff09;2.1.1.2…

【web APIs】快速上手Day05(Bom操作)

目录 Web APIs - 第5天笔记js组成window对象BOM定时器-延迟函数案例-5秒钟之后消失的广告 JS执行机制location对象案例-5秒钟之后跳转的页面 navigator对象histroy对象 本地存储&#xff08;今日重点&#xff09;localStorage&#xff08;重点&#xff09;sessionStorage&#…

cross attention交叉熵注意力机制

交叉注意力(Cross-Attention)则是在两个不同序列上计算注意力&#xff0c;用于处理两个序列之间的语义关系。在两个不同的输入序列之间计算关联度和加权求和的机制。具体来说&#xff0c;给定两个输入序列&#xff0c;cross attention机制将一个序列中的每个元素与另一个序列中…