CHJBootCamp2018
SQL(0) 準備
VPN / SSMSセッティング
必要なもの
- VPN接続アカウント
- 外来者用WiFi(kokken01またはeduroam)でネットワーク接続後、手順に従いVPN接続
- Microsoft SQL Server Management Studio(SSMS)のインストール
- データベースアカウント
SQL(1) SELECT文の基本
関係データベースとSQL
関係データベース(リレーショナルデータベース:RDB)
- あらゆるデータを表の組み合わせで表現する
- データを取り出すのが速い、データが壊れない、同時に処理できる
用語
- 表(テーブル)
- 列(カラム):テーブルの設計上決まっている(めったに増やしたりしない)
- レコード(行):追加されどんどん増えることが多い
| 列名1 | 列名2 | 列名3 | … |
レコード1 | 値 | 値 | 値 | |
レコード2 | 値 | 値 | 値 | |
: | | | | |
- クエリ(問い合わせ):データベースに対するさまざまな処理コマンド
データベース問い合わせ言語
SQLの書式など(Microsoft SQL Server の場合)
- コマンドと記号は全て半角
- コマンドは大文字小文字の区別は(原則として)ない
- テーブル名や列名等は大文字小文字の区別あり(DBの設定による)
- コマンドの切れ目のスペースやタブは余計に入っていても、改行を入れてもいい
- 文字列を値として指定するときは'値'のようにシングルクオーテーションで囲む
- Unicode文字として明示するときはN'値'とする
- 値として'を入れたいときは''としてエスケープ
- --でコメントアウト(実行対象外になる)
- /* ~ */ で複数行コメントアウト
CHJデータベースの利用
- 利用するデータベースの選択
use chunagon_chj
SELECT文
とりあえずこれだけ!覚える
- SELECT:データベースの表からデータを選択して出力するコマンド
- SELECT 列名,列名2... FROM テーブル
WHERE条件句
- SELECT 列名,列名2... FROM テーブル WHERE 列名='hoge'
LIKE 演算子とワイルドカード
- "LIKE"は"="のようなものだが、ワイルドカードを含む完全一致でない場合に使う
- ワイルドカード*1
- %:任意の文字列(文字なしでも可)
- _:任意の一文字
- [abc]:カッコ内のいずれかの文字(文字クラス)
- [^abc]:カッコ内の文字以外(補集合)
- [a-z]:文字コードの範囲で指定
- 短単位表から品詞が形容詞ではじまるものの語彙素,語彙素読みの列を出力
SELECT 語彙素,語彙素読み FROM 短単位 WHERE 品詞 LIKE '形容詞%'
- 短単位表から品詞が接続詞で語彙素読みがカ行で始まるものの語彙素,語彙素読みの列を出力
SELECT 語彙素,語彙素読み FROM 短単位 WHERE 品詞 LIKE '形容詞%' AND 語彙素読み LIKE '[カ-コ]%'
ORDER BY 句(並べ替え)
- ※ORDER BY句がないとデータベースは適当な順番で出力する!
- データ集合としてはいつも同じだが、ORDER BY句がないと並び順は保証されない
「中納言」で使えるものと同じ。正規表現とは異なる
DESCを付けると逆順(降順)に出力