【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语句中的基本语法。

就到这里啦,再见!!!

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

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

相关文章

C# 中什么是重写(子类改写父类方法)

方法重写是指在继承关系中,子类重新实现父类或基类的某个方法。这种方法允许子类根据需要修改或扩展父类或基类的方法功能。在面向对象编程中,方法重写是一种多态的表现形式,它使得子类可以根据不同的需求和场景提供不同的方法实现。 方法重…

基于单片机的点阵电子显示屏上下左右移加减速系统

一、系统方案 本设计的任务就是完成一个1616的点阵设计,并能滚动显示“********************”内容。 主要内容是,能同时流动显示汉字;能实现显示汉字无闪烁;能实屏幕亮度较高。本LED显示屏能够以动态扫描的方式显示一个1616点阵汉…

【WPF C#】PorphyStruct类卟啉和类咕啉的结构分析

前言 首先,热烈祝贺家姐申请到了国家自然科学基金(8月底),找一些化学领域的程序和软件,助我姐一臂之力,顺便自己研究一下源码。 卟啉类化合物的结构分析 PorphyStruct,一种用于分析不同卟啉类非…

ac7260网卡不能连5g

之前路由器是双频,最近为了连物联网一堆,把双频拆成两个wifi 结果电脑上装的pdd网卡就罢工了,连4g可以,但是连5g网络就不行,连上却没网,导致网盘下东西慢。刚开始以为是tplink的易展问题,结果看…

【继RNN之后的一项技术】Transfomer 学习笔记

谷歌团队在17年的神作,论文17年6月发布 https://arxiv.org/abs/1706.03762 被NIPS2017收录,目前引用量已经逼近3w。 以下内容参考李沐老师的课程《动⼿学深度学习(Pytorch版)》 简介 注意力 自主性:有目的的搜索某样东西(键&…

CSS中如何实现文字描边效果(Text Stroke)?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 文字描边效果(Text Stroke)⭐ 示例⭐ 写在最后 ⭐ 专栏简介 前端入门之旅:探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端之旅 欢迎来到前端入门之旅!这个…

肖sir__设计测试用例方法之判定表06_(黑盒测试)

设计测试用例方法之判定表 1、判定表:是一种表达逻辑判断的工具。 2、判定表:包含四部分 1)条件桩(condition stub):列出问题的 所有条件(通常条件次序无关紧要)。 2)条件项&#x…

【数学建模竞赛】优化类赛题常用算法解析

优化类建模 问题理解和建模:首先,需要深入理解问题,并将问题抽象为数学模型。这包括确定问题的目标函数、约束条件和决策变量。 模型分析和求解方法选择:对建立的数学模型进行分析,可以使用数学工具和方法,…

【STM32】学习笔记(串口通信)

串口通信 通信接口硬件电路电平标准USARTUSART框图 通信接口 串口是一种应用十分广泛的通讯接口,串口成本低、容易使用、通信线路简单,可实现两个设备的互相通信 单片机的串口可以使单片机与单片机、单片机与电脑、单片机与各式各样的模块互相通信&#…

【Linux从入门到精通】通信 | 管道通信(匿名管道 命名管道)

本派你文章主要是对进程通信进行详解。主要内容是介绍 为什么通信、怎么进行通信。其中本篇文章主要讲解的是管道通信。希望本篇文章会对你有所帮助。 文章目录 一、进程通信简单介绍 1、1 什么是进程通信 1、2 为什么要进行通信 1、3 进程通信的方式 二、匿名管道 2、1 什么是…

LeetCode刷题笔记【25】:贪心算法专题-3(K次取反后最大化的数组和、加油站、分发糖果)

文章目录 前置知识1005.K次取反后最大化的数组和题目描述分情况讨论贪心算法 134. 加油站题目描述暴力解法贪心算法 135. 分发糖果题目描述暴力解法贪心算法 总结 前置知识 参考前文 参考文章: LeetCode刷题笔记【23】:贪心算法专题-1(分发饼…

List常见面试问题

List的特点有哪些? Java中的List是一种存放有序的、可以重复的数据的集合,它允许重复元素的存在。List中的元素都有对应的一个序列号(索引)记录着元素的位置,因此可以通过这个序列号来访问元素。 ‍ Java中集合有哪些? Java中…