MySQL神功3.2 数据表基本操作(上)
一、创建表
创建表之前,先要告诉MySQL你使用哪个数据 USE 数据库名称;
否则,MySQL不一定会把这张表创建到你希望的数据库中。
语法
CREATE TABLE 表名(
字段名1 数据类型 [该列的约束条件] [默认值],
字段名2 数据类型 [该列的约束条件] [默认值],
字段名3 数据类型 [该列的约束条件] [默认值],
......
[该表的约束条件1],[该表的约束条件2],....);
语法中,红色字为必选项,其它字为可选项。接下来我们先看必选项部分

在计算机中,Table和Chart的区别
(1)Table通常指表格:由行列组成,每个单元格以文字或数字形式显示数据,适合存放大量的详细数据为进一步分析的底层数据。
(2)Chart通常指图表:用图形、图像或图形符号等方式展示数据,强调数据之间的关系、趋势、分布等。

Ps: 我们在MySQL里,只要不写分号(;),就默认这句还没结束,为了语句易读,你可以在写分号前使用回车换行。
同一数据库中,表的名称也是不能重复的,所以 IF NOT EXISTS 也可以用到这里,只需要把创建表语句第一行的
Create table 花名册 改成 Create table if not exists 花名册
当数据表重名时,就不会创建,也不会报错。
二、显示表结构
语法: show create table 表名;

但是,这种显示我个人看上去眼花缭乱!想整齐还有以下几种方法,虽然以下方法可以实现同一结果,但是它们各自有存在的原因。

语法: desc 表名;

语法: describe 表名;

说明:desc是describe的缩写,常用于提供某个对象、函数、变量或数据结构的描述信息。
返回字段说明,如下图所示

desc还有一个用法(降序): select * from 表名 order by 字段名 desc

语法:explain 表名;

说明:explain这个关键字还可以用来解释查询执行计划,并提供关于如何 优化查询的有用信息。假设花名册这张表,我填写了3行数据,如下图所示

使用explain 配合我们的基础查询语句,返回如下图所示


这些知识以后讲优化时详细聊。
上面我们介绍了explain除了可以看到表结构还有更高级的用途。
那问题来了,既然有了describe(缩写desc)又何必要有下面的columns和fields呢?

语法:Show columns from 表名;

语法:Show fields from 表名;

即存在的东西,一定有他存在的道理!当我们在语句中加上full可以显示完整的信息
为什么一定要提到这两个关键词,因为它们可以使用full显示全部信息,其中,Commnet 列注释就是我们接下来要用到的。



其中,show columns 和 show fields 在这里结果是等效的。

但是,列(column)和字段(field)定义是不一样的
1、列:就是数据库某个列的整体,比如花名册中的学号这一列;
2、字段:就是指定数据列具体的名称,如花名册中学号这个字段;
拓展:记录(Record)
记录就是数据表中的某一行数据,是由多个列组成的。
我要表达的意思是:一只老鼠被猫或狗抓到了,结果等效,但是猫和狗不属于一个科目。
三、表注释与列注释
不同企业有不同的规范,大多数企业是不允许使用中文做表名和字段名的
假设单词你不认识,可以查词典。但是,一个单词有N种中文词义时,你又如何是好?
还有一种更可怕的就是使用缩写的情况,这时候注释的作用就体现出来了。
例如:PE是代表体育还是市盈率?你肯定会说,根据表内容来猜,假设你猜错了呢?
知道我为什么要在分享代码时坚持使用中文变量吗和中文函数名吗?如下图所示

我是过来人,我还年轻的时候,就发现了一个问题,假设我使用 Function abc()
会有两类人告诉我,不对,没有abc这个函数,报错了
第一类人:没学会呢,就想找答案,所以不理解。
第二类人:学会了,甚至专家级的,故意找点话题,刷存在感。
当我预判了他们,使用中文时,第三类人出现了,后面的事情你们都知道了,而第三类人和第二类人是同一类人。
(1)列注释

然后我们查询列注释

(2)表注释

查看表的注释

现在是不是有个疑问,如果我们有一个表,当初创建时忘记加列注释与表注释,能不能补?
那肯定可以,这个我们稍候来讲。

MySQL神功文字版合集:https://www.bilibili.com/read/readlist/rl581425