| モンドリィの自習室 - トップへ - SQL関連Tipsへ |
|
SQL構文 ● いわゆる覚え書き。自分が学んだことを忘れないように残しておこうと思います。 ● 目次 ● ・ はじめに ・ 比較演算子一覧 ・ 指定した文字列が含まれるかを調べるには (LIKE演算子) ・ 指定した文字列が含まれないかを調べるには (NOT LIKE演算子) ・ DISTINCT ・ DELETE ・ UPDATE ・ INSERT ・ あとがき はじめに 2004年冬から、SQLの勉強を始めました。 またしても実践と言う名の勉強だから恐ろしいものです・・・(^o^; はは
ご注意 ※ Microsoft SQL Server 2000、および Microsoft MSDE上で実行しています
SELECT〜FROM で単一列データを取り出すには ・テーブルからデータを取り出す構文
例) SELECT * FROM Customer (Customerテーブルからすべての列データを取得) 例) SELECT NAME FROM Customer (CustomerテーブルからNAME列のデータを取得)
SELECT〜FROM で複数列データを取り出すには ・複数の列を取り出す構文 (列をカンマで区切る。最後尾にはカンマはつけない)
例) SELECT ID, NAME FROM Customer (Customerテーブルから ID と NAME 列のデータを取得)
AS句を使って列に別名をつけるには ・列に別名をつける構文
例) SELECT NAME AS 名前 FROM Customer (NAME列に名前と言う別名をつける) ※同じ列を、違う別名によって区別することもできる。 ※RDBMSの種類によってはAS句が使えないらしい。SQL Server 2000は使える。 ※列名に日本語を使用するとエラーになる事が。一般的にはダブルクォーテーション " でくくって回避
WHERE句で条件を絞り込むには ・WHERE句で、条件に合うレコードだけを取り出す
例) SELECT * FROM Customers WHERE CustomerID = 'PARIS' (CustomerID が PARISのレコードを取得) ※ 文字列型を比較する場合は対象文字列をシングルクォーテーションで囲む。( SQL Server の場合 ) ● AND や OR を使うことによって、複数の条件組み合わせることも出来ます。● 例) SELECT COUNT (*) FROM Customers
WHERE City = 'Paris' AND CustomerID = 'PARIS' 例) SELECT * FROM Customers WHERE
City ='Paris' OR City = 'London'
比較演算子一覧 ・WHERE句で条件を指定する際に利用できる代表的な比較演算子
参考文献)SQL 書き方ドリル(羽生章洋さん著)
指定した文字列が含まれるかを調べるには (LIKE演算子) LIKE演算子を使って指定した文字列が含まれるかどうかを調べることができます。 任意の文字列の場合は % , 任意の1文字の場合は _ を使って調べられます。 例) SELECT * FROM Company WHERE CompanyName LIKE
'%有限会社%'; 例) SELECT * FROM Members WHERE FamilyName LIKE '_木';
指定した文字列が含まれないかを調べるには (NOT LIKE演算子) NOT LIKE演算子を使って指定した文字列が含まれないかを調べることができます。 任意の文字列の場合は % , 任意の1文字の場合は _ を使って調べられます。 例) SELECT * FROM Company WHERE CompanyName NOT LIKE '%有限%'; 例) SELECT * FROM Members WHERE FamilyName NOT
LIKE '_木';
INNER JOIN テーブルを結合 例) SELECT * FROM Customer INNER JOIN MasterDB
DISTINCT 同じ値を一つにまとめて表示 例) SELECT DISTINCT UserID FROM Customer
DELETE DELETE FROM <テーブル名> WHERE <削除するレコードの条件>
UPDATE UPDATE <テーブル名> SET <列名> = '値' WHERE <更新するレコードの条件>
INSERT INSERT <テーブル名> <列名> VALUES <追加するデータ>
税抜きの価格を取り出し税込価格として取得するには ・列に対して演算を行い別名をつける構文
例) SELECT Price * 1.05 AS 税込価格 FROM Product (Priceに消費税率をかけて税込みと言う別名をつける)
列と列の演算結果を別名で表示するには ・列同士で演算を行い別名をつける構文
例) SELECT Price * Amount AS 合計価格 FROM Product (PriceにAmountをかけて合計価格と言う別名をつける)
列と列の連結を行うには ・列と列の連結を行い、別名をつける構文
例) SELECT FamilyName + Name AS 宛名 FROM Customers (名字と名前を連結して宛名と言う別名をつける) ※ + は SQL Serverの場合。(その他の場合は || を使うらしい)
列と文字列の連結を行うには ・列と文字列の連結を行い、別名をつける構文
例) SELECT FamilyName + '様' AS お客様名字 FROM Customers (名字と様を連結してお客様名という別名をつける) ※ + は SQL Serverの場合。(その他の場合は || を使うらしい)
平均値を取得するには(AVG) ・平均値を取得する構文
例) SELECT AVG(Age) AS 平均年齢 FROM Members (メンバーの平均年齢を取得し、平均年齢という別名をつける) ※ 指定できる列は数値型の列のみ。 ※ 集合関数は複数の行の値をまとめて一つの結果を得ることができる
最大値を取得するには(MAX) ・最大値を取得する構文
例) SELECT MAX(Age) AS 最高年齢 FROM Members (メンバーの年齢から最大値を取得し、最高年齢という別名をつける) ※ 集合関数は複数の行の値をまとめて一つの結果を得ることができる
最小値を取得するには(MIN) ・最大値を取得する構文
例) SELECT MIN(Age) AS 最低年齢 FROM Members (メンバーの年齢から最小値を取得し、最低年齢と言う別名をつける) ※ 集合関数は複数の行の値をまとめて一つの結果を得ることができる
個数を取得するには(COUNT) ・個数を取得する構文
例) SELECT COUNT (*) AS メンバー人数 FROM Members (メンバー数(=レコード数)を取得して、メンバー人数と言う別名をつける) ※ 集合関数は複数の行の値をまとめて一つの結果を得ることができる
合計値を取得するには(SUM) ・合計値を取得する構文
例) SELECT SUM(Price) AS 価格合計 FROM Products (商品価格の合計を取得し、価格合計という別名をつける) ※ 指定できる列は数値型の列のみ。 ※ 集合関数は複数の行の値をまとめて一つの結果を得ることができる
CASE句で条件分岐するには ・CASE句を使って条件を分岐する構文
例) SELECT 例) SELECT
日付を大小判断するには 例) SELECT * FROM DB WHERE SAMPLE_DATE > '2004/08/06'; シングルクォーテーションで囲った日付と>や<や>=や<=を使って条件を指定することができます。 記事作成日 : 2004/08/06 記事最終更新日 : まだない。
任意の日を指定するには(1日) 例) SELECT * FROM DB WHERE SAMPLE_DATE >= '2005/02/16' AND SAMPLE_DATE < '2005/02/17'; シングルクォーテーションで囲った日付と>や<や>=や<=を使って条件を指定することができます。 学習先 : SQL侍さんによるアドバイス。 記事作成日 : 2005/02/16 記事最終更新日 : まだない。
任意の日を指定するには(2日以上) 例) SELECT * FROM DB WHERE SAMPLE_DATE BETWEEN '2005/02/16' AND '2005/02/17 23:59:59'; BETWEEN を使って範囲を指定することができます。 学習先 : SQL侍さんによるアドバイス。 記事作成日 : 2005/02/16 記事最終更新日 : 2005/03/10 SQL侍さんによるアドバイスにより一部修正。
日付の要素を整数で取得するには(DATEPART関数) ・指定された日付の、特定の日付の要素を整数で取得する
例) SELECT DATEPART(month, BirthDate) AS 誕生日月 FROM Employees (誕生日月を整数で取得し、誕生日月と言う別名をつける)
● DATEPART関数について ●
datepart一覧 ・日付の要素 (datepart) と Microsoft SQL Server で認識される省略形
参考文献)SQL Server Books Online
あとがき 内容的におかしいところ、見づらい個所(色使い)などございましたらご指摘ください。 同じようにMicrosoft SQL Server を利用されている方からの苦労話も大歓迎です。
|
| モンドリィの自習室 - トップへ - SQL関連Tipsへ |