MySQL 篇-深入了解 DDL 语言(一)

🔥博客主页: 【小扳_-CSDN博客】**
❤感谢大家点赞👍收藏⭐评论✍**

文章目录

[](#1.0 MySQL 说明)[1.0 MySQL 说明](#1.0 MySQL 说明)

[](#2.0 DDL 语言)[2.0 DDL 语言](#2.0 DDL 语言)

[](#2.1 DDL 语言 - 定义数据库)[2.1 DDL 语言 - 定义数据库](#2.1 DDL 语言 - 定义数据库)

[2.1.1 创建数据库操作](#2.1.1 创建数据库操作)

[2.1.2 查看数据库操作](#2.1.2 查看数据库操作)

[2.1.3 使用数据库操作](#2.1.3 使用数据库操作)

[2.1.4 删除数据库操作](#2.1.4 删除数据库操作)

[](#2.2 DDL 语言 - 定义表格)[2.2 DDL 语言 - 定义表格](#2.2 DDL 语言 - 定义表格)

[2.2.1 创建表格操作](#2.2.1 创建表格操作)

[2.2.2 查询表格操作](#2.2.2 查询表格操作)

[2.2.3 删除表格操作](#2.2.3 删除表格操作)

[2.2.4 修改表格操作](#2.2.4 修改表格操作)


1.0 MySQL 说明

MySQL 是一种关系型数据库管理系统,它支持使用 SQL(Structured Query Language)来管理和操作数据库。SQL 是一种标准化的数据库查询语言,包括 DDL、DML、DQL、DCL 和 TCL等不同类型的语句。

2.0 DDL 语言

DDL 是数据定义语言(Data Definition Language)的缩写,是一种用于定义数据库结构和模式的语言。DDL 包括创建、修改和删除数据库表、视图、索引等数据库对象的语句。常见的 DDL 语句包括 CREATE、ALTER 和 DROP 等。因此,DDL 不是一种独立的编程语言,而是用于管理数据库结构的语言。简单来说, DDL 就是对数据库、表进行增加、删除、查询、修改。

2.1 DDL 语言 - 定义数据库

用 DDL 语言来对数据库的操作主要有一下四点:创建数据库、查询当前的数据库、使用指定的数据库、删除数据库。

2.1.1 创建数据库操作

创建数据库的 SQL 语句为:

sql 复制代码
create database [ if not exists ] 数据库名;

对于 [ if not exists ] ,翻译为:"如果改数据库不存在" 。这段代码可写可不写,没有强制要求。主要区别是,若没有加上这段代码且存在该数据库,则会报错;若加上这段代码且存在该数据库。则不会报错。

已知已经存在 db01 这个数据库了,通过 create database db01; 再来创建时,会报错。如果加上 if not exists ,那么及时创建相同的数据库也不会报错,当然也不可能创建一个一摸一样的数据库。

2.1.2 查看数据库操作

查看全部数据库的 SQL 语句:

sql 复制代码
 show databases;

需要注意的是,这里的 databases 记得加上 s 且该后面结尾加上 ";" 。

查看的结果为:

在红色框里面的数据库是 MySQL 自带的数据库,万万不可对这四个数据库进行任何危险操作。否则 MySQL 出现问题,需要重新安装了。

除了这个查看全部数据库操作之外,还有查看当前使用数据库操作。

查看当前数据库的 SQL 语句:

sql 复制代码
select database();

这里的 database 是没有加上 s 的且注意是加上 () 。

操作结果为:

当前使用的数据库为 db01 。

2.1.3 使用数据库操作

使用数据库的 SQL 语句:

sql 复制代码
use 数据库名;

简单来说,就是选择指点的数据库。

操作结果为:

2.1.4 删除数据库操作

删除数据库的 SQL 语句:

sql 复制代码
drop database if exists 数据库名;

若存在该数据库,删除不会报错;如果没有加上 if exists 这段代码,那么当不存在该数据库而要删除该数据库时,会报错。

操作结果为:

删除该数据库后,查看全部数据时,不存在 db01 这个库了。显然是删除成功了。

2.2 DDL 语言 - 定义表格

在对表进行操作之前,需要先选择数据库。DDL 来定义表格的操作有:创建表格、查询表格、修改表格、删除表格。

2.2.1 创建表格操作

1)在创建表格之前,先来简单了解约束

约束概念:约束是作用与表中字段上的规则,用于限制存储在表中的数据。

约束目的:保证数据中数据的正确性、有效性和完整性。

约束类型如下:

2)在创建表格之前,再来简单了解数据类型

数据类型可以简单理解为,该字段需要存储空间的大小。总共分为三大类:数值类型、字符串类型、日期时间类型。

数值类型如图:

字符串常见类型如图:

两者区别:举例子 char(10) 与 varchar(10) ,对于 char(10) 来说,不管空间是否占满,都要消耗 10 个字节大小的空间。而对于 varchar(10) 来说,若空间没有占满 10 个字节大小,就会按照消耗实际存储空间大小。

日期时间类型如图:

3)创建表格的 SQL 语句:

sql 复制代码
create table 表名(
    字段 1 字段类型 [约束] [ comment 字段1注释 ],

    ......
    
    字段 n 字段类型 [约束] [ comment 字段n注释] 
) [comment 表注释];

实际例子演示:

sql 复制代码
create table tb_user(
    id tinyint unsigned auto_increment primary key comment '唯一标识',
    username varchar(20) not null unique comment '用户名',
    name varchar(20) not null comment '名字',
    age tinyint unsigned comment '年龄',
    gender char(1) default '男' comment '性别,默认为男性'
)comment '用户表';

操作结果为:

这就可以得到一个表格。之后就可以在表格中添加数据了。

2.2.2 查询表格操作

查询当前该数据库中的全部表的 SQL 语句:

sql 复制代码
-- 查看表
show tables;

操作结果为:

查询该表的结构的 SQL 语句:

sql 复制代码
-- 查看表的结构
desc 表名;

操作结果为:

注意查询两者的区别:一个是查询所有的表、另一个是查询指定表的结构。

2.2.3 删除表格操作

删除表格的 SQL 语句为:

sql 复制代码
-- 删除表
drop table 表名;

2.2.4 修改表格操作

1)添加字段的 SQL 语句:

sql 复制代码
alter table 表名 add 字段名 类型 [约束];

2)修改字段类型的 SQL 语句:

sql 复制代码
alter table 表名 modify 字段名 新数据类型;

3)修改字段名和字段类型的 SQL 语句:

sql 复制代码
alter table 表名 change 旧字段名 新字段名 类型 [约束];

4)删除字段的 SQL 语句:

sql 复制代码
alter table 表名 drop column 字段名;

5)修改表名的 SQL 语句:

sql 复制代码
rename table 旧表名 to 新表名;

结合以上操作举个修改例子:

sql 复制代码
-- 增加表中的列
alter table tb_user add qq char(10) comment 'QQ号';

-- 修改字段类型
alter table tb_user modify qq char(22);

-- 修改字段名和字段类型
alter table tb_user change qq qq_name char(20);

-- 删除表中的指定的字段
alter table tb_user drop column qq_name;

-- 修改表中的名字
rename table tb_user to tb_user2;
rename table tb_user2 to tb_user;
相关推荐
Hello.Reader5 小时前
Redis 延迟监控深度指南
数据库·redis·缓存
ybq195133454315 小时前
Redis-主从复制-分布式系统
java·数据库·redis
好奇的菜鸟8 小时前
如何在IntelliJ IDEA中设置数据库连接全局共享
java·数据库·intellij-idea
tan180°8 小时前
MySQL表的操作(3)
linux·数据库·c++·vscode·后端·mysql
满昕欢喜8 小时前
SQL Server从入门到项目实践(超值版)读书笔记 20
数据库·sql·sqlserver
DuelCode9 小时前
Windows VMWare Centos Docker部署Springboot 应用实现文件上传返回文件http链接
java·spring boot·mysql·nginx·docker·centos·mybatis
幽络源小助理9 小时前
SpringBoot基于Mysql的商业辅助决策系统设计与实现
java·vue.js·spring boot·后端·mysql·spring
Hello.Reader9 小时前
Redis 延迟排查与优化全攻略
数据库·redis·缓存
简佐义的博客10 小时前
破解非模式物种GO/KEGG注释难题
开发语言·数据库·后端·oracle·golang
爬山算法10 小时前
MySQL(116)如何监控负载均衡状态?
数据库·mysql·负载均衡