当前位置: 首页 > article >正文

SQL:DDL(数据定义语言)和DML(数据操作语言)

目录

什么是SQL?

1. DDL(Data Definition Language,数据定义语言)

2. DML(Data Manipulation Language,数据操作语言)

DDL和DML的区别

什么是SQL?

SQL(Structured Query Language,结构化查询语言)是用来管理数据库的语言。想象数据库就像一个大仓库,里面存放着各种数据(比如顾客信息、商品记录等),而SQL就是你用来“指挥”这个仓库的工具。它可以帮你创建仓库、整理货架、添加货物、查询货物,甚至清空仓库。SQL被分成几大类,其中最基础的两类是DDL和DML。

1. DDL(Data Definition Language,数据定义语言)

DDL是用来定义数据库“结构”的语言。结构就像是仓库的框架,包括仓库本身、货架(表)、货架上的格子(列)以及索引(方便找东西的标签)。DDL的命令决定了这些东西怎么建、怎么改、怎么删。下面介绍一下基本的DDL命令:

  • CREATE
    作用:创建数据库、表、列和索引
    通俗解释:就像盖房子,你先得设计并建好仓库和货架。比如,你可以用CREATE DATABASE my_store;来建一个叫“my_store”的仓库,再用CREATE TABLE customers (id INT, name VARCHAR(50));建一个“顾客”货架,上面有“id”和“name”两个格子。
    重难点:第一次接触可能觉得“表”和“列”有点抽象。简单说,表就是一组相关数据的集合(比如所有顾客的信息),列就是表里的每一类信息(比如名字、年龄)。

  • ALTER
    作用:修改数据库对象的结构,比如添加或删除列、索引等
    通俗解释:房子建好后,你可能想在货架上加一个新格子(比如加一个“电话”列),或者移除一个旧格子(比如删掉“地址”列)。比如ALTER TABLE customers ADD phone VARCHAR(15);就是加一个电话格子。
    重难点:改结构要小心,因为可能影响已有的数据。比如删列时,里面的数据也会丢掉,相当于把货架上的东西扔了。

  • DROP
    作用:删除表、索引,甚至整个数据库
    通俗解释:如果某个货架用不上了,或者整个仓库要拆掉,你可以用DROP TABLE customers;或DROP DATABASE my_store;。注意,这是个“暴力”操作,数据会彻底消失,就像拆房子不会留东西。
    重难点:这命令很危险,执行前要确认不需要这些数据了,不然就像失手砸了硬盘。

  • RENAME
    作用:重命名一个表
    通俗解释:就像给货架换个名字,比如原来叫“customers”,现在想叫“users”,用RENAME TABLE customers TO users;就行了。
    重难点:只是改名字,里面的数据不会变,相当于换了个标签。

  • TRUNCATE
    作用:清空表的内容,相当于删除并重建表。
    通俗解释:货架上的货物全清空,但货架本身还在。比如TRUNCATE TABLE customers;会把所有顾客记录删掉,但表结构(id、name等格子)保留。
    重难点:跟DROP不同,TRUNCATE只清数据不删结构,速度快,但数据没法恢复,就像清空垃圾桶但保留桶本身。

总结DDL:DDL是“建房子、改框架、清空货架”的工具,重点是管理数据库的结构。

2. DML(Data Manipulation Language,数据操作语言)

DML是用来操作数据库“数据”的语言。结构建好后,DML就是你往货架上放货物、查货物、改货物、扔货物的工具。来看看DML命令:

 

  • SELECT
    作用:查询数据库,检索数据行。
    通俗解释:想知道货架上有什么?用SELECT * FROM customers;就能列出所有顾客的信息。*代表“全部”,也可以指定列,比如SELECT name FROM customers;只看名字。
    重难点:SELECT是查询的起点,后面会学到条件(如WHERE)、排序等,慢慢来,别急着全记住。

  • INSERT
    作用:插入数据到表中。
    通俗解释:往货架上放新货物。比如INSERT INTO customers (id, name) VALUES (1, 'Alice');就是放了一个顾客,id是1,名字是Alice。
    重难点:要确保数据格式匹配(比如id是数字,name是文字),不然就像把方形积木塞圆孔。

  • UPDATE
    作用:修改表中数据。
    通俗解释:货物信息变了,比如Alice换了名字,用UPDATE customers SET name = 'Alicia' WHERE id = 1;就能改。WHERE是条件,指定改谁。
    重难点:如果忘了加WHERE,所有行的数据都会改,相当于把所有货物的标签都换了,容易出错。

  • DELETE
    作用:删除表中的行。
    通俗解释:扔掉某些货物,比如DELETE FROM customers WHERE id = 1;会删掉id为1的顾客。
    重难点:跟TRUNCATE不同,DELETE是按条件删,灵活但也容易误删,记得用WHERE小心操作。

总结DML:DML是“操作货物”的工具,重点是管理数据本身。

DDL和DML的区别

  • 目的:DDL管“结构”(框架),DML管“数据”(内容)。
    比喻:DDL是建仓库和货架,DML是放货和查货。

  • 影响:DDL改的是数据库的定义,DML改的是里面的具体值。

  • 例子:CREATE TABLE(建货架) vs. INSERT INTO(放货物)。

相关文章:

SQL:DDL(数据定义语言)和DML(数据操作语言)

目录 什么是SQL? 1. DDL(Data Definition Language,数据定义语言) 2. DML(Data Manipulation Language,数据操作语言) DDL和DML的区别 什么是SQL? SQL(Structured …...

神舟平板电脑怎么样?平板电脑能当电脑用吗?

在如今的数码产品市场上,神舟平板电脑会拥有独特的优势,其中比较受到大家关注的就是神舟PCpad为例,无论是设计还是规格也会有很多的亮点,那么是不是可以直接当成电脑一起来使用呢? 这款平板电脑就会配备10.1英寸显示屏…...

【力扣hot100题】(075)数据流的中位数

一开始只建立了一个优先队列,每次查询中位数时都要遍历一遍于是喜提时间超限,看了答案才恍然大悟原来还有这么聪明的办法。 方法是建立两个优先队列,一个大根堆一个小根堆,大根堆记录较小的数,小根堆记录较大的数。 …...

AI大模型从0到1记录学习 day15

14.3.5 互斥锁 1)线程安全问题 线程之间共享数据会存在线程安全的问题。 比如下面这段代码,3个线程,每个线程都将g_num 1 十次: import time import threading def func(): global g_num for _ in range(10): tmp g_num 1 # ti…...

43. Java switch 语句 null 选择器变量

文章目录 43. Java switch 语句 null 选择器变量null 选择器变量示例:处理 null 选择器变量程序输出:解释 📖 为什么需要这样做? 🤔更进一步:使用 Optional 避免 null 检查示例:使用 Optional 包…...

linux下MMC_TEST的使用

一:打开如下配置,将相关文件编译到内核里: CONFIG_MMC_TEST CONFIG_MMC_DEBUG CONFIG_DEBUG_FS二:将mmc设备和mmc_test驱动进行绑定 2.1查看mmc设备编号 ls /sys/bus/mmc/drivers/mmcblk/mmc0:aaaa2.2将mmc设备与原先驱动进行解绑 echo mmc0:aaaa >...

Java——pdf增加水印

文章目录 前言方式一 itextpdf项目依赖引入编写PDF添加水印工具类测试效果展示 方式二 pdfbox依赖引入编写实现类效果展示 扩展1、将inputstream流信息添加水印并导出zip2、部署出现找不到指定字体文件 资料参考 前言 近期为了知识库文件导出,文件数据安全处理&…...

leetcode_19. 删除链表的倒数第 N 个结点_java

19. 删除链表的倒数第 N 个结点https://leetcode.cn/problems/remove-nth-node-from-end-of-list/ 1、题目 给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。 示例 1: 输入:head [1,2,3,4,5], n 2 输出&#…...

41、web前端开发之Vue3保姆教程(五 实战案例)

一、项目简介和需求概述 1、项目目标 1.能够基于Vue3创建项目 2.能够基本Vue3相关的技术栈进行项目开发 3.能够使用Vue的第三方组件进行项目开发 4.能够理解前后端分离的开发模式 2、项目概述 使用Vue3结合ElementPlus,ECharts工具实现后台管理系统页面,包含登录功能,…...

zsh: command not found: hdc - 鸿蒙 HarmonyOS Next

终端中执行 hdc 命令抛出如下错误; zsh: command not found: hdc 解决办法 首先,查找到 DevEco-Studio 的 toolchains 目录路径; 其次,按照类似如下的文件夹层级结果推理到 toolchains 子级路径下,其中 sdk 后一级的路径可能会存在差异,以实际本地路径结构为主,直至找到 ope…...

ffpyplayer+Qt,制作一个视频播放器

ffpyplayerQt,制作一个视频播放器 项目地址FFmpegMediaPlayerVideoWidget 项目地址 https://gitee.com/chiyaun/QtFFMediaPlayer FFmpegMediaPlayer 按照 QMediaPlayer的方法重写一个ffpyplayer # coding:utf-8 import logging from typing import Unionfrom PySide…...

transformer 中编码器原理和部分实现

编码器部分实现 目标 了解编码器中各个组成部分的作用掌握编码器中各个组成部分的实现过程 编码器部分 由N个编码器堆叠组成每个编码器由两个子层连接结构组成第一个子连接结构包括一个多头注意力子层和规范化层以及一个残差连接第二个子层连接结构包括一个前馈全链接子层和…...

MySQL多表查询实战指南:从SQL到XML映射的完整实现(2W+字深度解析)

MySQL多表查询实战指南:从SQL到XML映射的完整实现(2W+字深度解析) 第一章 多表查询基础与核心原理 1.1 关系型数据库设计范式 以电商系统为例的三范式实践: -- 原始数据表(违反第三范式) CREATE TABLE orders (order_id INT PRIMARY KEY,customer_name VARCHAR(50),p…...

蓝桥杯--寻找整数

题解 public static void main(String[] args) {int[] mod {0, 0, 1, 2, 1, 4, 5, 4, 1, 2, 9, 0, 5, 10, 11, 14, 9, 0, 11, 18, 9, 11, 11, 15, 17, 9, 23, 20, 25, 16, 29, 27, 25, 11, 17, 4, 29, 22, 37, 23, 9, 1, 11, 11, 33, 29, 15, 5, 41, 46};long t lcm(2, 3);lo…...

Kafka 中,为什么同一个分区只能由消费者组中的一个消费者消费?

在 Kafka 中,同一个分区只能由消费者组中的一个消费者消费,这是 Kafka 的设计决策之一,目的是保证消息的顺序性和避免重复消费。这背后有几个关键的原因: 1. 保证消息顺序性 Kafka 中的每个 分区(Partition&#xff…...

自然语言处理入门6——RNN生成文本

一、文本生成 我们在前面的文章中介绍了LSTM,根据输入时序数据可以输出下一个可能性最高的数据,如果应用在文字上,就是根据输入的文字,可以预测下一个可能性最高的文字。利用这个特点,我们可以用LSTM来生成文本。输入…...

$R^n$超平面约束下的向量列

原向量: x → \overset{\rightarrow}{x} x→ 与 x → \overset{\rightarrow}{x} x→法向相同的法向量(与 x → \overset{\rightarrow}{x} x→同向) ( x → ⋅ n → ∣ n → ∣ 2 ) n → (\frac{\overset{\rightarrow}x\cdot\overset{\righta…...

FPGA_DDR错误总结

1otp 31-67 解决 端口没连接 必须赋值; 2.PLACE 30-58 TERM PLINITCALIBZ这里有问题 在顶层输出但是没有管脚约束报错 3.ERROR: [Place 30-675] 这是时钟不匹配IBUF不在同一个时钟域,时钟不在同一个时钟域里,推荐的不建议修改 问题 原本…...

k8s之Service类型详解

1.ClusterIP 类型 2.NodePort 类型 3.LoadBalancer 类型 4.ExternalName 类型 类型为 ExternalName 的 Service 将 Service 映射到 DNS 名称,而不是典型的选择算符, 例如 my-service 或者 cassandra。你可以使用 spec.externalName 参数指定这些服务…...

NOIP2011提高组.玛雅游戏

目录 题目算法标签: 模拟, 搜索, d f s dfs dfs, 剪枝优化思路*详细注释版代码精简注释版代码 题目 185. 玛雅游戏 算法标签: 模拟, 搜索, d f s dfs dfs, 剪枝优化 思路 可行性剪枝 如果某个颜色的格子数量少于 3 3 3一定无解因为要求字典序最小, 因此当一个格子左边有…...

网络安全应急响应之文件痕迹排查:从犯罪现场到数字狩猎的进化论

凌晨3点,某金融企业的服务器突然告警,核心数据库出现未知进程访问。安全团队紧急介入时,攻击者已抹去日志痕迹。在这场与黑客的时间赛跑中,文件痕迹排查成为破局关键。本文将带您深入数字取证的"案发现场",揭…...

移动端六大语言速记:第11部分 - 内存管理

移动端六大语言速记:第11部分 - 内存管理 本文将对比Java、Kotlin、Flutter(Dart)、Python、ArkTS和Swift这六种移动端开发语言在内存管理方面的特性,帮助开发者理解和掌握各语言的内存管理机制。 11. 内存管理 11.1 垃圾回收机制对比 各语言垃圾回收机制的主要特点对比:…...

基于ssm框架的校园代购服务订单管理系统【附源码】

1、系统框架 1.1、项目所用到技术: javaee项目 Spring,springMVC,mybatis,mvc,vue,maven项目。 1.2、项目用到的环境: 数据库 :mysql5.X、mysql8.X都可以jdk1.8tomcat8 及以上开发…...

lib-zo,C语言另一个协程库,函数列表

lib-zo,C语言另一个协程库,函数列表 支持开启/禁用指定fd是否开启协程切换 /* 主动设置fd支持协程切换 */ void zcoroutine_enable_fd(int fd);/* 主动设置fd不支持协程切换 */ void zcoroutine_disable_fd(int fd);函数列表 #pragma once#ifndef ___ZC_LIB_INCLUDE_COROUTI…...

【10】数据结构的矩阵与广义表篇章

目录标题 二维以上矩阵矩阵存储方式行序优先存储列序优先存储 特殊矩阵对称矩阵稀疏矩阵三元组方式存储稀疏矩阵的实现三元组初始化稀疏矩阵的初始化稀疏矩阵的创建展示当前稀疏矩阵稀疏矩阵的转置 三元组稀疏矩阵的调试与总代码十字链表方式存储稀疏矩阵的实现十字链表数据标签…...

本地项目HTTPS访问问题解决方案

本地项目无法通过 HTTPS 访问的原因通常是默认配置未启用 HTTPS 或缺少有效的 SSL 证书。以下是详细解释和解决方案: 原因分析 默认开发服务器仅支持 HTTP 大多数本地开发工具(如 Vite、Webpack、React 等)默认启动的是 HTTP 服务器&#xff…...

猜猜乐游戏(python)

import randomprint(**30) print(欢迎进入娱乐城) print(**30)username input(输入用户名:) cs 0answer input( 是否加入"猜猜乐"游戏(yes/no)? )if answer yes:while True:num int(input(%s! 当前你的金币数为%d! 请充值(100¥30币&…...

spring boot 2.7 集成 Swagger 3.0 API文档工具

背景 Swagger 3.0 是 OpenAPI 规范体系下的重要版本,其前身是 Swagger 2.0。在 Swagger 2.0 之后,该规范正式更名为 OpenAPI 规范,并基于新的版本体系进行迭代,因此 Swagger 3.0 实际对应 OpenAPI 3.0 版本。这一版本着重强化了对…...

Dinky 和 Flink CDC 在实时整库同步的探索之路

摘要:本文整理自 Dinky 社区负责人,Apache Flink CDC contributor 亓文凯老师在 Flink Forward Asia 2024 数据集成(二)专场中的分享。主要讲述 Dinky 的整库同步技术方案演变至 Flink CDC Yaml 作业的探索历程,并深入…...

视频融合平台EasyCVR搭建智慧粮仓系统:为粮仓管理赋能新优势

一、项目背景 当前粮仓管理大多仍处于原始人力监管或初步信息化监管阶段。部分地区虽采用了简单的传感监测设备,仍需大量人力的配合,这不仅难以全面监控粮仓复杂的环境,还容易出现管理 “盲区”,无法实现精细化的管理。而一套先进…...