首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQL CREATE TABLE 完全指南:數據類型、約束與命名規範實戰

     編輯:關於SqlServer

CREATE TABLE 基本語法

CREATE TABLE table_name (
    col1 datatype [constraint],
    col2 datatype [constraint],
    ...
);

常用數據類型選型指南

類型適用場景存儲/範圍
CHAR(n)固定長度代碼、標識符n 字節,最大 255
VARCHAR(n)變長文本、姓名、地址實際長度+2字節,最大 8000
NVARCHAR(n)多語言文本(含中文)2×實際長度,最大 4000
INT / BIGINT整數 ID、計數器4/8 字節
DECIMAL(p,s)金額、精確數值p 總位數,s 小數位
DATETIME2(n)高精度日期時間6-8 字節,100 納秒精度
DATE / TIME純日期/時間3/5 字節

五大核心約束

約束作用範例
PRIMARY KEY唯一標識行,非空+唯一id INT PRIMARY KEY
NOT NULL禁止 NULLname VARCHAR(50) NOT NULL
UNIQUE值唯一(可多 NULL)email VARCHAR(100) UNIQUE
CHECK自定義條件age INT CHECK (age >= 18)
FOREIGN KEY引用完整性dept_id INT REFERENCES dept(id)

命名規範與最佳實踐

  • 表名:單數 PascalCase,如 Employee、OrderDetail
  • 列名:camelCase,如 firstName、hireDate
  • 主鍵:PK_TableName,外鍵:FK_TableName_RefTable
  • 避免保留字(SELECT、INSERT、ORDER 等)作為標識符
  • 長度 ≤ 30 字符(舊版本限制),現代建議 ≤ 128

完整範例

CREATE TABLE Employee (
    EmployeeID INT IDENTITY(1,1) PRIMARY KEY,
    FirstName NVARCHAR(50) NOT NULL,
    LastName NVARCHAR(50) NOT NULL,
    Title NVARCHAR(100),
    Age TINYINT CHECK (Age BETWEEN 18 AND 65),
    Salary DECIMAL(10,2) DEFAULT 0,
    HireDate DATE NOT NULL DEFAULT GETDATE(),
    DepartmentID INT NOT NULL
        REFERENCES Department(DepartmentID)
);
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved