MySQL 基本文法2 メモ
並べ替えと抽出
# カラム名で昇順 select * from テーブル名 order by カラム名; # カラム名で降順 select * from テーブル名 order by カラム名 desc; # グループ化->抽出 select カラム名 from テーブル名 group by カラム名 having 条件 select bang,sum(uria) from tb group by bang having sum(uria)>100;
更新
# 指定したカラム名の値すべて変更 update テーブル名 set カラム名=値; # 条件に一致したレコードのカラムだけ修正 update テーブル名 set カラム名=値 where 条件;
統合
# 基本統合(重複分はunion allで出せる) (select カラム名 from テーブル名1 where 条件) union (select カラム名 from テーブル名2 where 条件);
結合
# 内部結合 select カラム名 from テーブル名1 join 結合するテーブル名2 on テーブル名1.カラム名=テーブル名2.カラム名; # 左外部結合 select カラム名 from テーブル名1 left join テーブル名2 using(カラム名); #右外部結合 select カラム名 from テーブル名1 right join テーブル名2 using(カラム名);
サブクエリ
# tb1内のtosiの平均値以上のtosiをもつレコードの抽出 select * from tb1 where tosi >= (select avg(tosi) from tb1); # tb内のuriaの最大値をもつレコードの抽出 select * from tb where uria in (select max(uria) from tb); # tbにあってtb1にないやつ以外の情報の中でtb1にあるレコードを抽出 select * from tb1 where exists (select * from tb where tb.bang=tb1.bang); # tbにあってtb1にないやつの情報の中でtb1にあるレコードを抽出 select * from tb1 where not exists (select * from tb where tb.bang=tb1.bang);
ストアドプロシージャ
# 定義 delimiter // create procedure pr2(d int) begin select * from tb where uria>=d; end delimter ; // # 呼び出し call pr2 # 内容表示 show create procedure pr2; # 削除 drop procedure pr2;
ストアドファンクション
# 定義 delimiter // create function fu1(sintyo int) returns double begin return sintyo * sintyo * 22 / 10000; end // delimiter ; # 呼び出し select fu1(174); # 変数定義 delimiter // create function fu2() returns double begin declare r double; select avg(uria) into r from tb; return r; end // delimter ; # 内容表示 show create function fu2; # 削除 drop function fu2;
トリガ
# 定義 delimiter // create trigger tr1 before delete on tb1 for each row begin insert into tb1M values (old.bang, old.nama, old.tosi); end // delimiter ; # 確認 show triggers; # 削除 drop trigger tr1;
ストレージエンジン
# ストレージエンジンの確認 show create table tb;
トランザクション処理
# トランザクションの開始 start transaction; # ロールバック rollback; # コミット commit; # 自動コミットをオフ set autocommit=0; # 自動でコミットされる処理 drop database drop table drop alter table
ファイル
# コマンドが書かれたファイルの読み込んで実行 source ファイルのパス # CSV読み込み load data infile 'CSVファイルのパス' into table テーブル名 fields terminated by ','; # CSV書き込み select * into outfile 'CSVファイルのパス' fields terminated by ',' from テーブル名; # 実行コマンドと結果をファイルに書き込み開始 ## 始まり tee ファイル名 ## 終わり notee
参考文献
基礎からのMySQL 改訂版 (プログラマの種シリーズ SE必修! )
- 作者: 西沢夢路
- 出版社/メーカー: ソフトバンククリエイティブ
- 発売日: 2012/05/01
- メディア: 大型本
- 購入: 2人 クリック: 10回
- この商品を含むブログ (9件) を見る