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

SQL 進階教學:資料定義語言 (DDL) 建立與修改資料表完整指南

     編輯:關於SqlServer

歡迎來到 SQL 結構化查詢語言基礎系列教學的第五篇。本文將深入探討資料定義語言 (DDL) 的核心指令,包含建立資料庫、建立資料表、修改資料表結構,以及刪除資料表與資料庫的操作。這些指令屬於資料庫架構層面的變更,執行時務必謹慎,因為錯誤操作極易導致資料永久遺失。

執行 DDL 指令前的關鍵警示

DDL 指令直接作用於資料庫的主要結構,一旦執行往往難以復原。在開始任何修改前,請確認:

  • 完整了解目前的資料庫架構與相依關係
  • 已備份重要資料
  • 具備執行該操作的適當權限
  • 確認目標資料庫支援 SQL-92 ISO 標準(不同廠商實作可能有差異)

建立資料庫

資料表必須存在於資料庫中。建立資料庫的基本語法:

CREATE DATABASE database_name;

範例:為目錄應用程式建立名為 Catalog 的資料庫:

CREATE DATABASE Catalog;

權限提醒:執行使用者需具備 CREATE DATABASE 權限。若無權限,請洽詢 DBA 代為建立並授權。

建立資料表

建立資料表時需定義欄位名稱與資料類型。基本語法:

CREATE TABLE table_name (
    column1 data_type,
    column2 data_type,
    column3 data_type
);

常用資料類型對照表

資料類型語法範例說明
CharChar(8)固定長度字串,長度由參數指定
VarcharVarchar(128)可變長度字串,最大長度由參數指定
IntInt(32)整數,亦稱 Number 或 Integer
DecimalDecimal(12,2)定點數,指定總位數與小數位,亦稱 Numeric
BinaryBinary二進位物件,通常不可直接顯示,亦稱 Raw 或 Blob
BooleanBoolean布林值 (真/假),亦稱 Bit 或 Byte

實戰範例:建立產品庫存表

依據下表定義欄位:

欄位名稱資料類型
prod_idInt(16)
prod_colorVarchar(20)
prod_descrVarchar(255)
prod_sizeDecimal(8,2)

對應的建表指令:

CREATE TABLE Products (
    prod_id INT(16),
    prod_color VARCHAR(20),
    prod_descr VARCHAR(255),
    prod_size DECIMAL(8,2)
);

進階定義:自動遞增、唯一約束與索引

建表時可同步定義額外屬性:

-- 定義自動遞增且唯一的主鍵
CREATE TABLE Products (
    prod_id INT(16) AUTO_INCREMENT,
    prod_color VARCHAR(20),
    prod_descr VARCHAR(255),
    prod_size DECIMAL(8,2),
    UNIQUE (`prod_id`)
);

-- 另行建立索引
CREATE INDEX ProdIndex ON Products (prod_id);

注意:各資料庫廠商對關鍵字支援程度不同,請參閱官方文件。

修改資料表結構 (ALTER TABLE)

生產環境強烈建議避免直接修改結構,因可能導致資料遺失或損壞。若必須執行,請先備份。

新增欄位

-- 在 prod_id 之後新增 prod_name
ALTER TABLE Products ADD prod_name VARCHAR(20) AFTER prod_id;

刪除欄位

ALTER TABLE Products DROP prod_size;

部分資料庫不支援 DROP 關鍵字。

變更欄位資料類型

ALTER TABLE Products CHANGE prod_color prod_color_id INT(20);

風險提示:資料類型轉換可能導致資料遺失。例如將含人名的 VARCHAR 欄位改為 INT,資料將變為預設值 0。

修改後的表結構

欄位名稱資料類型
prod_idInt(16)
prod_nameVarchar(20)
prod_color_idInt(20)
prod_descrVarchar(255)

刪除資料表與資料庫

極度危險操作,執行前請三思!

刪除資料表

DROP TABLE Products;

刪除表格會移除所有資料,但不影響同資料庫內其他表格。

刪除資料庫

DROP DATABASE Catalog;

資料庫內所有表格與資料將全數清除。多數資料庫支援此指令(SQL-99 標準定義)。

清空資料表但保留結構

FLUSH TABLE Products;

部分資料庫提供此指令,可清除資料並保留表格結構。

關於外鍵、觸發器與檢視表的連帶影響

刪除表格或欄位前,必須確認是否有觸發器、預存程序、檢視表或外鍵關聯依賴該物件。部份資料庫提供 RESTRICT (預設,防止刪除) 與 CASCADE (級聯刪除相關物件) 選項。

本章小結

您已學會資料庫結構的核心操作:建立、修改、刪除資料庫與資料表。這些是設計資料庫驅動應用程式的基礎技能。請記住——DDL 操作無兒戲,動手前請先備份,不確定時請勿執行。

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