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.rhkb.cn/news/374881.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【thingsbord源码编译】 显示node内存不足

编译thingsbord显示报错 FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory问题原因分析 重新安装java版本 编译通过

【Vue3】使用vite创建vue项目

一、安装Nodejs 参考文章https://blog.csdn.net/DX390609/article/details/140305585?spm1001.2014.3001.5502 二、创建项目 在要创建的目录下打开命令行输入&#xff1a; npm create vuelatestvue项目创建成功&#xff1a; 三、安装vue插件 vscode打开项目文件夹&…

RAG理论:ES混合搜索BM25+kNN(cosine)以及归一化

接前一篇:RAG实践:ES混合搜索BM25+kNN(cosine) https://blog.csdn.net/Xin_101/article/details/140230948 本文主要讲解混合搜索相关理论以及计算推导过程, 包括BM25、kNN以及ES中使用混合搜索分数计算过程。 详细讲解: (1)ES中如何通过BM25计算关键词搜索分数; (2)…

C++:组合和继承的区别

组合介绍以及与继承对比 什么是组合 (1)composition&#xff0c;组合&#xff0c;就是在一个class内使用其他多个class的对象作为成员 (2)用class tree做案例讲解 (3)组合也是一种代码复用方法&#xff0c;本质也是结构体包含 #include <iostream> #include <vector…

曹操的五色棋布阵 - 工厂方法模式

定场诗 “兵无常势&#xff0c;水无常形&#xff0c;能因敌变化而取胜者&#xff0c;谓之神。” 在三国的战场上&#xff0c;兵法如棋&#xff0c;布阵如画。曹操的五色棋布阵&#xff0c;不正是今日软件设计中工厂方法模式的绝妙写照吗&#xff1f;让我们从这个神奇的布阵之…

srs直播内网拉流带宽飙升问题记录

问题背景 srs部署在云服务器上&#xff0c;32核cpu&#xff0c;64G内存&#xff0c;带宽300M. 客户端从srs拉流&#xff0c;发现外网客户端拉流&#xff0c;cpu和带宽都正常。然而内网客户端拉流&#xff0c;拉流人数超过5人以上&#xff0c;带宽就会迅速飙升。 排查 用srs…

【爬虫】爬虫基础

目录 一、Http响应与请求1、Http请求2、Http响应3、状态码 二、Requests库1、发起GET请求2、发起POST请求3、处理请求头 三、BeautifulSoup库1、解析HTML文档2、查找和提取数据Ⅰ、查找单个元素Ⅱ、查找所有元素Ⅲ、使用CSS选择器Ⅳ、获取元素属性 四、爬取豆瓣电影榜 一、Http…

Desktop docker 部署 WordPress

Desktop Docker 部署 WordPress 之前都是在Linux里面玩的&#xff0c;今天看到别人在windwos下安装docker&#xff0c;一时兴起装了一个试试&#xff0c;效果一般&#xff0c;很吃硬盘空间和内存。 首先在docker官方下载桌面版&#xff0c;安装下一步一直到完成。 安装完docke…

一招杜绝 | 网站被劫持强制植入广告的问题

在我们日常上网过程中&#xff0c;经常会遇到打开一个网页&#xff0c;网页都还没有显示出来&#xff0c;一堆广告就弹出来的现象。或者网页刚刚打开&#xff0c;没几分钟 就会弹出来某游戏广告&#xff0c;注册领豪华坐骑等等的小广告。这些广告不仅仅会让我们对网站的真实性产…

强烈推荐!!李沐老师《动手学深度学习》最新Pytorch版!

动手学深度学习(PyTorch版)》是由李沐、Aston Zhang和孔德威共同编写的教材&#xff0c;专为深度学习初学者和实践者设计。本书使用PyTorch作为主要的深度学习框架&#xff0c;全面系统地介绍了深度学习的基本理论、常见模型和实际应用技巧。 书中内容包括深度学习的基础知识、…

逻辑回归(纯理论)

1.什么是逻辑回归&#xff1f; 逻辑回归是一种常用的统计学习方法&#xff0c;主要用于解决分类问题。尽管名字中包含"回归"&#xff0c;但它实际上是一种分类算法 2.为什么机器学习需要使用逻辑回归 1.二元分类 这是逻辑回归最基本和常见的用途。它可以预测某个事…

短视频矩阵:批量发布的秘密揭秘

在数字化时代&#xff0c;短视频已经成为一种广受欢迎的媒体形式。无论是用于品牌推广、产品营销还是个人创作&#xff0c;短视频都提供了一种直观、生动的方式来吸引观众的注意力。然而&#xff0c;有效地制作、管理和发布短视频对于许多创作者和企业来说是一个挑战。 为此&am…

unity3d:Shader知识点,矩阵,函数,坐标转换,Tags,半透明,阴影,深度,亮度,优化

基本结构 Shader "MyShaderName" {Properties {// 属性}SubShader {// 针对显卡A的SubShaderPass {// 设置渲染状态和标签Tags { "LightMode""ForwardBase" }// 开始Cg代码片段CGPROGRAM// 该代码片段的编译指令&#xff0c;例如&#xff1a;#p…

js vue table单元格合并

实现效果 关键代码 <table classtable table-bordered><thead><tr><th>检测项目</th><th>详细说明</th><th>检测结果</th><th>检测说明</th></tr></thead><tbody><tr ng-repeatrow in…

【记录】LaTex|LaTex调整算法、公式、表格内的字体大小(10种内置字号)

文章目录 【记录】LaTex&#xff5c;LaTex调整算法、公式、表格内的字体大小&#xff08;10种内置字号&#xff09;省流版1 字体大小2 测试代码 详细版1 \tiny2 \scriptsize3 \footnotesize4 \small5 \normalsize6 \large7 \Large8 \LARGE9 \huge10 \Huge 【记录】LaTex&#x…

【干货】一文带你看懂什么是渠道分销?如何管理渠道分销

在当今竞争激烈的市场环境中&#xff0c;企业想要扩大市场份额、提高产品或服务的可见度&#xff0c;有效的渠道分销策略是关键。 什么是渠道分销&#xff1f; 渠道分销&#xff0c;简而言之&#xff0c;是指企业利用中间商&#xff08;如经销商、代理商、零售商等&#xff0…

万字长文!流行 AI 视频生成大模型介绍 浅体验

目录 国外 AI 视频生成大模型Sora——值得期待的引领者官方描述拥有强大的能力一经发布&#xff0c;立即爆火不同业内人士的评价周鸿祎的评价陈楸帆的评价 值得期待的引领者 Dream Machine——宣传虽好&#xff0c;但仍需努力新兴的 AI 视频生成大模型媒体强烈的追捧实测体验&a…

PyTorch | 加速模型训练的妙招

引言 提升机器学习模型的训练速度是每位机器学习工程师的共同追求。训练速度的提升意味着实验周期的缩短&#xff0c;进而加速产品的迭代过程。同时&#xff0c;这也表示在进行单一模型训练时&#xff0c;所需的资源将会减少。简而言之&#xff0c;我们追求的是效率。 熟悉 PyT…

基于springboot+mybatis学生管理系统

基于springbootmybatis学生管理系统 简介&#xff1a; 题目虽然是学生管理系统&#xff0c;但功能包含(学生&#xff0c;教师&#xff0c;管理员),项目基于springboot2.1.x实现的管理系统。 编译环境 &#xff1a; jdk 1.8 mysql 5.5 tomcat 7 框架 &#xff1a; springboot…

UI设计工具选择指南:Sketch、XD、Figma、即时设计

在数字产品设计产业链中&#xff0c;UI设计师往往起着连接前后的作用。产品经理从一个“需求”开始&#xff0c;制定一个抽象的产品概念原型。UI设计师通过视觉呈现将抽象概念具体化&#xff0c;完成线框图交互逻辑视觉用户体验&#xff0c;最终输出高保真原型&#xff0c;并将…