数据库建表SQL语句大全:完整实例与实践

wsnrs

你有没有被数据库建表搞崩溃过?

刚接触数据库那会儿,你是不是也觉得建表就像在玩"你猜我到底要存什么数据"的恐怖游戏?明明照着教程敲代码,结果突然蹦出来个"Syntax error",整个人都懵了?别慌!今天咱们就来把这块硬骨头啃得明明白白!

数据库建表SQL语句大全:完整实例与实践
(数据库建表SQL语句大全:完整实例与实践)

基础语法:先学会走再学跑

  • 必记公式:CREATE TABLE 表名 (字段1 数据类型, 字段2 数据类型...)
  • 新手陷阱:所有符号都要用英文半角!逗号千万别漏!
  • 举个栗子:
    CREATE TABLE users (
    id INT,
    name VARCHAR(50),
    age INT
    );

数据类型大盘点

类型名称 适用场景 注意事项
INT 年龄、数量这种整数 超大数字要用BIGINT
VARCHAR(n) 用户名、地址等文本 括号里的数字是最大长度
DATE 生日、注册日期 千万别存成字符串!

实践:老司机私房手册

  • 命名规范:表名用复数(users),字段名用下划线(user_name)
  • 主键必设:每个表都要有唯一标识字段,比如:
    id INT PRIMARY KEY AUTO_INCREMENT
  • 注释不能少:用COMMENT写明字段用途,三个月后你会回来谢我
  • 索引策略:经常要搜索的字段加索引,但别滥用!

灵魂拷问:这些问题你肯定遇到过

Q:字段类型到底该咋选?

举个真实场景:要存手机号的话...

  • 错误做法:用INT(超出范围会溢出)
  • 正确姿势:VARCHAR(20)(可能有+86前缀)

Q:多个主键行不行?

当然可以!这叫复合主键

CREATE TABLE orders (
user_id INT,
product_id INT,
PRIMARY KEY (user_id, product_id)
);

Q:忘记加索引怎么办?

别慌!用ALTER TABLE补救:

ALTER TABLE users ADD INDEX idx_name (name);

Q:表结构设计错了能改吗?

必须能啊!常见操作:

  • 改字段名:ALTER TABLE users CHANGE old_name new_name VARCHAR(50)
  • 删字段:ALTER TABLE users DROP COLUMN age

实战演练:手把手建个用户表

CREATE TABLE users (
id INT PRIMARY KEY AUTO_INCREMENT COMMENT '主键ID',
username VARCHAR(50) NOT NULL COMMENT '用户名',
password CHAR(60) NOT NULL COMMENT '加密后的密码',
email VARCHAR(100) UNIQUE COMMENT '邮箱',
created_at DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
INDEX idx_username (username)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

这里有几个隐藏技巧

  • 密码字段用CHAR(60)是因为Bcrypt加密固定60位
  • utf8mb4才能存emoji表情
  • ENGINE=InnoDB支持事务处理

小编说点大实话

刚开始学建表时,我也总想着要设计得"完美无缺"。后来才发现,好的设计都是改出来的。遇到报错别怕,把错误提示\u590d\u5236到百度/Bing搜搜,十有八九能找到答案。最后提醒一句:生产环境修改表结构前,记得先备份!

发表评论

快捷回复: 表情:
AddoilApplauseBadlaughBombCoffeeFabulousFacepalmFecesFrownHeyhaInsidiousKeepFightingNoProbPigHeadShockedSinistersmileSlapSocialSweatTolaughWatermelonWittyWowYeahYellowdog
评论列表 (暂无评论,15人围观)

还没有评论,来说两句吧...