当前位置:首页 > 电脑教程 > 正文

SQL创建数据库表详细步骤?

在数据库中创建表使用CREATE TABLE命令,需指定表名、列名及其数据类型,基本语法结构为: CREATE TABLE 表名 (列名1 数据类型, 列名2 数据类型, ...);

创建表的核心语法(SQL标准)

SQL标准语法如下:

CREATE TABLE 表名 ( 列名1 数据类型 [约束条件], 列名2 数据类型 [约束条件], ... [表级约束] );

关键组成部分

  1. 表名

    • 需唯一且具有描述性(如 users、orders)。
    • 避免使用保留字(如 select、where)。
  2. 列定义

    • 列名:每列的唯一标识(如 id、name)。
    • 数据类型:指定列存储的数据类型,
      • 整数:INT
      • 字符串:VARCHAR(长度)
      • 日期/时间:DATE、DATETIME
      • 浮点数:DECIMAL(总位数, 小数位)
    • 约束条件(可选):
      • PRIMARY KEY:主键(唯一标识行)
      • NOT NULL:禁止空值
      • UNIQUE:值必须唯一
      • DEFAULT 值:设置默认值
      • FOREIGN KEY:外键关联其他表
  3. 表级约束

    • 定义跨多列的约束,例如复合主键: PRIMARY KEY (列1, 列2)


主流数据库的创建表示例

MySQL/MariaDB

CREATE TABLE employees ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50) NOT NULL, birth_date DATE, salary DECIMAL(10, 2) DEFAULT 0.00, department_id INT, FOREIGN KEY (department_id) REFERENCES departments(id) );

特点

  • AUTO_INCREMENT 自动生成唯一ID(类似其他数据库的 SERIAL 或 IDENTITY)。

PostgreSQL

CREATE TABLE employees ( id SERIAL PRIMARY KEY, name VARCHAR(50) NOT NULL, birth_date DATE, salary NUMERIC(10, 2) DEFAULT 0.00, department_id INT REFERENCES departments(id) );

特点

  • 使用 SERIAL 自增整型,NUMERIC 精确存储小数。

SQL Server

CREATE TABLE employees ( id INT IDENTITY(1,1) PRIMARY KEY, name NVARCHAR(50) NOT NULL, birth_date DATE, salary DECIMAL(10, 2) DEFAULT 0.00, department_id INT, FOREIGN KEY (department_id) REFERENCES departments(id) );

特点

SQL创建数据库表详细步骤? 第1张

  • IDENTITY(1,1) 实现自增,NVARCHAR 支持Unicode字符串。

Oracle

CREATE TABLE employees ( id NUMBER GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY, name VARCHAR2(50) NOT NULL, birth_date DATE, salary NUMBER(10, 2) DEFAULT 0.00, department_id NUMBER, CONSTRAINT fk_dept FOREIGN KEY (department_id) REFERENCES departments(id) );

特点

  • NUMBER 类型替代整数/小数,外键需显式命名(如 fk_dept)。


最佳实践与注意事项

  1. 命名规范

    • 使用小写字母和下划线(如 product_category),避免特殊字符。
  2. 数据类型选择

    • 精确匹配需求:例如存储价格用 DECIMAL,大文本用 TEXT。
    • 约束优化

      SQL创建数据库表详细步骤? 第2张

      SQL创建数据库表详细步骤? 第3张

      • 主键必备:确保每行有唯一标识。
      • 外键关联:维护数据完整性,但可能影响性能。
      • 避免常见错误

        • 未设置主键 → 导致数据冗余或查询低效。
        • 字段长度过小 → 引发数据截断(如 VARCHAR(10) 存储长文本)。
        • 跨平台兼容性

          • 自增列语法差异大(MySQL用 AUTO_INCREMENT,PostgreSQL用 SERIAL)。
          • 字符串类型:Oracle用 VARCHAR2,其他用 VARCHAR。
          • 验证表是否创建成功

            执行查询命令检查表结构:

            -- 通用方法 DESCRIBE employees; -- MySQL SELECT * FROM information_schema.columns WHERE table_name = 'employees'; -- PostgreSQL/SQL Server


            创建表的命令遵循SQL标准,但需根据具体数据库调整细节:

            • 核心:定义列名、数据类型、约束(主键、非空等)。
            • 差异点:自增列、字符串类型、外键语法。
            • 关键原则:明确业务需求,选择合适的数据类型和约束,确保数据完整性与性能平衡。

              实际操作前,请查阅所用数据库的官方文档以适配语法。

            引用说明基于SQL:2016标准及主流数据库官方文档(MySQL 8.0、PostgreSQL 15、SQL Server 2022、Oracle 21c),确保语法准确性和权威性。

0