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

SQL 常用 DDL/DML 指令速查表:建表、修改、查詢、備份一覽

     編輯:關於SqlServer

資料定義語言 (DDL)

建立資料表

CREATE TABLE TableName (
    ID          INT IDENTITY(1,1) PRIMARY KEY,  -- 自動編號主鍵
    Col1        NVARCHAR(50) DEFAULT '預設值' NULL,
    Col2        NTEXT NULL,
    Col3        DATETIME,
    Col4        MONEY NULL,
    Col5        INT DEFAULT 0,
    Col6        DECIMAL(12,4) DEFAULT 0,
    Col7        IMAGE NULL
);

刪除資料表

DROP TABLE TableName;

新增欄位

ALTER TABLE TableName ADD ColName NVARCHAR(50) NULL;

刪除欄位

ALTER TABLE TableName DROP COLUMN ColName;

修改欄位型別/屬性

ALTER TABLE TableName ALTER COLUMN ColName NVARCHAR(100) NOT NULL;

重新命名資料表

EXEC sp_rename 'OldTableName', 'NewTableName', 'OBJECT';

約束管理

-- 新增 CHECK 約束
ALTER TABLE TableName ADD CONSTRAINT CK_ColName CHECK (ColName <= '2000-01-01');

-- 刪除約束
ALTER TABLE TableName DROP CONSTRAINT CK_ColName;

-- 新增 DEFAULT 約束
ALTER TABLE TableName ADD CONSTRAINT DF_ColName DEFAULT '預設值' FOR ColName;

-- 刪除 DEFAULT 約束
ALTER TABLE TableName DROP CONSTRAINT DF_ColName;

資料操作語言 (DML)

插入資料

INSERT INTO TableName (Col1, Col2) VALUES (100, N'測試資料');

刪除資料

DELETE FROM TableName WHERE ColName > 100;

更新資料

UPDATE TableName
SET Col1 = 200, Col2 = N'更新後'
WHERE Col3 = N'條件值';

資料查詢語言 (DQL) 進階

判斷資料表是否存在

IF EXISTS (SELECT 1 FROM sysobjects WHERE id = OBJECT_ID(N'[dbo].[TableName]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1)
    PRINT '表存在';
ELSE
    PRINT '表不存在';

查詢資料表結構

SELECT c.name AS ColumnName, t.name AS DataType, c.max_length, c.precision, c.scale, c.is_nullable
FROM sys.columns c
JOIN sys.types t ON c.user_type_id = t.user_type_id
WHERE c.object_id = OBJECT_ID(N'[dbo].[TableName]');

資料庫維護指令

縮減資料庫/記錄檔大小(SQL 2000/2005 舊語法)

-- 僅供舊版本參考,新版建議使用 DBCC SHRINKFILE 指定檔案
DUMP TRANSACTION DBName WITH NO_LOG;
BACKUP LOG DBName WITH NO_LOG;
DBCC SHRINKDATABASE(DBName);
EXEC sp_dboption 'DBName', 'autoshrink', 'true';
> ⚠️ **注意**:生產環境**極不建議**頻繁縮減檔案,會導致索引碎片化、效能下降。正確做法是設定合適的復原模式、定期記錄備份、預先規劃檔案成長增量。

實用輔助函數

動態新增欄位

CREATE PROCEDURE usp_AddColumn
    @TableName  NVARCHAR(128),
    @ColumnName NVARCHAR(128),
    @ColumnType NVARCHAR(128)
AS
BEGIN
    DECLARE @sql NVARCHAR(MAX) = N'ALTER TABLE ' + QUOTENAME(@TableName) + N' ADD ' + QUOTENAME(@ColumnName) + N' ' + @ColumnType;
    EXEC sp_executesql @sql;
END

動態修改欄位

CREATE PROCEDURE usp_ModifyColumn
    @TableName  NVARCHAR(128),
    @ColumnName NVARCHAR(128),
    @ColumnType NVARCHAR(128)
AS
BEGIN
    DECLARE @sql NVARCHAR(MAX) = N'ALTER TABLE ' + QUOTENAME(@TableName) + N' ALTER COLUMN ' + QUOTENAME(@ColumnName) + N' ' + @ColumnType;
    EXEC sp_executesql @sql;
END

快速參考卡

操作指令關鍵字備註
建表CREATE TABLE指定主鍵、預設值、NULL/NOT NULL
刪表DROP TABLE不可回復,謹慎使用
改表名sp_rename第三參數 'OBJECT'
加欄位ALTER TABLE ... ADD預設值加在型別後
刪欄位ALTER TABLE ... DROP COLUMN資料遺失
改欄位ALTER TABLE ... ALTER COLUMN型別相容才能改
加約束ALTER TABLE ... ADD CONSTRAINT命名規範:CK_、DF_、FK_、PK_、UQ_
查結構sys.columns + sys.types比 sp_help 更精確
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved