Think Twice
IT技術メモ | SQL Serverのメモ
Created: 2020-10-28 / Updated: 2021-04-26

SQL ServerのDDL


目次


INDEX

インデックス関連

インデックス(nonclustered)の作成
Copy
CREATE INDEX <インデックス名> ON <テーブル名> (<列>);

clusteredなインデックスの作成
Copy
CREATE CLUSTERED INDEX <インデックス名> ON <データベース名>.<スキーマ名>.<テーブル名> (<列>);
CLUSTEREDを付けるとクラスタードなインデックスを作成できます。テーブル名の部分はデータベース・スキーマ名・テーブル名の3パート指定もできます。

ユニークインデックス(nonclustered)の作成
Copy
CREATE UNIQUE INDEX <インデックス名> ON <テーブル名> (<列1> DESC, <列2> ASC, <列3> DESC);
列定義は複数指定できます。また各列に並べ方も(ASC:昇順, DESC:降順)指定できます。

参考

LOGIN

ログイン関連のメモです。

ログイン情報の作成
Copy
CREATE LOGIN ログインID
WITH
  PASSWORD = 'パスワード',
  DEFAULT_DATABASE = データベース名,
  CHECK_EXPIRATION = OFF, -- 有効期限チェックしない
  CHECK_POLICY = OFF -- パスワードの複雑性要件をチェックしない
GO

参考

USER

ユーザー関連のメモです。

データベースユーザー作成

データベースにログイン情報と一致するユーザーを作成します。

ユーザー情報の作成(ログイン情報と一致するユーザー)
Copy
USE 「データベース]
GO
CREATE USER ログインID
GO

データベースにログイン情報と一致しないユーザーを作る場合は以下のようにFOR LOGINを追加します。

ユーザー情報の作成(ログインIDを指定)
Copy
USE 「データベース]
GO
CREATE USER ログインID FOR LOGIN [ログインID]
GO

ロール割り当て

ロールを割り当てます。

ロールを割り当て
Copy
USE [データベース]
GO
EXEC sp_addrolemember 'db_owner', 'ログインID'
GO

パスワード変更

パスワードを変更します。

パスワードを変更
Copy
ALTER LOGIN ログインID
WITH
  PASSWORD = '新パスワード'
GO

参考

列追加

テーブルへ列を追加するALTER文です。

構文
Copy
ALTER TABLE <テーブル名> ADD <カラム名> <型定義...>;

以下はUserテーブルにScoreという名前の列(INT型で、NOT NULLでデフォルト値は0)を追加する例。

列、Scoreの追加
Copy
ALTER TABLE dbo.[User] ADD Score INT NOT NULL DEFAULT 0;

参考

列変更

テーブルの列を変更するALTER文です。

構文
Copy
ALTER TABLE <テーブル名> ALTER COLUMN <変更する列名> <データ型>;

以下はUserテーブルのScoreという名前の列をINT型で、NOT NULLでデフォルト値は0に変更する例。

列、Scoreの変更
Copy
ALTER TABLE dbo.[User] ALTER COLUMN Score INT NOT NULL DEFAULT 0;

参考

列削除

テーブルから列を削除するALTER文です。

構文
Copy
ALTER TABLE <テーブル名> DROP COLUMN <カラム名>;

以下SQLを実行すると、M_USERテーブルのEMAIL_ADDRESSというカラムが削除されます。

列、EMAIL_ADDRESSを削除
Copy
ALTER TABLE M_USER DROP COLUMN EMAIL_ADDRESS;

注意事項

参考

スキーマ

スキーマ関係のALTER文です。

構文
Copy
ALTER SCHEMA <変更前のスキーマ名> TRANSFER <変更後のスキーマ名>.<テーブル名>;

以下SQLを実行すると、M_USERのスキーマをdboからnewschemaに変更します。

スキーマ、dboをnewschemaに変更
Copy
ALTER SCHEMA dbo TRANSFER newschema.M_USER;

参考


参考

参考サイト