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

树叶云带你简单聊聊MSSQL里CREATE TABLE那些事儿,教你怎么建表一步步来

树叶云带你简单聊聊MSSQL里CREATE TABLE那些事儿,教你怎么建表一步步来 整理自树叶云平台的数据库入门指南和微软官方SQL Server文档)

嗨,大家好!今天咱们就借着树叶云这个平台,来轻松愉快地唠唠在Microsoft SQL Server(后面咱就简称MSSQL)里,怎么亲手创建一张数据表,你别看“建表”这个词听起来好像很专业,其实说白了,就是给咱们的数据盖个房子、划好房间,规定好每个地方放什么东西,下面我就用最直白的话,一步步带你走一遍。

第一步:想清楚你的“房子”要干啥

在建表之前,最关键的不是立刻打开软件敲代码,而是要先在脑子里或者纸上画个草图,你得想明白:

  1. 表叫啥名字? 你想做一个简单的通讯录,那表名就可以叫 TongXunLu 或者 MyFriends,名字最好能一眼看出是干啥的。
  2. 里面要放哪些信息? 这就是表的“列”或者叫“字段”,还拿通讯录举例,你可能需要:朋友姓名、电话号码、家庭住址、生日这些信息,每一个信息项就是一列。
  3. 每种信息是什么类型的? 这是最重要的一步,你不能把电话号码当成文字随便写,也不能把生日当成数字来算算术对吧?所以我们要给每一列规定一个“数据类型”。
    • 姓名、地址:这种是文本,我们通常用 VARCHAR 类型,后面还得加个括号写上最大能存多少个字,VARCHAR(50) 就是最多能存50个字符。
    • 电话号码:虽然是一串数字,但我们一般不会用它做数学计算,所以也常用 VARCHAR(20) 来存。
    • 生日:这肯定是日期嘛,就用 DATE 类型。
    • 如果有个“编号”:比如给每个朋友一个唯一的ID号,这种需要自动增长的数字,用 INT 类型就很合适,还可以设置成 IDENTITY(1,1),表示从1开始,每次增加1。
  4. 有没有哪一列是绝对不能空的? “姓名”这一列,你不能允许别人不填就保存吧?那我们就把它设置为 NOT NULL,意思是“不能为空”,像“地址”这种可能有人不愿意填的,就可以设置为 NULL,表示“允许为空”。

把这些都想清楚了,你的表结构基本就在心里有谱了。

第二步:打开“施工场地”——查询编辑器

在MSSQL里,我们一般在“查询编辑器”里写建表的指令,无论是在SQL Server Management Studio (SSMS) 这个官方工具里,还是在像树叶云这样的平台提供的数据库管理页面中,你都能找到一个可以让你输入代码的地方,确保你已经连接到了想要建表的那个数据库。

第三步:开始“盖房子”——写CREATE TABLE语句

我们把想好的东西,用SQL语言写出来,SQL是一种和数据库沟通的语言,建表的命令就是 CREATE TABLE

基本格式长这样:

树叶云带你简单聊聊MSSQL里CREATE TABLE那些事儿,教你怎么建表一步步来

CREATE TABLE 表的名字
(
   列1的名字 列1的数据类型 NULL还是NOT NULL,
   列2的名字 列2的数据类型 NULL还是NOT NULL,
   ...
);

注意每个列的定义后面有个逗号,最后一列后面没有逗号,整个语句的最后用分号 结束(有时候不用分号也行,但养成好习惯避免出错)。

把我们之前想的通讯录例子套进来:

CREATE TABLE MyFriends
(
   FriendID INT IDENTITY(1,1) PRIMARY KEY NOT NULL,
   FriendName VARCHAR(50) NOT NULL,
   PhoneNumber VARCHAR(20) NULL,
   Address VARCHAR(200) NULL,
   Birthday DATE NULL
);

我来解释一下这行代码:

  • CREATE TABLE MyFriends:创建一张名叫 MyFriends 的表。
  • FriendID INT IDENTITY(1,1) PRIMARY KEY NOT NULL
    • INT 是整数类型。
    • IDENTITY(1,1) 是自动增长,从1开始,每次加1,这样每增加一个朋友,他的ID就会自动生成,不会重复。
    • PRIMARY KEY 意思是“主键”,主键是这张表的唯一标识,相当于每个人的身份证号,绝对唯一,不能为空,我们这里用 FriendID 当主键最合适。
    • NOT NULL 不能为空。
  • FriendName VARCHAR(50) NOT NULL:朋友姓名,文本类型,最长50个字,不能为空。
  • PhoneNumber VARCHAR(20) NULL:电话号码,文本类型,最长20个字符,可以为空(万一有人不想留电话呢)。
  • Address VARCHAR(200) NULL:地址,文本类型,最长200字符,可以为空。
  • Birthday DATE NULL:生日,日期类型,可以为空。

第四步:检查房子盖得对不对

代码写好了,别急着走,先从头到尾读一遍,看看表名、列名有没有写错,数据类型 NULL还是NOT NULL, 列3的名字 列3的数据类型 NULL还是NOT NULL, ... (可以有很多列) );

树叶云带你简单聊聊MSSQL里CREATE TABLE那些事儿,教你怎么建表一步步来


把我们之前为通讯录想的套进去,就是这样:
```sql
CREATE TABLE MyFriends
(
   FriendID INT IDENTITY(1,1) PRIMARY KEY NOT NULL,
   FriendName VARCHAR(50) NOT NULL,
   PhoneNumber VARCHAR(20) NULL,
   HomeAddress VARCHAR(100) NULL,
   Birthday DATE NULL
);

我来解释一下这行代码:

  • CREATE TABLE MyFriends:创建一张名叫 MyFriends 的表。
  • FriendID INT IDENTITY(1,1) PRIMARY KEY NOT NULL
    • INT 是整数类型。
    • IDENTITY(1,1) 表示这个列是自动增长的,从1开始,每次加1,这样每加一个新朋友,ID会自动生成,不会重复。
    • PRIMARY KEY 意思是“主键”,相当于每个人的身份证号,唯一标识一条记录,绝对不能重复和为空。
    • NOT NULL 不允许为空。
  • FriendName VARCHAR(50) NOT NULL:朋友姓名,文本类型,最长50个字,不能为空。
  • PhoneNumber VARCHAR(20) NULL:电话号码,文本类型,最长20位,可以为空。
  • HomeAddress VARCHAR(100) NULL:家庭住址,文本类型,最长100字,可以为空。
  • Birthday DATE NULL:生日,日期类型,可以为空。

第四步:“检查验收”——执行并查看结果

代码写好了,选中它,然后点“执行”按钮(在SSMS里是按F5键),如果下面提示“命令已成功完成”,恭喜你,你的第一张表就建好了!

你可以去数据库的表列表里刷新一下,应该就能看到 MyFriends 这个新表了,这时候表还是空的,像个毛坯房,下一步就是往里面“搬家具”——也就是插入数据了,这个我们以后可以再聊。

最后唠叨两句

树叶云的指南里也提醒新手,刚开始学的时候,别怕犯错,大不了删了表重来,多用 VARCHARINTDATE 这些基本类型,等熟练了再研究更复杂的,最重要的是先把结构想清楚,代码反而简单。

好了,关于MSSQL里建表的基础操作,咱们今天就先聊到这,怎么样,是不是感觉也没那么神秘?自己动手试试吧!