SQL语法与DDL语句的使用
文章目录
- 前言
- 一、SQL通用语法
- 二、DDL语句
- 1、DDL功能介绍
- 2、DDL语句对数据库操作
- (1)查询所有数据库
- (2)查询当前数据库
- (3)创建数据库
- (4)删除数据库
- (5)切换数据库
- (6)查询当前数据库中的所有表
- (7)创建表结构
- (8)查看指定表结构
- (9)查询指定表的建表语句
- (10)表中添加字段
- (11)在表中修改指定数据类型
- (12)表中修改字段名和字段类型
- (13)表中删除字段
- (14)修改表名
- (15)删除表
- (16)删除指定表,并重新创建表
- 总结
前言
本文主要介绍SQL的通用语法和DDL语句的使用,阅读本文前读者应了解数据库的存储结构。
实验环境:Windows11操作系统,Mysql数据库
一、SQL通用语法
关于sql语句的语法主要有以下几个方面:
(1) SQL语句可以单行或多行书写,以分号结尾
(2) SQL语句可以使用空格/缩进来增强语句的可读性
(3) MySQL数据库的SQL语句不区分大小写,关键字建议使用大写
(4) 注释单行注释:-- 注释内容 或 # 注释内容多行注释:/* 注释内容 */
二、DDL语句
1、DDL功能介绍
SQL语句根据其功能主要可以分为以下四类:DDL、DML、DQL、DCL。
本文介绍的DDL语句的功能为:数据定义语言,用来定义数据库对象(数据库,表,字段)
2、DDL语句对数据库操作
(1)查询所有数据库
show databases;
当我们输入这个语句后就会显示当前我们所拥有的数据库:mysql,information_schema等
(2)查询当前数据库
select database();
因为当前没有使用任何数据库,所以是空:
(3)创建数据库
create database [if not exists ] 数据库名
[default charset 字符集] [collate 排序规则];
# 方括号中的都是可选内容,即使不书写也会采用默认方案
比如我们创建一个名为test的数据库,采用数据库默认的字符集和排序规则
可以看到当前数据库服务器中test数据库就被成功创建了。
又由于在同一数据库服务器中,不能同时创建两个名称相同的数据库,否则会报错(如果我们再次创建一个名为test的数据库就会报错)
为了避免这样的错误,我们可以采用if not exists参数来解决这个问题,如果数据库存在则不创建,如果不存在就创建。
如下图所示我们再次创建test数据库时,就不会报错:
当我们创建一个名为test1,字符集指定为utf8mb4时的数据库使用的语句:
(4)删除数据库
drop database [if exists] 数据库名;
如下图我们删除创建的test1数据库
(5)切换数据库
use 数据库名;
当我们要操作一个数据库下的表时,就需要通过该指令,切换到对应的数据库下,否则是不能操作的。
如下图所示,我们切换到test数据库中:
(6)查询当前数据库中的所有表
show tables;
注意:使用该语句时,要先使用use语句切换到一个数据库下。
如我们查看test数据库中的表数据,由于当前test数据库下没有表,所以显示为空:
(7)创建表结构
create table 表名(字段1 字段1类型[comment 字段1注释],字段2 字段2类型[comment 字段2注释],字段3 字段3类型[comment 字段3注释],......字段n 字段n类型[comment 字段n注释])[comment 表注释];
我们创建一个如下图所示的表结构,并将表格名字命名为characters:


可以看到我们成功在名为test的数据库中创建了一张名为characters的表结构。
(8)查看指定表结构
desc 表名;
通过这条指令,我们可以查看到指定表的字段,字段的类型、是否可以为NULL,是否存在默认值等信息。
(9)查询指定表的建表语句
show create table 表名;
通过这条指令,主要是用来查看建表语句的,而有部分参数我们在创建表的时候,并未指定也会查询到,因为这部分是数据库的默认值,如:存储引擎、字符集等。
(10)表中添加字段
alter table 表名 add 字段名 类型 [comment 注释] [约束];
为characters表添加一个名为tel的字段,类型为varchar(11)如下图所示:

(11)在表中修改指定数据类型
alter table 表名 modify 字段名 新数据类型;
修改tel字段的类型为varchar(12),如下图所示:

(12)表中修改字段名和字段类型
alter table 表名 change 旧字段名 新字段名 类型 [comment 注释] [约束];
如将字段tel改为newname,类型为varchar(30),如下图所示:

(13)表中删除字段
alter table 表名 drop 字段名;
将字段newname字段删除,如下图所示:

(14)修改表名
alter table 表名 rename to 新表名;
将characters表名改为test如下图所示:

(15)删除表
drop table [if exists] 表名;
我们将test表删除,如下图所示:

(16)删除指定表,并重新创建表
truncate table 表名;
该语句的作用是将指定表删除并重新创建一个表名、表头与原表完全相同的表,只不过表中存储的数据被清空了,起到一个刷新表的作用。
总结
本文主要介绍了SQL语句中的DDL语句的使用方法,希望对您有所帮助。
相关文章:
SQL语法与DDL语句的使用
文章目录 前言一、SQL通用语法二、DDL语句1、DDL功能介绍2、DDL语句对数据库操作(1)查询所有数据库(2)查询当前数据库(3)创建数据库(4)删除数据库(5)切换数据…...
Node.js /webpack DAY6
一、Node.js 入门 1. 什么是 Node.js? 2. 什么是前端工程化? 3. Node.js 为何能执行 JS? 4. Node.js 安装 5. 使用 Node.js 总结 6. fs 模块 - 读写文件 /*** 目标:基于 fs 模块 读写文件内容* 1. 加载 fs 模块对象* 2. 写入文件…...
Java:SpringBoot使用AES对JSON数据加密和解密
目录 1、加密解密原理2、项目示例2.1、项目结构2.2、常规业务代码2.3、加密的实现 2.4、接口测试2.5、总结 1、加密解密原理 客户端和服务端都可以加密和解密,使用base64进行网络传输 加密方 字符串 -> AES加密 -> base64解密方 base64 -> AES解密 -&g…...
【PHP】Swoole:一款强大的PHP网络编程工具
在科学计算领域,Swoole是一款功能强大的PHP扩展,它提供了高性能的网络通信和异步编程功能。Swoole不仅支持TCP、UDP、Unix Socket和HTTP等通信协议,还具有异步并发处理能力,使得PHP开发者能够轻松地构建高性能的网络应用程序。 1…...
【C语言】每日一题(除自身以外数组的乘积)
添加链接描述,链接奉上 方法: 暴力循环:前缀积后缀积(分组): 暴力循环: 暴力循换真的是差生法宝,简单好懂,就是不实用,大多数的题目都会超过时间限制(无奈) 思路&…...
C语言每日一练-----Day(4)
本专栏为c语言练习专栏,适合刚刚学完c语言的初学者。本专栏每天会不定时更新,通过每天练习,进一步对c语言的重难点知识进行更深入的学习。 今日练习题关键字:记负均正 旋转数组的最小数字 二分查找 💓博主…...
如何使用工具将批量查询的物流信息导出到表格
现如今,物流行业发展迅速,人们对于物流信息的查询需求也越来越高。为了满足用户的需求,我们推荐一款便捷高效的物流信息查询工具——"固乔快递查询助手"软件。 首先,用户需要下载并安装"固乔快递查询助手"软件…...
Haproxy+Keepalive 整合rabbitmq实现高可用负载均衡
Haproxy 实现负载均衡 HAProxy 提供高可用性、负载均衡及基于 TCPHTTP 应用的代理,支持虚拟主机,它是免费、快速并且可靠的一种解决方案,包括 Twitter,Reddit,StackOverflow,GitHub 在内的多家知名互联网公司在使用。HAProxy 实现了一种…...
电子病历系统的核心技术——电子病历编辑器
一体化电子病历系统基于云端SaaS服务的方式,采用B/S(Browser/Server)架构提供,覆盖了医疗机构电子病历模板制作到管理使用的整个流程。除实现在线制作内容丰富、图文并茂、功能完善的电子病历模板外,还可按照医疗机构的…...
C++------map和set的使用
文章目录 关联式容器键值对树型结构的关联式容器set的介绍map的介绍 关联式容器 什么是关联式容器?它与序列式容器有什么区别? 关联式容器也是用来存储数据的,与序列式容器不同的是,其里面存储的是<key,value>结…...
URI和URL和URN区别
URI、URL 和 URN 是一系列从不同角度来看待资源标识和定位的概念。虽然它们有一些重叠,但每个概念都强调了不同的方面。 URI(Uniform Resource Identifier):URI 是一个通用的术语,用于标识和定位资源。它是一个抽象的概…...
【Unity学习笔记】DOTween(1)基础介绍
本文中大部分内容学习来自DOTween官方文档 文章目录 什么是DOTween?DOSetOnTweenerSequenceTweenNested tween 初始化使用方式 什么是DOTween? DOTween是一个动画插件,Tween是补间的意思。这个插件以下简称DOT,DOT很方便使用&…...
springboot项目,使用JNA框架调用C++库无法捕获异常的解决思路
写在前面:这个东西真的坑,工作上遇到的和JNA项目的入门案例差别就像是二重积分与小学数学之间的差距,折磨! 使用 JNA(Java Native Access)框架调用 C 库时,如果出现问题导致进程直接结束而无法捕…...
【项目 计网7】4.20 多进程实现并发服务器 4.22 多线程实现并发服务器
文章目录 4.20 多进程实现并发服务器server_process.cclient.c4.22 多线程实现并发服务器客户端代码:服务端代码: 4.20 多进程实现并发服务器 要实现TCP通信服务器处理并发的任务,使用多线程或者多进程来解决。 思路: 1、一个父进…...
论文阅读_扩散模型_LDM
英文名称: High-Resolution Image Synthesis with Latent Diffusion Models 中文名称: 使用潜空间扩散模型合成高分辨率图像 地址: https://ieeexplore.ieee.org/document/9878449/ 代码: https://github.com/CompVis/latent-diffusion 作者:Robin Rombach 日期: 20…...
LeetCode——回溯篇(二)
刷题顺序及思路来源于代码随想录,网站地址:https://programmercarl.com 目录 131. 分割回文串 93. 复原 IP 地址 78. 子集 90. 子集 II 491. 递增子序列 131. 分割回文串 给你一个字符串 s,请你将 s 分割成一些子串,使每个…...
RabbitMQ工作模式-发布订阅模式
Publish/Subscribe(发布订阅模式) 官方文档: https://www.rabbitmq.com/tutorials/tutorial-three-python.html 使用fanout类型类型的交换器,routingKey忽略。每个消费者定义生成一个队列关绑定到同一个Exchange,每个…...
JDK源码解析-Object
1. Object类 所有类的基类——java.lang.Object Object 类是所有类的基类,当一个类没有直接继承某个类时,默认继承Object类Object 类属于 java.lang 包,此包下的所有类在使用时无需手动导入,系统会在程序编译期间自动导入。 思…...
pinia——添加插件——基础积累
问题:是否给pinia添加过插件?具体添加的方式是什么? 在pinia中,我们可以为仓库添加插件,通过添加插件能够扩展以下的内容: 为 store 添加新的属性 定义 store 时增加新的选项 为 store 增加新的方法 包装现…...
软件国产化之殇
今天又看到这么一个帖子讨论一款国产化软件,属实给我震撼到了。 对于国产化产品,一直主打的都是”自研“,难道是我对”自研“这个词的理解有误? 做一个产品,别人开源了,你拿过来使用,你可以说…...
深入剖析AI大模型:大模型时代的 Prompt 工程全解析
今天聊的内容,我认为是AI开发里面非常重要的内容。它在AI开发里无处不在,当你对 AI 助手说 "用李白的风格写一首关于人工智能的诗",或者让翻译模型 "将这段合同翻译成商务日语" 时,输入的这句话就是 Prompt。…...
Linux链表操作全解析
Linux C语言链表深度解析与实战技巧 一、链表基础概念与内核链表优势1.1 为什么使用链表?1.2 Linux 内核链表与用户态链表的区别 二、内核链表结构与宏解析常用宏/函数 三、内核链表的优点四、用户态链表示例五、双向循环链表在内核中的实现优势5.1 插入效率5.2 安全…...
Xshell远程连接Kali(默认 | 私钥)Note版
前言:xshell远程连接,私钥连接和常规默认连接 任务一 开启ssh服务 service ssh status //查看ssh服务状态 service ssh start //开启ssh服务 update-rc.d ssh enable //开启自启动ssh服务 任务二 修改配置文件 vi /etc/ssh/ssh_config //第一…...
抖音增长新引擎:品融电商,一站式全案代运营领跑者
抖音增长新引擎:品融电商,一站式全案代运营领跑者 在抖音这个日活超7亿的流量汪洋中,品牌如何破浪前行?自建团队成本高、效果难控;碎片化运营又难成合力——这正是许多企业面临的增长困局。品融电商以「抖音全案代运营…...
图表类系列各种样式PPT模版分享
图标图表系列PPT模版,柱状图PPT模版,线状图PPT模版,折线图PPT模版,饼状图PPT模版,雷达图PPT模版,树状图PPT模版 图表类系列各种样式PPT模版分享:图表系列PPT模板https://pan.quark.cn/s/20d40aa…...
NXP S32K146 T-Box 携手 SD NAND(贴片式TF卡):驱动汽车智能革新的黄金组合
在汽车智能化的汹涌浪潮中,车辆不再仅仅是传统的交通工具,而是逐步演变为高度智能的移动终端。这一转变的核心支撑,来自于车内关键技术的深度融合与协同创新。车载远程信息处理盒(T-Box)方案:NXP S32K146 与…...
阿里云Ubuntu 22.04 64位搭建Flask流程(亲测)
cd /home 进入home盘 安装虚拟环境: 1、安装virtualenv pip install virtualenv 2.创建新的虚拟环境: virtualenv myenv 3、激活虚拟环境(激活环境可以在当前环境下安装包) source myenv/bin/activate 此时,终端…...
从实验室到产业:IndexTTS 在六大核心场景的落地实践
一、内容创作:重构数字内容生产范式 在短视频创作领域,IndexTTS 的语音克隆技术彻底改变了配音流程。B 站 UP 主通过 5 秒参考音频即可克隆出郭老师音色,生成的 “各位吴彦祖们大家好” 语音相似度达 97%,单条视频播放量突破百万…...
Python的__call__ 方法
在 Python 中,__call__ 是一个特殊的魔术方法(magic method),它允许一个类的实例像函数一样被调用。当你在一个对象后面加上 () 并执行时(例如 obj()),Python 会自动调用该对象的 __call__ 方法…...
Easy Excel
Easy Excel 一、依赖引入二、基本使用1. 定义实体类(导入/导出共用)2. 写 Excel3. 读 Excel 三、常用注解说明(完整列表)四、进阶:自定义转换器(Converter) 其它自定义转换器没生效 Easy Excel在…...











