【MySQL基础|第一篇】——谈谈SQL中的DDL语句
个人主页:兜里有颗棉花糖
欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创
收录于专栏【MySQL学习专栏】🎈
本专栏旨在分享学习MySQL的一点学习心得,欢迎大家在评论区讨论💌
前言:SQL语句的分类
SQL语句主要分为以下4类,请看:
| 分类 | 说明 |
|---|---|
DDL(Data Definition Language) | 数据定义语言,用于定义数据库、表、视图等对象的结构 |
DML(Data Manipulation Language) | 数据操作语言,用于对数据库中的数据进行增添、修改和删除操作 |
DQL(Data Query Language) | 数据查询语句,用于从数据库中检索数据,最常见的是SELECT语句。 |
DCLData Control Language | 用来创建数据库用户,控制数据库的访问权限。 |
本文对DDL语句的语法进行讲解。
目录
- 前言:SQL语句的分类
- 一、数据库操作
- 1.1查询
- 1.2创建数据库
- 可选项:if not exists
- 1.3删除数据库
- 1.4使用数据库
- 二、表操作(创建与查询)
- 2.1创建
- 2.2查询
- 2.3修改
- 添加字段
- 修改数据类型
- 修改字段名和字段类型
- 删除字段
- 修改表名
- 2.4删除
- 三、DDL语句总结
一、数据库操作
1.1查询
查询所有数据库:SHOW DATABASES;
查询当前数据库:SHOW DATABASE();
SHOW DATABASE();举例:
查询当前数据库(用于查询当前处于哪个数据库下):
SHOW DATABASE();
1.2创建数据库
创建数据库:CREATE DATABASE [IF NOT EXISTS] 数据库名 [DEFAULT CHARSET 字符集] [COLLATE 排序规则];
例如:创建数据库tmp_database,
输入命令:create database 数据库名称;即create database tmp_database;
注意:最后的分号;是英文版的分号;
请看:

出现Query OK, 1 row affected (0.05 sec)说明数据库创建成功了。
我们不妨来看以下刚刚创建的数据库,输入命令:
show databases;,请看:
如果我们此时再次创建相同的数据库
tmp_database,就会报错,请看:
报错原因当然就是数据库已经存在。
可选项:if not exists
如果不想出现报错的话(即如果数据库已经存在的话,我们就不要进行该数据库的创建了),此时我们就可以添加可选项:if not exists。输入命令:create database if not exists tmp_database;
请看演示:

当然,如果我们要创建的数据库不存在的话,当然会创建成功了。
1.3删除数据库
删除数据库:DROP DATABASE[IF EXISTS] 数据库名;
这里如果数据库存在,那么我们可以删除想要删除的数据库,此时我们可以添加可选项:if exists
命令:drop database if exists 想要删除的数据库。
比如我们要删除之前创建的数据库tmp_database,可以输入命令:drop database if exists tmp_database;
请看演示:

1.4使用数据库
使用数据库命令:USE 数据库名;
请看演示:

出现Database changed说明我们已经切换到了test数据库。
二、表操作(创建与查询)
2.1创建
命令:
CREATE TABLE 表名(字段1 字段1类型[COMMENT 字段1注释],字段2 字段2类型[COMMENT 字段2注释],......字段n 字段n类型[COMMENT 字段n注释]
)[COMMENT 表注释];
这里需要我们注意的是:[...]是可选的一个参数,还有就是最后一个字段后面是没有逗号,的。
下面进入演示环节,我们试着通过CREATE TABLE这个SQL语句来完成下图的表结构的创建:

这里我们首先要进入的是我们自己创建的数据库,而不是再系统中的数据库进行操作。
输入命令:
mysql> create table tb_person(-> id int comment '编号',-> name varchar(10) comment '姓名',-> age int comment '年龄',-> gender varchar(1) comment '性别'-> ) comment '用户表';

那如何验证这个数据库表创建成功呢,输入命令:
show tables;,请看:
如上图所示,tb_person就是我们刚刚创建的数据库表。
下面如果想要知道这个数据库表的字段和类型,输入命令:
DESC 表名;,请看:
2.2查询
下面是表结构如何查询的三种语法:
第一种:查询当前数据库所有表。
命令:SHOW TABLES;
SHOW TABLES;可以查询当前数据库的所有表结构,前提是,我们需要先使用USE 数据库名;进入或者使用某个数据库,然后再根据SHOW TABLES;来查询当前数据库的所有表结构。
请看演示:

我们切换到系统库sys中看一下:


可以看到当前数据库sys中有很多表结构,因为sys是一个系统库。
第二种:查询表结构。
命令:DESC 表名;
举例:输入命令:DESC tb_person;

第三种:查询指定表的建表语句。
命令:SHOW CREATE TABLE 表名;
举例:输入命令:show create table tb_person;

2.3修改
对表的修改操作以下面数据库test中的表tmp进行演示:

修改表的操作主要分为这几种:往表中添加字段、修改表中的字段、删除表中的字段、修改表中。
添加字段
第一种:往表中添加字段。
命令:ALTER TABLE 表名 ADD 字段名 类型(长度) [COMMENT 注释] 约束;
这里方括号[]中的内容是依旧是可选的。
现在为emp表添加一个新的字段名称为nickname,类型为varchar(20)
输入命令: alter table emp add nickname varchar(10) comment '名称';
演示如下:

查看以下表emp中的内容:

修改数据类型
修改数据类型命令:ALTER TABLE 表名 MODIFY 字段名 新数据类型(长度);
修改字段名和字段类型
修改字段名和字段类型命令:ALTER TABLE 表名 CHANGE 旧字段名 新字段名 类型(长度) [COMMENT 注释] [约束];
下面进行案例的演示:将emp表中的nickname字段修改为username,类型为varchar(30);
输入命令:alter table emp change nickname username varchar(10);

删除字段
删除字段命令:ALTER TABLE 表名 DROP 字段名;
直接进入案例演示环节:将emp表中的username字段删除:
演示结果如下:

修改表名
修改表名命令:ALTER TABLE 表名 RENAME TO 新表名;
案例演示:将emp表的表名修改为employee;
输入命令:alter table emp rename to employee;

验证一下:show tables;,请看:

2.4删除
删除表有两种:第一种是单纯的把表进行删除了,第二种是删除指定表并且重新创建该表。
第一种:仅仅删除表
命令:DROP TABLE[IF EXIST] 表名;

下面进入案例演示,删除tb_person表。输入命令:drop table if exists tb_person;
结果如下(成功删除了表tb_person):

第二种:删除指定表并且重新创建该表。
命令:TRUNCATE TABLE 表名;

下面进入演示阶段:
输入命令:truncate table employee;

三、DDL语句总结
本文我们主要介绍了DDL语句中的数据库操作和表操作。
数据库操作主要介绍了以下的语句:
SHOW DATABASES;
CREATE DATABASE 数据库名;
USE 数据库名;
SELETE DATABASE();
DROP DATABASE 数据库名;
表操作主要介绍了以下的语句:
SHOW TABLES;
CREATE TABLE 表名(字段 字段类型,字段 字段类型);
DESC 表名;
SHOW CREATE TABLE 表名; 显示该表的建表语句
ALTER TABLE 表名 ADD/MODIFY/CHANGE/DROP/RENAME TO...;
DROP TABLE 表名;
好了,友友们,以上就是DDL语句中的基本语法。
就到这里啦,再见!!!
相关文章:
【MySQL基础|第一篇】——谈谈SQL中的DDL语句
个人主页:兜里有颗棉花糖 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创 收录于专栏【MySQL学习专栏】🎈 本专栏旨在分享学习MySQL的一点学习心得,欢迎大家在评论区讨论💌 前言ÿ…...
移动安全测试框架-MobSF WINDOWS 环境搭建
安装python python-3.11.5-amd64.exe 安装Win64OpenSSL-3_1_2.exe 安装VisualStudioSetup.exe github下载安装包 https://github.com/MobSF/Mobile-Security-Framework-MobSF/archive/refs/heads/master.zip GitHub - MobSF/Mobile-Security-Framework-MobSF: Mobile Secur…...
QT连接OpenCV库完成人脸识别
1.相关的配置 1> 该项目所用环境:qt-opensource-windows-x86-mingw491_opengl-5.4.0 2> 配置opencv库路径: 1、在D盘下创建一个opencv的文件夹,用于存放所需材料 2、在opencv的文件夹下创建一个名为:opencv3.4-qt-intall 文…...
使用 ElasticSearch 作为知识库,存储向量及相似性搜索
一、ElasticSearch 向量存储及相似性搜索 在当今大数据时代,快速有效地搜索和分析海量数据成为了许多企业和组织的重要需求。Elasticsearch 作为一款功能强大的分布式搜索和分析引擎,为我们提供了一种优秀的解决方案。除了传统的文本搜索,El…...
视频图像处理算法opencv在esp32及esp32s3上面的移植,也可以移植openmv
opencv在esp32及esp32s3上面的移植 Opencv简介 OpenCV是一个基于Apache2.0许可(开源)发行的跨平台计算机视觉和机器学习软件库,可以运行在Linux、Windows、Android和Mac OS操作系统上,它轻量级而且高效——由一系列 C 函数和少量…...
2. postgresql并行扫描(1)——pg强制走并行扫描建表及参数配置
转载自:https://developer.aliyun.com/article/700370 1. 参数设置 1.1 postgresql.conf中修改 # 1、总的可开启的WORKER足够大 max_worker_processes 128# 2、所有会话同时执行并行计算的并行度足够大 max_parallel_workers64# 3、单个QUERY中并行计算NODE开…...
【C++】动态内存管理
【C】动态内存管理 new和delete用法内置类型自定义类型抛异常定位new 刨析new和delete的执行与实现逻辑功能执行顺序newdelete 功能实现operator new与operator delete malloc free与new delete的总结 在我们学习C之前 在C语言中常用的动态内存管理的函数为: mallo…...
MATLAB R2023a完美激活版(附激活补丁)
MATLAB R2023a是一款面向科学和工程领域的高级数学计算和数据分析软件,它为Mac用户提供了强大的工具和功能,用于解决各种复杂的数学和科学问题。以下是MATLAB R2023a Mac的一些主要特点和功能: 软件下载:MATLAB R2023a完美激活版 …...
垃圾回收 - 标记压缩算法
压缩算法是将标记清除算法与复制算法相结合的产物。 1、什么是标记压缩算法 标记压缩算法是由标记阶段和压缩阶段构成。 首先,这里的标记阶段和标记清除算法时提到的标记阶段完全一样。 接下来我们要搜索数次堆来进行压缩。压缩阶段通过数次搜索堆来重新填充活动对…...
Vue中过滤器如何使用?
过滤器是对即将显示的数据做进⼀步的筛选处理,然后进⾏显示,值得注意的是过滤器并没有改变原来 的数据,只是在原数据的基础上产⽣新的数据。过滤器分全局过滤器和本地过滤器(局部过滤器)。 目录 全局过滤器 本地过滤器…...
【爬虫】7.4. 字体反爬案例分析与爬取实战
字体反爬案例分析与爬取实战 文章目录 字体反爬案例分析与爬取实战1. 案例介绍2. 案例分析3. 爬取 本节来分析一个反爬案例,该案例将真实的数据隐藏到字体文件里,即使我们获取了页面源代码,也无法直接提取数据的真实值。 1. 案例介绍 案例网…...
Linux cat 的作用
Linux中的cat命令用于连接文件并打印到标准输出设备(通常是终端)。 它的主要作用有以下几点: 查看文件内容:cat命令可用于查看文本文件的内容,将文件的内容从第一行到最后一行打印到终端。 合并文件:cat命…...
Windows中的命令行提示符里的Start命令执行路径包含空格时的问题
转载:电脑知识收藏夹 Blog Archive Windows中的命令行提示符里的Start命令执行路径包含空格时的问题 当使用Windows 中的命令行提示符执行这段指令时(测试Start命令执行带空格的路径的程序或文件问题),第一行Start会成功执行,跳出记事本程…...
【基础计算机网络1】认识计算机网络体系结构,了解计算机网络的大致模型(上)
前言 今天,小编我也要进入计算机网络的整个内容,虽然这个计算机网络的内容在考研部分中占比比较小,有些人不把这一部分当成重点,这种想法是错误的。我觉得考研的这四个内容都是非常重要的,我们需要进行全力以赴的对待每…...
学校宿舍智能水电表管理系统:为节约资源保驾护航
随着科技的不断发展,越来越多的学校开始重视宿舍管理的智能化。其中,智能水电表管理系统作为一项重要的基础设施,已经逐渐被各大高校引入。本文将围绕学校宿舍智能水电表管理系统展开详细介绍,让我们一起来了解一下这个节约资源、…...
EasyFalsh移植使用方法
参考:https://blog.csdn.net/Mculover666/article/details/105510837 注意: 这里说的修改默认环境变量后修改环境变量版本号就自动重新写入到flash这句话是有问题的,要开启上面【#define EF_ENV_AUTO_UODATE】宏定义后才会实现该功能&#…...
函数栈帧(详解)
一、前言: 环境:X86Vs2013 我们C语言学习过程中是否遇到过如下问题或者疑惑: 1、局部变量是如何创建的? 2、为什么局部变量的值是随机值? 3、函数是怎么传参的?传参的顺序是怎样的? 4、形…...
【面试题总结1】-Static、Const、QT中基于TCP的通信服务器/客户端端操作
1、在C和C中static关键字的用法 在C语言和C中, ① static修饰未初始化的全局变量,结果默认为0 ; ② 当static修饰局部变量时,只是延长了这个变量的生命周期,并没有改变其作用域。 比如说,这个变量是在哪个函…...
镜像的基本命令(docker)
文章目录 前言一、docker命令介绍1、帮助命令2、显示镜像3、搜索镜像4、下载镜像5、删除镜像 总结 前言 本文主要介绍docker中与镜像相关的一些命令,是对狂神课程的一些总结,作为一个手册帮助博主和使用docker的同学们来查找和回忆。 实验环境…...
Liunx远程调试
1、Vscode中使用xdebug调试php 2、工具的下载 3、debug的配置 1、Vscode中使用xdebug调试php 1,在phpstudy中启用xdebug扩展 2,打开php.ini,修改配置 [Xdebug] zend_extensionD:/PHP/Extensions/php/php5.6.9nts/ext/php_xdebug.dll xdebug…...
龙虎榜——20250610
上证指数放量收阴线,个股多数下跌,盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型,指数短线有调整的需求,大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的:御银股份、雄帝科技 驱动…...
Android Wi-Fi 连接失败日志分析
1. Android wifi 关键日志总结 (1) Wi-Fi 断开 (CTRL-EVENT-DISCONNECTED reason3) 日志相关部分: 06-05 10:48:40.987 943 943 I wpa_supplicant: wlan0: CTRL-EVENT-DISCONNECTED bssid44:9b:c1:57:a8:90 reason3 locally_generated1解析: CTR…...
PPT|230页| 制造集团企业供应链端到端的数字化解决方案:从需求到结算的全链路业务闭环构建
制造业采购供应链管理是企业运营的核心环节,供应链协同管理在供应链上下游企业之间建立紧密的合作关系,通过信息共享、资源整合、业务协同等方式,实现供应链的全面管理和优化,提高供应链的效率和透明度,降低供应链的成…...
渲染学进阶内容——模型
最近在写模组的时候发现渲染器里面离不开模型的定义,在渲染的第二篇文章中简单的讲解了一下关于模型部分的内容,其实不管是方块还是方块实体,都离不开模型的内容 🧱 一、CubeListBuilder 功能解析 CubeListBuilder 是 Minecraft Java 版模型系统的核心构建器,用于动态创…...
大模型多显卡多服务器并行计算方法与实践指南
一、分布式训练概述 大规模语言模型的训练通常需要分布式计算技术,以解决单机资源不足的问题。分布式训练主要分为两种模式: 数据并行:将数据分片到不同设备,每个设备拥有完整的模型副本 模型并行:将模型分割到不同设备,每个设备处理部分模型计算 现代大模型训练通常结合…...
成都鼎讯硬核科技!雷达目标与干扰模拟器,以卓越性能制胜电磁频谱战
在现代战争中,电磁频谱已成为继陆、海、空、天之后的 “第五维战场”,雷达作为电磁频谱领域的关键装备,其干扰与抗干扰能力的较量,直接影响着战争的胜负走向。由成都鼎讯科技匠心打造的雷达目标与干扰模拟器,凭借数字射…...
RNN避坑指南:从数学推导到LSTM/GRU工业级部署实战流程
本文较长,建议点赞收藏,以免遗失。更多AI大模型应用开发学习视频及资料,尽在聚客AI学院。 本文全面剖析RNN核心原理,深入讲解梯度消失/爆炸问题,并通过LSTM/GRU结构实现解决方案,提供时间序列预测和文本生成…...
Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析
Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析 一、第一轮提问(基础概念问题) 1. 请解释Spring框架的核心容器是什么?它在Spring中起到什么作用? Spring框架的核心容器是IoC容器&#…...
Redis:现代应用开发的高效内存数据存储利器
一、Redis的起源与发展 Redis最初由意大利程序员Salvatore Sanfilippo在2009年开发,其初衷是为了满足他自己的一个项目需求,即需要一个高性能的键值存储系统来解决传统数据库在高并发场景下的性能瓶颈。随着项目的开源,Redis凭借其简单易用、…...
Git常用命令完全指南:从入门到精通
Git常用命令完全指南:从入门到精通 一、基础配置命令 1. 用户信息配置 # 设置全局用户名 git config --global user.name "你的名字"# 设置全局邮箱 git config --global user.email "你的邮箱example.com"# 查看所有配置 git config --list…...






