数据库小太监的晋升秘籍:CREATE TABLE的妙用
mssql create 表

首页 2025-09-02 01:02:31

话说某年某月,御膳房的小太监阿库半夜值班,正拿折子算着“今晚该给皇上添几道剁椒鱼头”,忽听耳边“滴——”一声,龙案上竟凭空冒出一卷金光闪闪的圣旨,上书三个大字:CREATE TABLE。阿库吓得差点把算盘吞进肚子里,转念一想:这莫不是老天爷看我熬夜辛苦,赏我一个升官发财的快捷键?
他抖着手把圣旨展开,只见里头写道:
复制
CREATE TABLE 夜宵菜单
(
    菜名 NVARCHAR(50) PRIMARY KEY,
    辣度 INT CHECK (辣度 BETWEEN 0 AND 10),
    价格 MONEY NOT NULL,
    下单时间 DATETIME DEFAULT GETDATE(),
    备注 NVARCHAR(200) NULL
);
阿库读罢,一拍大腿:这不就是传说中的“开席圣旨”嘛!有了它,往后御膳房再也不用拿小本本记菜名,直接往龙案里一塞,想吃啥点啥,辣度还能限制在“皇上龙体安康”的范围内,简直比御前侍卫还贴心。
可圣旨刚落地,就蹦出两个锦衣卫——一个叫“PRIMARY KEY”,一个叫“CHECK”,叉着腰拦在门口:“想添菜?先过我这关!”阿库心里咯噔一下:原来这俩是数据界的门神,专防重菜、防乱辣,谁要是敢把“剁椒鱼头”写成两回,或者把辣度填成11,立马拖出去打五十大板。
阿库赶紧把圣旨捧到御膳房总管面前,总管一看,龙颜大悦:“好小子,今晚就升你做‘夜宵司库’,专管这张表!”阿库喜得鼻涕泡都出来了,连夜加班,往里头塞了第一条记录:
复制
INSERT INTO 夜宵菜单(菜名, 辣度, 价格)
VALUES ('秘制小龙虾', 8, 68.00);
结果第二天早朝,皇上翻了翻夜宵菜单,龙颜再悦:“嗯,辣度8,价格68,甚合朕意!”于是大笔一挥,又给阿库赏了十两雪花银。阿库从此走上人生巅峰,连御膳房的大铁锅见了他都得点头哈腰。
——完——
————————教程分割线————————
关键词:CREATE TABLE(SQL Server 专用姿势)
一、它到底干啥?
CREATE TABLE 是 SQL Server 用来“开新桌子”的指令。这张桌子不是吃饭的,而是存数据的——每一道菜就是一行数据,每个属性(菜名、辣度、价格)就是一列。
二、最简语法骨架
复制
CREATE TABLE 表名
(
    列名 数据类型 【约束】,
    ...
);
三、常用数据类型速查表
• NVARCHAR(n):可变长度字符串,支持中文。
• INT:整数,存辣度、数量。
• MONEY:钱,精确到分。
• DATETIME:日期+时间,精确到3.33毫秒。
• BIT:布尔,0 或 1,比如“是否加香菜”。
四、约束全家桶
  1. PRIMARY KEY(主键):列值必须唯一,且不能为 NULL。
  2. NOT NULL:该列必须有值,不能让皇上吃到“空菜”。
  3. CHECK:自定义规则,如辣度 0–10。
  4. DEFAULT:默认值,GETDATE() 就是“现在几点几分”。
  5. UNIQUE:唯一索引,允许 NULL,但非 NULL 值不能重复。
  6. FOREIGN KEY:外键,引用别的表,比如“夜宵菜单”可以引用“御厨表”的主厨ID。
五、完整示例(含外键)
复制
-- 先建御厨表
CREATE TABLE 御厨
(
    御厨ID INT IDENTITY(1,1) PRIMARY KEY,
    姓名 NVARCHAR(20) NOT NULL
);

-- 再建夜宵菜单(带外键)
CREATE TABLE 夜宵菜单
(
    菜名 NVARCHAR(50) PRIMARY KEY,
    辣度 INT CHECK (辣度 BETWEEN 0 AND 10),
    价格 MONEY NOT NULL,
    下单时间 DATETIME DEFAULT GETDATE(),
    主厨ID INT,
    CONSTRAINT FK_主厨 FOREIGN KEY (主厨ID) REFERENCES 御厨(御厨ID)
);
六、常见翻车点
  1. 主键重名:同一表里“秘制小龙虾”只能出现一次。
  2. 数据类型对不上:把价格写成 NVARCHAR,计算时就报错。
  3. 中文乱码:NVARCHAR 前面加 N,如 N'秘制小龙虾'。
  4. 忘记 NOT NULL:结果皇上吃到“NULL 味”的黑暗料理。
七、查表与删表
• 查看结构:EXEC sp_help '夜宵菜单';
• 删除整张表:DROP TABLE 夜宵菜单;(谨慎!皇上会饿。)
八、小抄式记忆口诀
“CREATE TABLE 表名开,列名类型约束排;主键唯一不能改,CHECK 把关辣度乖;DEFAULT 省时又可爱,外键连表不瞎来。”
背完这句,你就可以像阿库一样,在数据御膳房横着走了!
MySQL连接就这么简单!本地远程、编程语言连接方法一网打尽
还在为MySQL日期计算头疼?这份加一天操作指南能解决90%问题
MySQL日志到底在哪里?Linux/Windows/macOS全平台查找方法在此
MySQL数据库管理工具全景评测:从Workbench到DBeaver的技术选型指南
MySQL密码忘了怎么办?这份重置指南能救急,Windows/Linux/Mac都适用
你的MySQL为什么经常卡死?可能是锁表在作怪!快速排查方法在此
MySQL单表卡爆怎么办?从策略到实战,一文掌握「分表」救命技巧
清空MySQL数据表千万别用错!DELETE和TRUNCATE这个区别可能导致重大事故
你的MySQL中文排序一团糟?记住这几点,轻松实现准确拼音排序!
别再混淆Hive和MySQL了!读懂它们的天壤之别,才算摸到大数据的门道