分類 | PostgreSQL | DB2 | Oracle | |
---|---|---|---|---|
Query(*) | データ照会 | - | - | SELECT文 |
DML | データ操作 | SELECT文, INSERT文, UPDATE文, DELETE文 | SELECT文, INSERT文, UPDATE文, DELETE文 | INSERT文, UPDATE文, DELETE文 |
DDL | データ定義 | CREATE TABLE / ALTER TABLE / DROP TABLE 文, CREATE VIEW / DROP VIEW 文, CREATE INDEX / DROP INDEX 文, TRUNCATE 文, GRANT文、REVOKE文 |
CREATE TABLE / ALTER TABLE / DROP TABLE 文, CREATE VIEW / DROP VIEW 文, CREATE INDEX / DROP INDEX 文, |
CREATE TABLE / ALTER TABLE / DROP TABLE 文, CREATE VIEW / DROP VIEW 文, CREATE INDEX / DROP INDEX 文, TRUNCATE 文 |
DCL | データ制御 | START TRANSACTION文、 COMMIT文、ROLLBACK文 | GRANT文、REVOKE文 | GRANT文、REVOKE文 |
トランザクション制御 | - | START TRANSACTION文、COMMIT文、ROLLBACK文、SAVEPOINT文 | START TRANSACTION文、COMMIT文、ROLLBACK文、SAVEPOINT文 |
分類 | SQL 列型 | Java データ型 | リテラル例 |
---|---|---|---|
数値 | TINYINT | byte | 0, 12, -345 |
SMALLINT, INT2(*) | short | ||
INTEGER, INT, INT4(*) | int | ||
BIGINT, INT8(*) | long | ||
REAL, FLOAT, FLOAT4(*) | float | 0.0, 12.34, -345.0 | |
DOUBLE, FLOAT8(*) | double | ||
NUMERIC, DECIMAL | java.math.BigDecimal | ||
論理値 | BIT | boolean | true, false, 0, 1 |
文字列 | CHAR | String | 'Hello' |
VARCHAR, TEXT(*) | String | ||
日付 / 時刻 | DATE | java.sql.Date | '2006-07-01' |
TIME | java.sql.Time | '14:06:32.123456' | |
TIMESTAMP | java.sql.Timestamp | '2006-07-01 14:06:32.123456' | |
ラージオブジェクト | BLOB | java.sql.Blob | - |
CLOB | java.sql.Clob | - |
□PostgreSQLの場合
SELECT 10 + 20;□DB2の場合
SELECT 10 + 20 FROM SYSIBM1.SYSDUMMY□ORACLEの場合
SELECT 10 + 20 FROM DUAL;
a | b | a AND b | a OR b | NOT a | |
---|---|---|---|---|---|
false | false | false | false | true | |
false | true | false | true | true | |
true | false | false | true | false | |
true | true | true | true | false | |
取得するデータ | 特殊レジスター | 取得される型 |
---|---|---|
日付 | CURRENT_DATE | DATE型 |
時刻 | CURRENT_TIME | TIME WITH TIME ZONE型 |
LOCALTIME | TIME型 | |
日時 | CURRENT_TIMESTAMP, NOW() | TIMESTAMP WITH TIME ZONE型 |
LOCALTIMESTAMP | TIMESTAMP型 |
□ 日付の演算
加算 | SELECT CURRENT_DATE + INTERVAL '100 DAYS'; |
減算 | SELECT CURRENT_DATE - INTERVAL '100 DAYS'; |
日付の差 | SELECT CURRENT_DATE - '2000-01-01'; |
□ EXTRACT 関数
=> SELECT EXTRACT(YEAR FROM '2004-10-13 16:10:25'::TIMESTAMP); date_part ----------- 2004 (1 行)
=> SELECT EXTRACT(MONTH FROM '2004-10-13 16:10:25'::TIMESTAMP); date_part ----------- 10 (1 行)
=> SELECT EXTRACT(DAY FROM '2004-10-13 16:10:25'::TIMESTAMP); date_part ----------- 13 (1 行)
=> SELECT EXTRACT(DOW FROM '2004-10-13 16:10:25'::TIMESTAMP); date_part ----------- 3 (1 行) (注) DOWは曜日。日曜日 = 0
=> SELECT EXTRACT(YEAR FROM '3 YEAR 4 MON 5 DAY'::INTERVAL); date_part ----------- 3 (1 行)