【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语句的语法进行讲解。

目录

一、数据库操作

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创建

命令:

cpp 复制代码
CREATE TABLE 表名(
	字段1 字段1类型[COMMENT 字段1注释],
	字段2 字段2类型[COMMENT 字段2注释],
	......
	字段n 字段n类型[COMMENT 字段n注释]
)[COMMENT 表注释];

这里需要我们注意的是:[...]是可选的一个参数,还有就是最后一个字段后面是没有逗号,的。

下面进入演示环节,我们试着通过CREATE TABLE这个SQL语句来完成下图的表结构的创建:

这里我们首先要进入的是我们自己创建的数据库,而不是再系统中的数据库进行操作。

输入命令:

cpp 复制代码
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语句中的数据库操作和表操作。

数据库操作主要介绍了以下的语句:

cpp 复制代码
SHOW DATABASES;
CREATE DATABASE 数据库名;
USE 数据库名;
SELETE DATABASE();
DROP DATABASE 数据库名;

表操作主要介绍了以下的语句:

cpp 复制代码
SHOW TABLES;
CREATE TABLE 表名(字段 字段类型,字段 字段类型);
DESC 表名;
SHOW CREATE TABLE 表名;   显示该表的建表语句
ALTER TABLE 表名 ADD/MODIFY/CHANGE/DROP/RENAME TO...;
DROP TABLE 表名;

好了,友友们,以上就是DDL语句中的基本语法。

就到这里啦,再见!!!

相关推荐
RestCloud14 小时前
4中常见的数据集成方式
数据库
咯哥布林14 小时前
Ubuntu24安装MySQL8.4
mysql
Databend15 小时前
超 10 倍查询加速,N-Gram Index 设计与优化全解析
数据库
爱可生开源社区15 小时前
SCALE:一个面向专业级任务的大语言模型 SQL 能力开源评测框架
数据库
HyggeBest15 小时前
Mysql之undo log、redo log、binlog日志篇
后端·mysql
星环科技TDH社区版16 小时前
星环科技产品可存储的表格式功能介绍以及创建示例
大数据·数据库
Tapdata20 小时前
全球 DaaS 市场研究报告上线,聚焦数据服务化趋势与行业演进路径
数据库
李少兄21 小时前
MySQL 默认连接数
数据库·mysql
刘一说21 小时前
资深Java工程师的面试题目(六)数据存储
java·开发语言·数据库·面试·性能优化
江沉晚呤时21 小时前
EventSourcing.NetCore:基于事件溯源模式的 .NET Core 库
java·开发语言·数据库