Q&A
Q:アルファベットの大文字小文字の決まりはあるのでしょうか...
A:RDBにも種類がありまして、メディアラボではSQL ServerとPostgre SQL のどちらかを使うことが多いです。
(研修で操作しているのはSQL Serverですね)
SQL Serverでは、大文字/小文字は区別されません。
正式な名称が大文字で設定されているテーブルに対してSQLを書く場合、小文字で書いても問題なく動作します。
ですので何も意識せずに使えるため、決まり事を作ることもあまりないです。
Postgre SQLでは、大文字/小文字が区別される場合があるため、開発プロジェクトごとにコーディング規約のような決まり事がある場合が多いです。
射影
特定のカラム(列)を取り出す
SELECT 取得したいカラム名 FROM 取得先のテーブル名
複数のカラムを取得する場合はカラムA,カラムB・・・のようにカンマで区切る
選択
特定の行を取り出す
SELECT * FROM テーブル名 WHERE 条件
条件
選択・射影
特定の行のカラムを取り出す
SELECT カラム名 FROM テーブル名 WHERE 条件
SELECT * FROM テーブル名 WHERE 条件 ORDER BY カラム名 asc or DESC
※昇順の場合は asc 、降順の場合はDESCを入力する
※複数の場合
~ORDER BY カラム名A , カラム名B
前のカラムから優先でソートされる
Q&A
Q:NULLを許すカラムと許さないカラムはどのように決まるのでしょうか?
A:テーブル名で右クリック→デザインでカラムごとのNULL許容の設定が確認できます。
これらはテーブルの作成時に指定する情報になります。
UPDATE テーブル名 SET カラム名 = ' 値 ' WHERE 条件
条件を定めないとすべて更新されてしまうので注意
DELETE テーブル名 WHERE 条件
条件を定めないとすべて削除してしまうので注意
ROLLBACK
COMMIT
総括
外部結合
Q&A
Q:年齢で結合させていて、スライドでは結合後年齢のカラムが重複していたのですが、分かりやすくするために重複したスライドなのか実際でも重複しているのかが気になりました。また、もし重複するのなら重複させない方法などはあるのでしょうか
A:この動画で例に挙げているSQLが「SELECT * FROM ~」となっているため、結合した2つのテーブルに同じ意味合いのデータが存在する場合に、重複して表示される結果が得られます。
SQLの「*」の部分は、以下のように表示したいカラムだけを列挙することで、表示させたいものだけを表示することができます。
内部結合
実践結合