2017年3月31日金曜日

SQL Server ワイルドカードであいまい検索

あいまい検索とは?

検索条件と完全に一致しながいが、一定の規則によって対象を絞り込むことです
SQL ServerではLIKEと「%」ワイルドカードを使用します

検索対象のテーブルを仮定

コード内容
101昨日は晴
102今日は晴
103明日は晴
201昨日は曇り
202今日は曇り
203明日は曇り
301昨日は雨
302今日は雨
303明日は雨
このようなテーブルの内容を仮定します

前方一致

SELECT
        コード,
        内容
    FROM
        テーブル名
    WHERE
        コード  LIKE    '昨日%'
このように検索されます
コード内容
101昨日は晴
201昨日は曇り
301昨日は雨

後方一致

SELECT
        コード,
        内容
    FROM
        テーブル名
    WHERE
        コード  LIKE    '%晴'
このように検索されます
コード内容
101昨日は晴
102今日は晴
103明日は晴

部分一致

SELECT
        コード,
        内容
    FROM
        テーブル名
    WHERE
        コード  LIKE    '%日は%'
このように検索されます
コード内容
101昨日は晴
102今日は晴
103明日は晴
201昨日は曇り
202今日は曇り
203明日は曇り
301昨日は雨
302今日は雨
303明日は雨

2017年3月30日木曜日

SQL Server 表示・追加・修正・削除のSQL文

行を表示するSQL文

 
SELECT
        表示する列名1,
        表示する列名2
    FROM
        テーブル名
このSQL文はテーブルの全行を表示します

行を追加するSQL文

 
INSERT  INTO    テーブル名
(
    列名1,
    列名2
)
VALUES
(
    110,
    'あいうえお'
)
代入する値が文字列の場合わ「'」コーテーションで値を囲みます
このSQL文は1行のみ追加します

列の値を変更するSQL文

 
UPDATE テーブル名
    SET 値を変更する列名1  =   123,
        値を変更する列名2  =   'あいうえお'
このSQL文はテーブル全行の値を変更します

行を削除するSQL文

 
DELETE
    FROM
        テーブル名
このSQL文はテーブルの全ての行を削除します

WHERE句を使用して検索条件を設定する

WHERE句とは?
検索条件を指定するためのもので、SELECT文やUPDATE文、DELETE文などに使用でき読み込みや更新、削除の対象を絞り込むことが出来ます

検索条件を指定して行を表示する

 
SELECT
        列名1,
        列名2
    FROM
        テーブル名
    WHERE
        列名1  =   0
列名1の値が「0」の行が表示されます
 
SELECT
        列名1,
        列名2
    FROM
        テーブル名
    WHERE
        列名2  =   'あいうえお'
文字列を検索値にする場合は「'」コーテーションで値を囲みます
列名2の値が「あいうえお」の行が表示されます

検索条件を指定して更新する

UPDATE テーブル名
    SET 列名1  =   123,
        列名2  =   'あいうえお'
    WHERE
        列名1  =   1
列名1が「1」の行がが更新されます

検索条件を指定して削除する

DELETE
    FROM
        テーブル名
    WHERE
        列名  =   1
列名1が「1」の行がが削除されます

テーブルからテーブルに条件を指定してINSERTする

INSERT  INTO    テーブル名1
(
    テーブル名1.列名1,
    テーブル名1.列名2
)
SELECT
        テーブル名2.列名1,
        テーブル名2.列名2
    FROM
        テーブル名2
    WHERE
        テーブル名2.列名1 =   1

2017年3月29日水曜日

SQL Server テーブル構成の変更

テーブル構成を変更するSQL文

多少の変更であれはSQL Server Management Studioのデザイナーを使用してもいいですが、多くの内容を変更するのは面倒で、効率的ではありません
テキストエディター等でテーブル構成変更のSQLを作成して一括で変更する方が効率的です

列を追加する

 
USE データベース名  'カレントデータベースの変更

ALTER   TABLE   テーブル名  ADD
    追加する列名1  型(桁数),
    追加する列名2  型(桁数)

型と有効桁数を変更する

ALTER   TABLE   テーブル名  ALTER
    COLUMN 変更する列名 型(桁数)

列名を変更する

EXEC sp_rename
    'テーブル名.列名','変更後の列名','COLUMN'

列を削除する

ALTER   TABLE   テーブル名  DROP    COLUMN
    削除する列名1,
    削除する列名2