【教程】MySQL数据库学习笔记(三)——数据定义语言DDL(持续更新)

文首标志
写在前面:
如果文章对你有帮助,记得点赞关注加收藏一波,利于以后需要的时候复习,多谢支持!


【MySQL数据库学习】系列文章

第一章 《认识与环境搭建》
第二章 《数据类型》
第三章 《数据定义语言DDL》


文章目录

  • 【MySQL数据库学习】系列文章
  • 一、DDL介绍
  • 二、DDL数据库操作
    • (一)查看数据库
    • (二)创建数据库
    • (三)选择数据库
    • (四)删除数据库
    • (五)转换数据库编码
  • 三、DDL表结构操作
    • (一)创建表
    • (二)查看所有表
    • (三)查看表创建语句
    • (四)查看表结构
    • (五)删除表
    • (六)修改表结构
      • 1.添加列
      • 2.更改列
      • 3.删除列
      • 4.修改表名


一、DDL介绍

DDL(Data Definition Language,数据定义语言) 是用于定义和管理数据库对象(如表、视图、索引等)的语言。它是一种结构化查询语言(SQL)的子集。该语言部分包括以下内容:

  • 对数据库的常用操作
  • 对表结构的常用操作
  • 修改表结构

二、DDL数据库操作

以下是DDL对数据库的常用操作。

功能 SQL语句
查看所有数据库 SHOW DATABASES;
创建数据库 CREATE DATABASE [IF NOT EXISTS] 数据库 [CHARSET=utf8];
切换据库 USE 数据库;
删除数据库 DROP DATABASE [IF EXISTS] 数据库;
修改数据库编码 ALTER DATABASE 数据库 CHARACTER SET 编码样式;

需要指出的是,由于SQL语言大小写不敏感,所以为了可读性一般会将标识符大写,但使用小写也不影响程序运行。另外,使用[]内的语句代表着可选。

(一)查看数据库

下面是代码实验。进入Navicat后,点击左侧连接好的MySQL,会发现有一些默认数据库,点击“新建查询”,即可输入SQL语言代码进行操作。

-- 查看数据库
SHOW DATABASES;

此时在弹出的结果栏可以查看目前MySQL存在的数据库。

(二)创建数据库

-- 创建数据库
CREATE DATABASE mydb1;

运行后可以看到结果栏中出现mydb1这个新创建的数据库。同时,在左侧的库显示栏右键刷新后也可以看到新创建的库。
但当重复运行创建数据库的语句时,会报错“> 1007 - Can’t create database ‘mydb1’; database exists”,即数据库已存在,不可创建。所以会加上IF NOT EXISTS的判断语句,这样就不会报错。

CREATE DATABASE IF NOT EXISTS mydb1;

(三)选择数据库

当选择使用哪一个数据库进行编辑时,使用如下语句。

-- 选择使用数据库
USE mydb1;

(四)删除数据库

而当要删除此处已经创建的mydb1数据库时,则使用以下语句。

-- 删除数据库
DROP DATABASE mydb1;

刷新即可发现创建的数据库mydb1已经被删除。
然而当重复运行删除数据库的语句时,会报错“> 1008 - Can’t drop database ‘mydb1’; database doesn’t exist”,即数据库不存在,不可删除。所以加上IF EXISTS的判断语句就可以不报错。

(五)转换数据库编码

至于转换编码则一般不需要,因为在初始化的时候已经默认将MySQL设置为utf8编码了,但如果进行操作时,语句也一般如下。

-- 修改数据库的编码
ALTER DATABASE mydb1 CHARACTER SET utf8;

三、DDL表结构操作

以下是DDL对表结构的常用操作。

功能 SQL语句
创建表 CREATE TABLE 表名();
查看当前数据库所有表 SHOW TABLES;
查看指定表的创建语句 SHOW CREATE TABLE 表名;
查看表结构 DESC 表名;
删除表 DROP TABLE 表名;

(一)创建表

创建表是在数据库中构建一张空表,制定这个表的名字,这个表的列数和列名,以及每一列储存的数据类型。具体语法如下。

CREATE TABLE [IF NOT EXISTS]表名(
	字段名1 类型[(宽度)] [约束条件] [COMMENT '字段说明'],
	字段名2 类型[(宽度)] [约束条件] [COMMENT '字段说明'],
	字段名3 类型[(宽度)] [约束条件] [COMMENT '字段说明'],
)[其他表设置];

其中,字段名实际上就是列名,类型则是需要选择的数据类型。

-- 创建表
CREATE DATABASE IF NOT EXISTS mydb1;
USE mydb1;
CREATE TABLE IF NOT EXISTS student(
	sid INT,
	name VARCHAR(20),
	gender VARCHAR(10),
	age INT,
	birth DATE,
	address VARCHAR(20),
	score DOUBLE
);

以上代码重新创建了数据库mydb1,并确定使用此数据库进行编辑。随后,创建了一个表student,表中有7个列,分别是学生号sid、名字name、性别gender、年龄age、出生日期birth、地址address和成绩score
在Navicat中点击mydb1库进入表即可看到student表的空表如下。
【教程】MySQL数据库学习笔记(三)——数据定义语言DDL(持续更新)_第1张图片

(二)查看所有表

-- 查看所有表
SHOW TABLES;

输入以上命令,结果栏即可查看当前数据库的所有表。当然,作为图形化界面,在Navicat的左侧依然可以查看到所有的库和表。

(三)查看表创建语句

-- 查看表创建语句
SHOW CREATE TABLE student;

承接之前创建的表student,输入以上命令就能在结果栏返回当时创建表student的语句。返回结果如下。

CREATE TABLE `student` (
`sid` int DEFAULT NULL,
`name` varchar(20) DEFAULT NULL,
`gender` varchar(10) DEFAULT NULL,
`age` int DEFAULT NULL,
`birth` date DEFAULT NULL,
`address` varchar(20) DEFAULT NULL,
`score` double DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3

(四)查看表结构

-- 查看表结构
DESC student;

使用以上语句,就可以查询到表student的相应表结构。返回结果如下图。
【教程】MySQL数据库学习笔记(三)——数据定义语言DDL(持续更新)_第2张图片

(五)删除表

-- 删除表
DROP TABLE student;

使用以上语句即可删除刚刚创建和操作的表student

(六)修改表结构

在创建表后,若希望增添或者删除表的某列,修改表名等操作,就需要用到对表结构的修改语句。

1.添加列

ALTER TABLE 表名 ADD 列名 类型(长度) [约束];

使用以上的语法结构再给表student中添加一个系别(department)字段名dept,其代码如下。

ALTER TABLE student ADD dept VARCHAR(20);

使用DESC命令即可查看添加后的表结构如图所示。
【教程】MySQL数据库学习笔记(三)——数据定义语言DDL(持续更新)_第3张图片

2.更改列

ALTER TABLE 表名 CHANGE 旧列名 新列名 类型(长度) [约束];

使用以上的语法结构给表student中刚刚添加的系别字段名dept更改为department,其代码如下。

ALTER TABLE student CHANGE dept department VARCHAR(30);

此时查看的表结构如图所示。
【教程】MySQL数据库学习笔记(三)——数据定义语言DDL(持续更新)_第4张图片

3.删除列

ALTER TABLE 表名 DROP 列名;

使用以上的语法结构将表student的系别列删除,其代码如下。

ALTER TABLE student DROP department;

如此,再使用DESC命令查看表结构,发现此列已经删除。
【教程】MySQL数据库学习笔记(三)——数据定义语言DDL(持续更新)_第5张图片

4.修改表名

RENAME TABLE 旧表名 TO 新表名;

使用以上的语法将表student的更名为stu,其代码如下。

RENAME TABLE student TO stu;

此时左侧库中的表名就可以发现从student改名为stu。


我是EC,一个永远在学习中的探索者,关注我,让我们一起进步!

文末标志

你可能感兴趣的:(【语言】SQL,数据库,mysql,学习)