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

SQL Server 資料庫物件操作大全:建庫、建表、約束、修改語句完整範例

     編輯:關於SqlServer

核心操作分類

1. 資料庫建立與刪除

-- 檢查存在則刪除
IF EXISTS (SELECT * FROM sys.sysdatabases WHERE name = 'ConstructionDB')
BEGIN
    USE master;
    DROP DATABASE ConstructionDB;
END
GO

-- 建立資料庫(指定檔案群組、大小、成長)
CREATE DATABASE ConstructionDB
ON (
    NAME = 'ConstructionDB_Data',
    FILENAME = 'E:\Data\ConstructionDB_Data.mdf',
    SIZE = 3MB,
    MAXSIZE = 10MB,
    FILEGROWTH = 5%
)
LOG ON (
    NAME = 'ConstructionDB_Log',
    FILENAME = 'E:\Data\ConstructionDB_Log.ldf',
    SIZE = 2MB,
    MAXSIZE = 5MB,
    FILEGROWTH = 1MB
);

2. 資料表建立、修改、刪除

USE ConstructionDB;
GO

-- 刪除存在的表
IF EXISTS (SELECT * FROM sysobjects WHERE name = 'T_Flow_Step_Def')
    DROP TABLE T_Flow_Step_Def;
GO

-- 建立流程步驟定義表
CREATE TABLE T_Flow_Step_Def (
    Step_No INT NOT NULL,
    Step_Name VARCHAR(30) NOT NULL,
    Step_Des VARCHAR(64) NOT NULL,
    Limit_Time INT NOT NULL,
    URL VARCHAR(64) NOT NULL,
    Remark VARCHAR(256) NOT NULL
);

-- 修改表結構
ALTER TABLE 學生 ADD 班級編號 CHAR(4) NULL;          -- 新增欄位
ALTER TABLE 課程 DROP COLUMN 開課日期;              -- 刪除欄位
ALTER TABLE 課程 ALTER COLUMN 課程名稱 VARCHAR(20) NOT NULL; -- 修改欄位

3. 約束條件完整範例

-- 主鍵約束
CREATE TABLE Product_Test_Two (
    ID CHAR(10) NOT NULL,
    Name VARCHAR(20) NULL,
    Price MONEY DEFAULT 20.5,
    Quantity SMALLINT NULL,
    CONSTRAINT PK_ID2 PRIMARY KEY CLUSTERED (ID)
);

-- 唯一約束
CREATE TABLE Student4 (
    ID CHAR(8),
    Name CHAR(10),
    CONSTRAINT PK_ID4 PRIMARY KEY (ID),
    CONSTRAINT UK_Name4 UNIQUE (Name)
);

-- 檢查約束:性別只能 M/F,電話格式驗證
CREATE TABLE 員工 (
    ID CHAR(5),
    Name CHAR(20),
    Sex CHAR(2),
    Phone INT,
    CONSTRAINT PK_ZID PRIMARY KEY (ID),
    CONSTRAINT CHK_Sex CHECK (Sex IN ('F', 'M')),
    CONSTRAINT CHK_Phone CHECK (Phone LIKE '(010)[0-9][0-9][0-9][0-9][0-9][0-9][0-9]')
);

-- 預設約束
CREATE TABLE 預設約束 (
    ID CHAR(5) PRIMARY KEY,
    Sex VARCHAR(2) CONSTRAINT CON_Sex DEFAULT 'M'
);
ALTER TABLE 預設約束 ADD Name VARCHAR(10) NULL CONSTRAINT CON_Name DEFAULT '你好寶貝';

4. 資料操作(DML)

-- 新增資料
INSERT INTO 班級 VALUES ('BJ01', '一班');
INSERT INTO 學生 VALUES ('XS01', 'One', 'BJ01');

-- 連接查詢
SELECT 學生.學生編號, 班級.班級名稱, 學生.學生名字
FROM 學生 INNER JOIN 班級 ON 學生.班級編號 = 班級.班級編號;

-- 子查詢統計
SELECT COUNT(學生編號) AS 學生統計
FROM 學生
WHERE 班級編號 IN (SELECT 班級編號 FROM 班級 WHERE 班級編號 = 'BJ01');

-- GROUP BY 統計
SELECT COUNT(學生編號) AS 學生統計, 學生名字, 班級編號
FROM 學生
WHERE 班級編號 = 'BJ01'
GROUP BY 班級編號, 學生名字;

5. 刪除與清理

DELETE FROM 班級 WHERE 班級編號 > 'BJ06';
DROP TABLE Product_Test_One;

最佳實踐提醒

  • 建表前檢查存在性(IF EXISTS ... DROP 或 IF OBJECT_ID(...) IS NULL)
  • 約束命名統一規範(PK_、FK_、UK_、CK_、DF_ 前綴)
  • CONSTRAINT 之間必須以逗號分隔
  • 修改非空欄位時需注意現有資料相容性

總結

本文彙整 SQL Server 常用 DDL/DML 操作範例,涵蓋資料庫、資料表、五大約束(PK、FK、UK、CK、DF)、資料增刪改查與結構修改,可作為開發參考速查表。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved