MySQL 显示表模式
关系数据库是现代数字时代最受欢迎和影响力最大的数据库之一。尽管它们是在90年代开发的,但仍然广泛存在,并被个人开发者和企业应用广泛采用。
关系数据库以其使用预定义的模式而而闻名。模式是关系数据库的基础,因为它们定义了在实际数据添加之前,数据组织的规则和结构。
作为一个数据库开发者,学习如何构建和结构化你的数据库模式是必要的。在本教程中,我们将引导你如何使用 MySQL 创建和查看表模式,MySQL 是最流行的关系数据库管理系统之一。
什么是关系数据库中的模式?
模式是指定义关系数据库中数据组织结构的结构。模式用于确定数据的重要方面,例如列、数据类型等。
简单来说,可以将模式视为一个蓝图,概述数据组织和实现的基础。然而,请记住,模式并不包含实际的数据。
数据库模式的类型
以下是关系数据库中常见的模式类型:
- 桌子
- 主键
- 外键
- 属性
- 关系
创建表架构
在讨论如何展示表模式之前,让我们创建一个示例表以供说明。
示例代码片段:
create table blog(
post_id int auto_increment not null primary key,
author_id int not null,
title varchar(255) not null,
author_name varchar(100) not null,
post_date date not null,
category varchar(50) not null,
published bool
);继续查看表架构。
显示表架构 – 方法 1 – 在创建表时
MySQL允许您使用SHOW关键字查看表模式。命令语法:
SHOW CREATE TABLE database.table_name;该命令将返回在创建表格过程中使用的命令。
要显示博客的表格架构(如上所示),请运行以下查询:
show create table linux-console.blog;显示语句将输出如下结果:
|Table|Create Table |
|-----|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|blog |CREATE TABLE `blog` (¶ `post_id` int NOT NULL AUTO_INCREMENT,¶ `author_id` int NOT NULL,¶ `title` varchar(255) NOT NULL,¶ `author_name` varchar(100) NOT NULL,¶ `post_date` date NOT NULL,¶ `category` varchar(50) NOT NULL,¶ `published` tinyint(1) DEFAULT NULL,¶ PRIMARY KEY (`post_id`)¶) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci|
您将看到定义表的架构信息,包括排序规则、字符集和数据库引擎。这在不同环境中复制相同表时非常有用。
显示表模式 – 方法 2 – 描述
获取表模式的第二种也是最常用的方法是使用 DESCRIBE 关键字。语法在下面的代码片段中进行了说明:
DESCRIBE database.table_name;正如你所猜测的,这条语句将在用户友好的界面中返回表的架构。
请看下面的示例快照:
describe linux-console.blog;在这个例子中,我们从linux-console数据库获取博客表的表结构。输出:
|Field |Type |Null|Key|Default|Extra |
|-----------|------------|----|---|-------|--------------|
|post_id |int |NO |PRI| |auto_increment|
|author_id |int |NO | | | |
|title |varchar(255)|NO | | | |
|author_name|varchar(100)|NO | | | |
|post_date |date |NO | | | |
|category |varchar(50) |NO | | | |
|published |tinyint(1) |YES | | | |在这里,我们可以看到数据以表格格式呈现,这使得阅读和解释变得非常简单。
缺点是describe命令的输出不能直接用于在不同环境中复制表结构。
注意:您可以用 EXPLAIN 命令替代 DESCRIBE,如下面的语法所示:
EXPLAIN database.table_name;注意: 在某些情况下,表架构指的是指定表所在的数据库。为此,您可以按照下面的语法查询 information_schema 表:
select TABLE_SCHEMA
from information_schema.TABLES t
where table_name = table_name;
结果输出:
|TABLE_SCHEMA|
|------------|
|linux-console |结束
在本文中,我们讨论了关系数据库中的数据库架构、数据库架构的类型,以及在MySQL中创建和查看表结构。
感谢阅读!!



