色々なDBのバージョン確認方法とか論理名のつけ方とか

あらすじ

二つ以上のDBで同じことをやろうとすると混乱するのでメモ。

とりあえずとっかかりだけ。ここを見て思い出していく。

※ 全部SQLべた書きで何とかする方針

  • バージョン確認
    • いろんな方法があるけど、GUI(xxAdminみたいな)からSQLを実行して確認する方法
  • バックアップ
    • 厳密じゃなくていい。SELECTで取得したデータを新しいテーブルに流し込むだけ
  • カラム増やす
  • 論理名つける
  • テーブル削除

Oracle(12.1.0.2.0)

バージョン確認

select * from v$version;
BANNER CON_ID
Oracle Database 12c Standard Edition Release 12.1.0.2.0 - 64bit Production 0
PL/SQL Release 12.1.0.2.0 - Production 0
CORE 12.1.0.2.0 Production 0
TNS for 64-bit Windows: Version 12.1.0.2.0 - Production 0
NLSRTL Version 12.1.0.2.0 - Production 0

バックアップ

CREATE TABLE 
  バックアップ先のスキーマ名.テーブル名
AS SELECT * FROM 
  バックアップ元のスキーマ名.テーブル名;

カラム増やす

ALTER TABLE 
  スキーマ名.テーブル名
ADD ( 
   testcol1 VARCHAR2(11)
  ,testcol2 TIMESTAMP(3)
);

論理名つける

COMMENT ON COLUMN 
  スキーマ名.テーブル名.testcol1
IS 
  'コメント';

テーブル削除

DROP TABLE 
  スキーマ名.テーブル名;

SQL Server(14.0.1000.169)

個人的にSQL Serverは癖があるように感じる…。

バージョン確認

SELECT SERVERPROPERTY('productversion') as VERSION;
VERSION
14.0.1000.169

バックアップ

SELECT * INTO 
  バックアップ先のスキーマ名.テーブル名
FROM 
  バックアップ元のスキーマ名.テーブル名;

カラム増やす

ALTER TABLE 
  スキーマ名.テーブル名
ADD 
   testcol1 NVARCHAR(11)
  ,testcol2 DATETIME2;

論理名つける

これが思い出せない。

EXEC sys.sp_addextendedproperty
  @name=N'MS_Description'
 ,@value=N'コメント'
 ,@level0type=N'SCHEMA'
 ,@level0name=N'スキーマ名'
 ,@level1type=N'TABLE'
 ,@level1name=N'テーブル名'
 ,@level2type=N'COLUMN'
 ,@level2name=N'testcol1'

テーブル削除

DROP TABLE 
  スキーマ名.テーブル名;

DB2(v11.1.3030.239)

バージョン確認

SELECT SERVICE_LEVEL FROM SYSIBMADM.ENV_INST_INFO;
SERVICE_LEVEL
DB2 v11.1.3030.239

バックアップ

CREATE TABLE
  バックアップ先のスキーマ名.テーブル名
AS (
  SELECT * FROM
    バックアップ元のスキーマ名.テーブル名
) WITH DATA; 

カラム増やす

ALTER TABLE
  スキーマ名.テーブル名
ADD 
  testcol1 VARCHAR (1);

論理名つける

COMMENT ON COLUMN
  スキーマ名.テーブル名.カラム名
IS
  'コメント'; 

テーブル削除

DROP TABLE
  スキーマ名.テーブル名;

PostgreSQL(11.2)

バージョン確認

SELECT VERSION();
version
PostgreSQL 11.2, compiled by Visual C++ build 1914, 64-bit

バックアップ

CREATE TABLE 
  バックアップ先のスキーマ名.テーブル名
AS SELECT * FROM 
  バックアップ元のスキーマ名.テーブル名;

カラム増やす

ALTER TABLE 
  スキーマ名.テーブル名
ADD 
  testcol1 VARCHAR(3),
ADD 
  testcol2 VARCHAR(5);

論理名つける

COMMENT ON COLUMN 
  スキーマ名.テーブル名.testcol1
IS
  'コメント';

テーブル削除

DROP TABLE 
  スキーマ名.テーブル名;