[[CHJBootCamp2018]]

*SQL(0) 準備

**VPN / SSMSセッティング
必要なもの
+VPN接続アカウント
--外来者用WiFi(kokken01またはeduroam)でネットワーク接続後、手順に従いVPN接続
+Microsoft SQL Server Management Studio(SSMS)のインストール
--https://docs.microsoft.com/ja-jp/sql/ssms/download-sql-server-management-studio-ssms?view=sql-server-2017
--データベース(SQL Server)を利用する統合環境
+データベースアカウント
--参照権限のみ

*SQL(1) SELECT文の基本

**関係データベースとSQL

-既存のデータベースを使うことだけを説明します

**関係データベース(リレーショナルデータベース:RDB)
-あらゆるデータを表の組み合わせで表現する
-データを取り出すのが速い、データが壊れない、同時に処理できる

-(参考)[[データベース基礎中の基礎>https://thinkit.co.jp/series/4725]]
--リレーショナルデータベースの基本 https://thinkit.co.jp/article/1042/1
-(参考)[[SQLこれだけ知っていれば大丈夫!>https://tech.nikkeibp.co.jp/it/article/COLUMN/20070209/261546/]]

ー(参考)[[SQLこれだけ知っていれば大丈夫!>https://tech.nikkeibp.co.jp/it/article/COLUMN/20070209/261546/]]

***用語
-[[データベース管理システム(DBMS)>https://ja.wikipedia.org/wiki/%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%83%BC%E3%82%B9%E7%AE%A1%E7%90%86%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0]]
--[[''SQL Server''>https://ja.wikipedia.org/wiki/Microsoft_SQL_Server]], MySQL, PostgreSQL, Oracle, etc.
-データベースサーバー
-データベースインスタンス


-表(テーブル)
--列(カラム):テーブルの設計上決まっている(めったに増やしたりしない)
--レコード(行):追加されどんどん増えることが多い

|>|>|>|CENTER:テーブル|h

||列名1|列名2|列名3|…|
|レコード1|値|値|値||
|レコード2|値|値|値||
|CENTER::|||||


-クエリ(問い合わせ):データベースに対するさまざまな処理コマンド


-[[授業資料/表の正規化]]


**[[SQL>https://ja.wikipedia.org/wiki/SQL]]とは
データベース[[問い合わせ言語>https://ja.wikipedia.org/wiki/%E5%95%8F%E3%81%84%E5%90%88%E3%82%8F%E3%81%9B%E8%A8%80%E8%AA%9E]]
--SQLの基本 https://thinkit.co.jp/article/1046/1

***SQLの書式など(Microsoft SQL Server の場合)
-コマンドと記号は全て半角
-コマンドは大文字小文字の区別は(原則として)ない
--テーブル名や列名等は大文字小文字の区別あり(DBの設定による)
-コマンドの切れ目のスペースやタブは余計に入っていても、改行を入れてもいい
-文字列を値として指定するときは'値'のようにシングルクオーテーションで囲む
--Unicode文字として明示するときはN'値'とする
--値として'を入れたいときは''としてエスケープ
- --でコメントアウト(実行対象外になる) 
--行の途中からでも可
-/* 〜 */  で複数行コメントアウト

***CHJデータベースの利用
-利用するデータベースの選択
 use chunagon_chj

-テーブル
--短単位
--長単位
--書誌情報

**SELECT文
とりあえずこれだけ!覚える
-SELECT:データベースの表からデータを選択して出力するコマンド
--SELECT文による出力も表形式

--SELECT 列名,列名2... FROM テーブル
---短単位表から語彙素,語彙素読みの列を(全部)出力
 SELECT 語彙素,語彙素読み FROM 短単位

---※クエリ実行の取り消し Alt+Break

---短単位表から語彙素,語彙素読みの列を最初の100行出力
 SELECT TOP 100 語彙素,語彙素読み FROM 短単位


***WHERE条件句
- SELECT 列名,列名2... FROM テーブル WHERE 列名='hoge'
--短単位表から品詞が接続詞であるものの語彙素,語彙素読みの列を出力
 SELECT 語彙素,語彙素読み FROM 短単位 WHERE 品詞='接続詞'
--条件をAND、ORで複数指定できる
---ANDの方が優先順位が高い
---ORとANDを組み合わせるときは()で優先順位を示す

***LIKE 演算子とワイルドカード
-"LIKE"は"="のようなものだが、ワイルドカードを含む完全一致でない場合に使う
-ワイルドカード((「中納言」で使えるものと同じ。正規表現とは異なる))
-- %:任意の文字列(文字なしでも可)
-- _:任意の一文字
-- [abc]:カッコ内のいずれかの文字(文字クラス)
-- [^abc]:カッコ内の文字以外(補集合)
-- [a-z]:文字コードの範囲で指定

--短単位表から品詞が形容詞ではじまるものの語彙素,語彙素読みの列を出力
 SELECT 語彙素,語彙素読み FROM 短単位 WHERE 品詞 LIKE '形容詞%'
--短単位表から品詞が接続詞で語彙素読みがカ行で始まるものの語彙素,語彙素読みの列を出力
 SELECT 語彙素,語彙素読み FROM 短単位 WHERE 品詞 LIKE '形容詞%' AND 語彙素読み LIKE '[カ-コ]%'


***ORDER BY 句(並べ替え)
-ORDER BY 列名 (DESC)((DESCを付けると逆順(降順)に出力))
--短単位表から品詞が接続詞であるものの語彙素,語彙素読みの列を語彙素読み順に出力
 SELECT 語彙素,語彙素読み FROM 短単位 WHERE 品詞='接続詞' ORDER BY 語彙素読み

-※ORDER BY句がないとデータベースは適当な順番で出力する!
--データ集合としてはいつも同じだが、ORDER BY句がないと並び順は保証されない

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS