当前位置:首页 > 问答 > 正文

MySQL里头怎么一步步搞定数据库表,教你从零开始动手建表那些事儿

综合自MySQL官方文档、常见数据库入门教程及网络实践经验分享)

想自己在MySQL里建个表,就像在电脑上新建一个Excel表格来记录东西一样,只不过更规整、更强大,别怕,跟着我一步步来,一点都不难。

第一步:先得有个“文件夹”——创建数据库

你建表总得有个地方放吧?在MySQL里,这个“地方”就叫数据库,你可以把它想象成一个专门的文件夹,里面专门存放一类项目的所有表格,比如你想管理一个简单的图书馆,那就可以先创建一个叫“my_library”的数据库。

怎么创建呢?你得先打开你的MySQL命令行工具或者像Navicat、MySQL Workbench这样的图形化界面,这里我们用最基础的命令行来举例,理解了原理,用什么都一样。

连接上MySQL之后,输入下面这行命令然后按回车:

CREATE DATABASE my_library;

注意,命令结尾有个分号,这是告诉MySQL:“我这句话说完了,你可以执行了。” 如果看到提示“Query OK”,恭喜你,你的“文件夹”就建好了。

光创建了还不行,你得告诉MySQL,我接下来要用的就是这个数据库,用这个命令:

USE my_library;

这样,你之后的所有操作,比如建表啊、插数据啊,就都会在这个“my_library”数据库里进行了。

第二步:想清楚表格要记些什么——设计表结构

这是最关键的一步,决定了你的表好不好用,建表前,你得拿张纸或者用记事本,想好你这个表要记录什么东西,比如对于图书馆,我们想记录书籍信息,那么一本书可能会有:

  • 编号(每本书独一无二)
  • 书名
  • 作者
  • 价格
  • 出版日期

这些每一项,将来就是表里的一个“列”(也叫字段),你还要简单想一下每一列该存什么类型的数据:

  • 编号:肯定是数字,而且不能重复,我们可以让它自动增长。
  • 书名和作者:是文字,需要用引号引起来的。
  • 价格:可能是带小数点的数字,比如29.90。
  • 出版日期:就是日期类型。

第三步:动手建表——使用CREATE TABLE命令

我们可以用SQL命令把设计好的表创建出来了,命令的基本样子是:

CREATE TABLE 表名 (列名1 数据类型1, 列名2 数据类型2, ...);

对应我们的书籍表,可以这样写:

CREATE TABLE books ( id INT NOT NULL AUTO_INCREMENT, title VARCHAR(100) NOT NULL, author VARCHAR(50), price DECIMAL(10, 2), publish_date DATE, PRIMARY KEY (id) );

别被这一长串吓到,我们一点点拆开看:

  • CREATE TABLE books:意思是创建一个名叫“books”的表。
  • 括号里面就是定义每一列:
    • id INT NOT NULL AUTO_INCREMENT
      • INT 表示这列是整数类型。
      • NOT NULL 表示这一列必须填,不能空着。
      • AUTO_INCREMENT 是MySQL一个特别方便的功能,意思是“自动增长”,你添加第一本书时,如果不指定id,它会自动变成1;第二本自动变成2,省得你自己去编号码,还保证了不重复。
    • title VARCHAR(100) NOT NULL
      • VARCHAR(100) 表示这是可变长度的字符,最多能存100个字符(50个汉字),书名一般不会太长,100个字符足够了。
      • NOT NULL 表示书名也必须填。
    • author VARCHAR(50):作者列,最多50个字符,这里没写NOT NULL,意味着如果某本书作者不详,这里可以空着。
    • price DECIMAL(10, 2):价格列。DECIMAL是专门用来存精确小数的。(10, 2)的意思是,这个数总共最多10位,其中小数点后占2位,99999999.99 这样的数就能存下。
    • publish_date DATE:日期列,就存年月日,2023-08-01’。
  • PRIMARY KEY (id):这行非常重要,它指定“id”列是这个表的“主键”,主键就像每个人的身份证号,唯一标识一行数据,设置了主键,MySQL就能更快地查找到数据,并且能避免出现重复的id。

把上面这个命令完整地输入执行,你的第一张表“books”就正式创建成功了!你可以用 DESC books; 命令看看你刚建好的表长什么样,它会列出每一列的名称、类型等信息,跟你设计的是不是一样。

第四步:往表里添点内容——插入数据

表建好了,还是个空架子,我们来添几本书试试,用 INSERT INTO 命令:

INSERT INTO books (title, author, price, publish_date) VALUES ('三体', '刘慈欣', 23.50, '2008-01-01');

这行命令的意思是:向books表中,插入一条数据,括号里指定了要填充数据的列(id没写是因为它会自动增长),VALUES后面的括号里,就按顺序对应着填入具体值,字符串和日期要用单引号括起来。

再插一条: INSERT INTO books (title, author, price) VALUES ('明朝那些事儿', '当年明月', 99.00);

这条命令我们只填了书名、作者和价格,没填出版日期,因为我们建表时没要求publish_date非空,所以这是允许的。

第五步:看看成果——查询数据

我们看看表里是不是真的有数据了,用最简单的查询命令:

SELECT * FROM books;

号代表“所有列”,执行后,你应该会看到一个像表格一样的结果,显示你刚刚插入的两条书记录,id应该是1和2。

到这里,你已经完成了从创建数据库到建表、插数据、查数据的全过程,是不是没那么复杂?核心就是先想好你要什么,然后用合适的命令把它实现出来,多练习几次,熟悉了各种数据类型和约束(比如NOT NULL, PRIMARY KEY),你就能设计出更复杂、更实用的表了。

MySQL里头怎么一步步搞定数据库表,教你从零开始动手建表那些事儿