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

SQL Server 入門實戰:資料庫、資料表與約束完整操作指南

     編輯:Java 相關知識

環境準備

使用 SQL Server Management Studio (SSMS) 或 `sqlcmd` 連線執行以下腳本。

核心 DDL 操作

1. 資料庫建立與刪除

CREATE DATABASE huqi;
GO
USE huqi;
GO
-- 刪除資料庫(需先切換至其他 DB)
USE master;
GO
DROP DATABASE huqi;

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

-- 基本建表
CREATE TABLE wo (
    name VARCHAR(50),
    phoneNo VARCHAR(15)
);

-- 加入 NOT NULL 約束
CREATE TABLE wo (
    name VARCHAR(50) NOT NULL,
    phoneNo VARCHAR(15)
);

-- 刪除資料表
DROP TABLE wo;

-- 複製結構與資料
SELECT * INTO wowo FROM wo;              -- 含資料
SELECT * INTO wowo FROM wo WHERE 1 = 0;  -- 僅結構

-- 新增資料
INSERT INTO wo (name, phoneNo) VALUES ('huqi', '028-73628394');

3. 約束完整示範

-- 主鍵約束(具名)
CREATE TABLE wo (
    name VARCHAR(50),
    phoneNo VARCHAR(15),
    CONSTRAINT MyPrimaryKey PRIMARY KEY (name)
);

-- 身分識別欄(自動編號)+ 主鍵 + NOT NULL + DEFAULT
CREATE TABLE wo (
    woID INT IDENTITY(1000, 1) PRIMARY KEY NOT NULL,
    name VARCHAR(50) NOT NULL,
    phoneNo VARCHAR(15) DEFAULT '沒有電話號碼'
);

-- 非唯一索引
CREATE INDEX NameIndex ON wo(name);
-- 唯一索引
CREATE UNIQUE INDEX NameIndex ON wo(name);
-- 刪除索引
DROP INDEX wo.PhoneNoIndex;

-- 動態修改結構
ALTER TABLE wo ADD address VARCHAR(50);
ALTER TABLE wo DROP COLUMN phoneNo;  -- 注意拼寫:COLUMN 非 COLUNM

關鍵點提醒

  • IDENTITY(seed, increment):種子值、遞增值均可自訂。
  • DEFAULT 只對未指定值的 INSERT 生效。
  • 約束命名:`CONSTRAINT name` 便於後續管理(`ALTER TABLE DROP CONSTRAINT name`)。
  • 索引與約束關係:主鍵/唯一約束內建唯一索引,額外建立索引需評估寫入效能影響。

進階練習建議

  1. 建立含外鍵關聯的訂單-明細兩表,驗證級聯刪除/更新。
  2. 使用 `sp_helpindex`、`sp_helpconstraint` 檢視中繼資料。
  3. 嘗試 `ALTER TABLE ... ALTER COLUMN` 修改資料類型,觀察資料截斷風險。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved