6
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

DBと仲良くしたいときに役立つリンク集

Last updated at Posted at 2018-06-18

バックアップ用にテーブルをコピーしたい

create table {バックアップ用テーブル} as select * from {元のテーブル};

同じテーブルに一部のカラムの値だけ変更してデータをコピーしたい

insert into テーブルA (カラム1, カラム2, カラム3, カラム4) select カラム1, 'hoge', カラム3, カラム4 from テーブルA where {コピー元のデータを抽出する条件};

CASE

null判定
CASE WHEN {null判定したいカラム} IS NULL THEN {nullの場合の結果} ELSE {nullでない場合の結果} END
構文の違いによる処理速度は変わらないらしいです。
/* 検索形式:こっちだと複数条件を組み合わせられます。注意: CASEとWHENの間にカラム書いちゃダメ */
CASE WHEN {条件式} THEN {条件式がtrueになった時の結果} [WHEN ...] ELSE {どの条件式に当てはまらなかった時の結果} END
/* 単純形式:値の一致だけが条件であればこちらがカンタンです。 */
CASE {条件となるカラム} WHEN {} THEN {カラム値が値だった時の結果} [WHEN ...] ELSE {カラム値がどの値でもない時の結果} END
Sample
/* 同じ内容を2つの形式で書いてみる */
CASE WHEN col = 1 THEN 'hoge' WHEN col = 2 THEN 'fuga' ELSE 'pon' END;
CASE col WHEN 1 THEN 'hoge' WHEN 2 THEN 'fuga' ELSE 'pon' END;
/* こういうのは単純形式では書けない */
CASE WHEN col IN (1,2,3) THEN 'hoge' WHEN col IN (4,5,6) THEN 'fuga' ELSE 'pon' END;
CASE WHEN col1 <> 1 AND col2 = 'a' THEN 'hoge' WHEN col1 = 1 AND col2 = 'b' THEN 'fuga' ELSE 'pon' END;

with で同じselect文をまとめたい

joinがわからなくなる

/* 完全外部結合 */
select * from {テーブルA} a full outer join {テーブルB} b on a.A = b.B [where {条件式}];

group byした最大値のレコードがほしい

-- ぱたーん1. 自分と最大値をselectした自分をinner joinする
SELECT * FROM table a INNER JOIN (SELECT id, MAX(col) AS col FROM table GROUP BY id) AS b ON a.id = b.id AND a.col = b.col;
-- ぱたーん2. 最大値をselectして条件にする
SELECT * FROM table a where a.col = (SELECT MAX(col) FROM table b WHERE a.id = b.id GROUP BY id);
-- ぱたーん3. 自分と自分をleft joinする(速い)
SELECT * FROM table a LEFT JOIN table b ON a.id = b.id AND a.col < b.col WHERE b.col IS NULL;

順序

書く順序
SELECT > FROM > WHERE > GROUP BY > HAVING > ORDER BY
評価順序
FROM > ON > JOIN > WHERE > GROUP BY > HAVING > SELECT > DISTINCT > ORDER BY > TOP(LIMIT)

SELECT文の評価順序 - Qiita

DB情報

Oracle

PostgreSQL

MySQL

MyBatis

エイリアス Java タイプ
_byte byte
_long long
_short short
_int / _integer int
_double double
_float float
_boolean boolean

ストアドプロシージャって何?

(Windows)A5:SQL Mk-2

image.png

やりたいこと ショートカット
コメントアウト(コメントアウトを解除) Ctrl + K (Ctrl + Shift + K)
実行計画を表示 Ctrl + E

設定をファイルに出力しておく方法

readme.txt(v2.13.2)
■ポータブルモード
  通常、A5:SQL Mk-2はレジストリ及び、%APPDATA%\a5m2(x86)(または %APPDATA%\a5m2(x64))
配下に設定や一時ファイルを保存しますが、あらかじめ、A5M2.exeと同じフォルダに 
"Portable" フォルダを作成しておくことで全ての設定および一時ファイル・SQLログ
ファイルを "Portable" フォルダに配置するようになる「ポータブルモード」で動作
させることができます。
 これにより、USBメモリなどに配置してA5:SQL Mk-2を持ち運び、各PCで設定を共有
することができるようになります。

 ポータブルモードは以下の特徴を備えます。

 ・レジストリに書き込みを行わない
 ・"Portable" フォルダ以外に一時ファイルを作成しない
 ・設定や一時ファイル・SQLログファイルはすべてAES(256bit)で暗号化される
 ・起動パスワードを設定することができる
 ・ファイルの関連付けは行えない

 ポータブルモードは上述の通り、設定や一時ファイル・SQLログファイルをすべて
AES(キー長:256bit)で暗号化します。このため、起動パスワードを設定すれば、万一
A5:SQL Mk-2 の入ったUSBメモリ等を紛失しても、DBの設定情報や一時保存されたSQL・
ER図・スクリプト、SQLの実行を記録したログファイルが流出する可能性を最小限に
することができます。

 もちろん、USBメモリ等に入れなくとも、レジストリに書き込みを行わない目的で
ポータブルモードを利用することもできます。
6
13
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?