MySQL 创建数据库表实战:别只会点鼠标,真正会建表的人都在写 SQL

在这里插入图片描述
学数据库,很多人一开始最喜欢做的事,就是打开 Navicat,然后一路右键:

  • 新建数据库
  • 新建表
  • 填字段
  • 点确定

这么做不是不行,问题是你会发现一个很现实的情况:

一旦离开图形界面,你就不会了。

尤其是做网络安全、靶场搭建、环境恢复、SQL 注入分析、数据库排障时,很多场景根本不会给你一个舒服的图形化界面。这个时候,真正有用的是你能不能自己写出一条完整的建表 SQL。

今天这篇文章,我们就把 MySQL 创建数据库表 这件事讲透,讲明白,而且尽量讲得接地气。你不需要一开始背太多理论,只要把这篇内容跟着练一遍,至少你会真正搞懂这些问题:

  • 数据库表到底是什么
  • 行和列在数据库里分别叫什么
  • 表名该怎么起
  • 字段该怎么设计
  • intvarcharchardate 分别怎么用
  • 怎么用 SQL 创建一张学生表
  • 怎么查看表结构
  • 怎么查看表里有没有数据
  • 怎么反查建表语句

另外,文章里我会把容易混淆的地方一起讲清楚,顺手把一些常见写法纠正过来,避免初学时越学越乱。


一、数据库表到底是什么?别一上来就记术语,先把画面感建立起来

你平时在 Excel 里见过表格吧?

比如一张学生信息表,可能长这样:

学号 姓名 性别 年龄
17071401 张三 20
17071402 李四 19

这其实就是数据库表最容易理解的样子。

数据库里最常见的数据组织形式,就是这种 二维表结构
也就是:

  • 横向一行一行
  • 纵向一列一列

这就是关系型数据库管理数据的基本方式。


在数据库里,行和列怎么叫?

这个必须记住:

  • 一行数据,叫一条记录
  • 一列数据,叫一个字段

比如下面这条数据:

17071401 张三 男 20

它在数据库里,就是一条完整的学生记录。

而“学号”“姓名”“性别”“年龄”这些列名,就是字段。


为什么这个概念特别重要?

因为你后面无论做这些事:

  • 建表
  • 插入数据
  • 写查询语句
  • 分析 SQL 注入
  • 看后台用户表
  • 理解 CMS 数据结构

本质上都在围绕两个东西打转:

  • 字段
  • 记录


二、创建表之前,先学会设计表,不然 SQL 写出来也没意义

很多人一上来就急着写:

CREATE TABLE ...

但真正的问题是:
你这张表到底要存什么信息?

比如我们现在准备创建一张学生表,那你至少得先想清楚这张表要包含哪些字段。常见设计一般会有:

  • 学号
  • 姓名
  • 性别
  • 年龄
  • 入学日期
  • 班级名称
  • 邮箱

你会发现,建表这件事其实不是先写 SQL,而是先做“信息建模”。

也就是说:

你想保存什么数据,就先设计什么字段。


表名怎么起?

表名这事,看起来小,实际很影响后期维护。

很多公司喜欢给表加一个前缀,比如:

t_student
t_user
t_order

这里的 t_ 就是 table 的缩写,表示“这是一张表”。

这不是强制规定,但确实是开发里很常见的一种命名习惯。
如果你不喜欢加前缀,也可以直接叫:

student
user
order

都可以。

但建议是:

  • 尽量见名知意
  • 尽量统一风格
  • 别今天 student,明天 tb_student,后天 t_stu

三、先创建数据库,再创建表,这个顺序别搞反了

表是放在数据库里的,不是凭空存在的。

所以在创建表之前,通常要先准备好一个数据库。
比如我们先创建一个测试数据库,名字叫:

mytestdb

为什么字符集建议直接选 utf8mb4?

这是初学者最容易忽略,但后面最容易踩坑的地方。

建议创建数据库时直接使用:

utf8mb4

原因很简单:

  • 它对中文更友好
  • 能更完整支持 Unicode
  • 能兼容更多字符
  • 比 MySQL 早期那个“残血版 utf8”更稳

很多人以为 MySQL 里的 utf8 就是完整 UTF-8,其实不是。
在 MySQL 中,真正更完整、更稳妥的选择,一般是:

utf8mb4

创建数据库 SQL 示例

CREATE DATABASE mytestdb DEFAULT CHARACTER SET utf8mb4;

运行结果示例

Query OK, 1 row affected (0.01 sec)

这说明数据库已经创建成功。


切换到这个数据库

USE mytestdb;

运行结果

Database changed

只有切换到目标数据库后,后续创建的表才会建在这个库里。


四、创建表最核心的一步:字段和类型怎么写

真正开始建表时,最关键的不是表名,而是字段设计和类型选择。

因为数据库并不是一个“随便丢数据”的仓库。
每个字段都要告诉 MySQL:

  • 这个字段叫什么
  • 它存什么类型的数据
  • 允许多长
  • 以后怎么解释

我们准备创建的学生表字段如下

</
字段名 含义 建议类型
sno 学号 int
sname 姓名 varchar
sex 性别 char
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

web安全工具库

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值