ステップアップ備忘録

学習用備忘録

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から作ってみることをしてみる。