くうと徒然なるままに

モバイルアプリを作りながらバックエンドも作っています。

SQL Database で 基本的な参照・追加・削除 する SQL を書いてみた

最近, SQL SQL Database を弄る機会があったのでまとめてみます。

書いた理由の1つ

環境

  • Azure SQL Database
  • SSMS (SQL Server managenement Studio)

SQL Database を SQL でいじる

SQL Database へ クエリを投げるには、SQL Server Management Studio を使いました。

小ネタ

SSMS で検索するとサジェストされるのが面白かったです。

https://lh3.googleusercontent.com/-lxr3PZSmR-Y/WWNgBjFxWwI/AAAAAAAAK0I/XnTDNANi8v02YWaFJzE_1I_HkLUSbZYPQCHMYCw/s0/Ssms_2017-07-10_20-07-46.png

使った DB, Table

DB

https://lh3.googleusercontent.com/-OFzsiTf-gVE/WWNeg_pwGAI/AAAAAAAAKz4/Socc2Asnvd0xQQrLu4VpatyJyyPdm8PogCHMYCw/s0/chrome_2017-07-10_20-01-21.png

Tables

https://lh3.googleusercontent.com/-4DxeGxTIn0U/WWNfy9wHYGI/AAAAAAAAK0E/J_SNa3FqM_Y2m-UW3PS6aNYrRbY02tMggCHMYCw/s0/Ssms_2017-07-10_20-06-48.png

参照

特定のテーブルのすべてのカラム・データを表示する

SELECT * FROM {TableName}

SELECT * FROM [SalesLT].[Address]

実行結果

SalesLT.Address テーブルの中身が全部表示されてますね。

https://lh3.googleusercontent.com/-iZBihxFhaOk/WWNgu3d1BCI/AAAAAAAAK0Q/KhFEiWmObJo5fOvCNSOHPyueHznD_ro1QCHMYCw/s0/Ssms_2017-07-10_20-10-49.png

特定のテーブルの特定のカラムを表示する

SELECT [{カラム名}],[{カラム名}],[{カラム名}] FROM {TableName}

SELECT [AddressID],[City],[StateProvince] FROM [SalesLT].[Address]

実行結果

SalesLT.Address テーブルの AddressID, City,SatateProvince のカラムを表示しています。

https://lh3.googleusercontent.com/-WZx1fY8lLmY/WWNhP0AiQ7I/AAAAAAAAK0Y/iDMkYqOsITcWgoAbV0gmFaR67NJXFPY-ACHMYCw/s0/Ssms_2017-07-10_20-13-02.png

特定のテーブルの特定のカラムを特定件数表示する(今回は上部10件)

SELECT TOP 10 [{カラム名}],[{カラム名}],[{カラム名}] 
FROM {TableName}

SELECT TOP 10 [AddressID],[City],[StateProvince] 
FROM [SalesLT].[Address] 

実行結果

https://lh3.googleusercontent.com/-WIwW0MHcxVA/WWNi5A3e8MI/AAAAAAAAK0k/MnJ_0Njcu7MGmzxu_NU39NyLUwp8K7DFgCHMYCw/s0/Ssms_2017-07-10_20-20-03.png

追加

データを追加する先のテーブルとして、 KEYAKI_Member_Infomatin を追加しました。

https://lh3.googleusercontent.com/-sP-gccDgea8/WWNplFgBvJI/AAAAAAAAK04/wX29gFNirfgelE_RIdrB8IuSN6CXs9bvACHMYCw/s0/Ssms_2017-07-10_20-48-36.png

データを追加する

INSERT INTO {TableNAME}
VALUES({1行目の値},{2行目の値},{3行目の値})

ポイントしては、マルチバイト文字をデータとして代入するために、 データ型を NVARCHAR({N}) 、 実際に入れるデータをしていするときに **N**'' としているところです。

INSERT INTO KEYAKI_Member_Infomation
VALUES (N'長濱ねる', N'ひらがなけやき', N'長濱 ねる(ながはま ねる、1998年9月4日 - )は、けやき坂46および欅坂46のメンバー。長崎県出身。')

実行結果

https://lh3.googleusercontent.com/-kMoSJ27ozyc/WWNqpWFvHyI/AAAAAAAAK08/slcTGRkleeYTdRG7v6rUUYnINsIj6bX_wCHMYCw/s0/Ssms_2017-07-10_20-53-08.png

カラムを指定してデータを入れる

INSERT INTO {TableName}({カラム名},{カラム名},{カラム名})
VALUES (N'{入れる値}',N'{入れる値}',N'{入れる値}')

INSERT INTO KEYAKI_Member_Infomation(MemberName, Team,Comment)
VALUES (N'長濱ねる', N'ひらがなけやき', N'長濱 ねる(ながはま ねる、1998年9月4日 - )は、けやき坂46および欅坂46のメンバー。長崎県出身。')

実行結果

https://lh3.googleusercontent.com/-Qj7CSHpO7cc/WWNxXlViB8I/AAAAAAAAK1M/z7WdgdVioWgRRzceIB9Fu2Op_sN8d5sqgCHMYCw/s0/Ssms_2017-07-10_21-21-49.png

削除

先ほど使用したテーブルにいくつか加えたものに操作を加えていきます。

https://lh3.googleusercontent.com/-AfVqplQlvLg/WWNye0GMj9I/AAAAAAAAK1Y/4Hm8E1-J64Ak2pM_DtvPFNGNIbocCBqbACHMYCw/s0/Ssms_2017-07-10_21-26-34.png

INSERT INTO KEYAKI_Member_Infomation(MemberName, Team,Comment)
VALUES 
(N'長濱ねる', N'ひらがなけやき', N'長濱 ねる(ながはま ねる、1998年9月4日 - )は、けやき坂46および欅坂46のメンバー。長崎県出身。')
,(N'菅井 ゆうか', N'漢字欅', N'菅井 友香(すがい ゆうか、1995年11月29日 - )は、欅坂46のキャプテン。東京都出身。')
,(N'鈴本 美愉', N'漢字欅', N'鈴本 美愉(すずもと みゆ、1997年12月5日 - )は、欅坂46のメンバー。愛知県出身。')
,(N'齊藤 京子', N'ひらがなけやき', N'齊藤 京子(さいとう きょうこ、1997年9月5日 - )は、けやき坂46のメンバー。東京都出身。')
,(N'井口 眞緒', N'ひらがなけやき', N'井口 眞緒(いぐち まお、1995年11月10日 - )は、けやき坂46のメンバー。新潟県出身。')

テーブルのすべての値を削除

DELETE FROM {Table Name}

DELETE FROM KEYAKI_Member_Infomation

テーブルの特定の値を指定して削除

DELETE FROM {Table Name} WHERE {カラム名} = '{指定したい値}'

Team が ひらがなけやき なメンバーの情報を削除しています。

DELETE FROM KEYAKI_Member_Infomation WHERE Team = N'ひらがなけやき'

実行結果

Before

https://lh3.googleusercontent.com/-iVMJW_2luSQ/WWN1HOPCtpI/AAAAAAAAK1s/mZuKM6eq1QQ6I3Gn4vKFGg-YjHAIqm2FgCHMYCw/s0/Ssms_2017-07-10_21-37-47.png

After

https://lh3.googleusercontent.com/-VJcqqjN8qXI/WWN1OwT64EI/AAAAAAAAK1w/zzG_A0KF3lknVhbNsZ5MIjJsDZUzgOiXACHMYCw/s0/Ssms_2017-07-10_21-38-18.png

まとめ

SQL はまだまだ奥が深いそうなので、機会があったら触れていきたいです。

Amazon の欲しいものリスト

www.amazon.co.jp

いろいろ勉強していきたいので、ご支援お願いします。