« ◇量子力学と素粒子論の大きな溝 | トップページ | ◇ビートルズ赤盤・青盤・緑盤:音楽の並びの記憶 »

SQLど忘れメモ

メモです。

SELECT 列1,列2,列3 FROM 表1 WHERE 列1='VAL1' ORDER BY 2 DESC;
UPDATE 表1 SET 列1='VAL1',列2='VAL2',列3=式3 WHERE 列1=式4;
INSERT INTO 表1 ( 列1,列2,列3 ) VALUES ( 'VAL1','VAL2',式3 );
DELETE FROM 表1 WHERE 列1=式1 AND ( 列2='VAL2' OR 列3=式3 );

CREATE TABLE 表1 ( 列1 nvchar(256) PRIMARY KEY,列2 number ,列3 nchar(8) NOT NULL ); DROP TABLE 表1;
灰色の部分はDBによっては省略可能だが、省略不能なDBもあるので注意。
最後のセミコロンは必須のものと逆にエラーになるものがある。本質的にはセミコロンは SQLの一部ではなくUI部に与えるトリガー。

DELETEは行の削除でDROPはテーブルそのものの定義も含む削除。

テーブル一覧を出す一般的SQLというものは無いが、幾つかのDBでは次の命令が使える。

SHOW TABLES;
postgreSQLのシェルではでは\dという特殊コマンドでテーブル一覧が出る。

 全選択 補足

WHEREでワイルドカード指定を行うには=でなくLIKEを使いワイルドカード部を%で示す。%が0個以上の任意の文字に対応する。

SELECT 列1,列2 FROM 表1 WHERE 列3 LIKE 'AB%';

全列を取得するには*を使う。

SELECT * FROM 表1 WHERE 列1='値';

WHEREを省略すれば全行が得られる

SELECT * FROM 表1;

WHEREを省略したDELETEで全行削除が行われる。

DELETE FROM 表1;
苦労して入力したものをちょっとした間違いで一瞬にして消滅させることができるのがSQLの特徴。DELETEだけはSQLの手打ちは避けた方が良い。

 CREATE TABLE 型 補足 メモ 怪しい その内まとめる

CREATEテーブルで指定可能な型には次のものがある。こんな基本のことがSQLでは 実装毎に違っている。とんでもないことだ。

文字列型nchar(#)UNICODEの固定長の文字列:後の空白問題などバグの元
charもあるがコード系が不定であるため、使わない方が無難。
nvarchar(#)UNICODEの可変長の文字列
oracleではnvarchar2と意味不明の2が付くことに注意が必要
nvcharとなる系もある。
varcharあるがコード系が不定であるため、使わない方が無難。
ntextUNICODEの可変長の文字列(postgreSQLのみ)
textあるがコード系が不定であるため、使わない方が無難。
数値int64bit整数型
decimal(#)固定精度の整数型
number(#,#)固定精度の整数型
float64bitまたは128bitの浮動小数型
money通貨型
日付時刻型datetime日付時刻

プライマリーキーとする場合PRIMARY KEYを付加する。
NULLを許さない場合NOT NULLを付加する。

|

« ◇量子力学と素粒子論の大きな溝 | トップページ | ◇ビートルズ赤盤・青盤・緑盤:音楽の並びの記憶 »

トラックバック


この記事へのトラックバック一覧です: SQLど忘れメモ:

« ◇量子力学と素粒子論の大きな溝 | トップページ | ◇ビートルズ赤盤・青盤・緑盤:音楽の並びの記憶 »