SQL Server : 2.オブジェクトの操作・制御

SQL Server(Microsoft SQL Server)はMicrosoftが開発しているRDBMSです。当ページではオブジェクト――データベースやテーブルの作成・変更・削除といった操作方法についてまとめています。

1.データの抽出・出力

2.オブジェクトの操作・制御

3.変数や制御文の取り扱い

4.その他

データベースの作成

データベースを作成します。

--文法

CREATE DATABASE データベース

--例文

CREATE DATABASE Database_1

データベースの削除

データベースを削除します。

--文法

DROP DATABASE データベース

--例文

DROP DATABASE Database_1

テーブルの作成

テーブルを作成します。

--文法

CREATE TABLE テーブル名 (

カラム1 データ型 オプション,

カラム2 データ型 オプション,

:

:

:

カラムn データ型 オプション

)

--例文

CREATE TABLE Table_1 (

no int PRIMARY KEY,

name varchar(50)

)

抽出結果を基にテーブル作成

SELECT文によって抽出した結果を収めるのに適したテーブルを自動的に作成してくれます。テーブルをコピーすきなど便利ですが、主キー等の設定は引き継がれませんので注意が必要です。

--文法

SELECT

カラム

INTO テーブル

FROM

テーブル

--例文

SELECT

*

INTO Table_2

FROM

Table_1

テーブルの削除

テーブルを削除します。

--文法

DROP TABLE テーブル

--例文

DROP TABLE Table_1

カラムの追加

既存のテーブルにカラムを追加します。

--文法

ALTER TABLE テーブル

ADD

カラム1 データ型 オプション,

カラム2 データ型 オプション,

:

:

:

カラムn データ型 オプション

--例文

ALTER TABLE テーブル

ADD

price int,

category int

カラムの変更

既存のテーブルのカラムを変更します。

--文法

ALTER TABLE テーブル

ALTER COLUMN カラム データ型 オプション

--文法

ALTER TABLE Table_1

ALTER COLUMN category char(2) PRIMARY KEY

カラムの削除

既存のテーブルのカラムを削除します。

--文法

ALTER TABLE テーブル

DROP COLUMN

カラム1,

カラム2,

:

:

:

カラムn

--例文

ALTER TABLE Table_1

DROP COLUMN

price,

category

レコードの挿入

レコードを挿入します。挿入するカラムを指定し、挿入するデータを指定します。

--文法

INSERT INTO テーブル (

カラム1,

カラム2,

:

:

:

カラムn

)

VALUES (

カラム1に挿入するデータ,

カラム2に挿入するデータ,

:

:

:

カラムnに挿入するデータ

)

--例文

INSERT INTO Table_1 (

no,

name,

price

)

VALUES (

7,

'Gum',

170

)

全てのカラムにデータを挿入する場合は挿入先となるカラムの指定を省略することができます。

--文法

INSERT INTO テーブル

VALUES (

カラム1に挿入するデータ,

カラム2に挿入するデータ,

:

:

:

カラムnに挿入するデータ

)

SELECT文の結果を挿入

SELECT文によって抽出されたデータを既存のテーブルに挿入する方法があります。便利な処理ですが抽出したレコードのデータ型と、挿入先のカラムのデータ型が一致している必要があります。

--例文

INSERT INTO Table_2 (

no,

name

)

SELECT

no,

name

FROM

Table_1

--例文(省略版)

INSERT INTO Table_2

SELECT

no,

name

FROM

Table_1

レコードの更新

レコードを更新します。WHERE句は省略することができますが、WHERE句で更新するレコードを指定しないと該当するカラムの全てのフィールドが更新の対象となってしまいますので注意してください。

--文法

UPDATE テーブル

SET

カラム1 = データ,

カラム2 = データ,

:

:

:

カラムn = データ

WHERE

条件式

--例文

UPDATE Table_1

SET

name = 'Beans',

price = 220

WHERE

no = 2

レコードの削除

レコードを削除します。WHERE句は省略することができますが、WHERE句で削除するレコードを指定しないとテーブル内の全てのレコードが削除されてしまいますので注意が必要です。

--文法

DELETE FROM テーブル

WHERE

条件式

--例文

DELETE FROM Table_1

WHERE

no > 101 AND

no < 1000

高速で一括消去

テーブル内にあるレコードを高速で全て削除します。

--文法

TRUNCATE TABLE テーブル

--例文

TRUNCATE TABLE Table_1

ストアドプロシージャの作成

ストアドプロシージャを作成します。引数を利用するかどうかで若干書き方が変わります。

--引数無し

CREATE PROCEDURE ストアドプロシージャ

AS

処理

--引数有り

CREATE PROCEDURE ストアドプロシージャ (

@第1引数を受け取る引数 データ型,

@第2引数を受け取る引数 データ型,

:

:

:

@第n引数を受け取る引数 データ型,

)

AS

処理

ストアドプロシージャの更新

ストアドプロシージャを更新します。引数を利用するかどうかで若干書き方が変わります。

--引数無し

ALTER PROCEDURE ストアドプロシージャ

AS

処理

--引数有り

ALTER PROCEDURE ストアドプロシージャ (

@第1引数を受け取る引数 データ型,

@第2引数を受け取る引数 データ型,

:

:

:

@第n引数を受け取る引数 データ型,

)

AS

処理

ストアドプロシージャの削除

ストアドプロシージャを削除します。

DROP PROCEDURE ストアドプロシージャ

ストアドプロシージャの実行

ストアドプロシージャを実行します。EXECUTEはEXECと略することができます。

EXECUTE ストアドプロシージャ 第1引数, 第2引数 ... 第n引数