MySQLについて ⑤
サブクエリ
一時的にしか使わないテーブルの置き換え
情報を取得するための一時的なテーブルで、処理が終われば破棄される
元の内容に別名を付けて、それを参照させる
元の内容
from(処理内容)as 別名
select sum(別名.カラム名)
元の処理内容の名前
from(処理内容)as 元の内容の別名
group by 元の処理内容の名前
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
viewで抽出条件を保存
create view as viewの名前 as select * from テーブル名 order by 条件
viewを消す
drop view
viewはテーブルと同じ扱い、show tables;で表示される
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
ある処理をする際にその処理が実行されることを保証する
start tansaction;
~commit
この二つの分を処理の前と後ろに入れる
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
索引
データ抽出の短縮が可能
add indexで指定。
alter テーブル名 add index index_カラム名
explain → 索引の中身を検索
drop index → 索引の削除
show index → 索引の表示
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
複数のテーブルの紐づけ
inner joinとouter join
inner join → 共通する項目の取得
outer join → 共通しない項目も含めて取得
inner join
構文 select * from テーブル名1 join テーブル名2
on テーブル名1の項目 = テーブル名2の項目
特定のフィールドのみの取得
selectの後にテーブル名.フィールド名とする
outer join
片方だけのデータでも取得する
left join → 左側に書いたテーブルを軸にする
right join → 右側に書いたテーブルを軸にする
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
外部キー制約
データの整合性を保つ
制約に使いたいデータについてはデータの型を合わせておく
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
torriger
何らかの変更を加えた際に指定の処理を行うようにする
create triggerでトリガーを作成する
begin ~ end で複数のトリガーを指定できる
この際にdelimiter(応用文字)を使うことを忘れない。(;に対して)
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
日時の管理・計算
created date time → 作成日時の管理
updated date time → 更新日時の管理
update ~ set created ='日時の指定' → 更新日時を指定
select * from ~ where created → 表示する条件の指定
select created ,date_add(created,interval 14day) → 作成日時に二週間足した日時の表示
select created data_format(created,'%w,%M, %Y) from テーブル名
→ 好きな書式を指定して表示ができる
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
データベースの書き出し
mysql_dumpを使ってバックアップをとる
\. ./バックアップファイルの名前でバックアップ時のファイルの書き出しが可能
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
○まとめ
一応一通りやってみた中で理論的にわからないことは見当たらない。
ただ、サブクエリの使い方については自分でいざ書いてみるとなると不安があるので、きちんと復習と0から作ってみることをしてみる。