ふじまるシステム

WEB制作のフリーランスで頑張っていこうとしている者のブログです。趣味や役立つ知識などあれば発信していきます。ポートフォリオは自己紹介ページからご覧ください。

プログラム

テラデータ SQL 備忘録

投稿日:2019年9月11日 更新日:

こんにちは、ふじまるです!
データベースにもいろいろありますが、仕事でテラデータのデータベースを触る機会があったのでSQLの備忘録を書いておきますね。

件数確認

 --件数確認
select count(*)
from テーブル名

これは基本すぎましたね。笑
SQLサーバーでもオラクルでも同じです。

テーブルのコピー

--テーブルをコピー(コピーする新しいテーブル as コピー元のテーブル)
--with dataでテーブルの中身を全てコピー
CT テーブル名_20190911 as テーブル名 with data;
--with no dataで空のテーブルをコピー
CT テーブル名_20190911 as テーブル名 with no data;

これはよく使います。テーブルの定義情報や中身のデータまでコピーしてくれるのでバックアップするときによく使います。

テーブル名の変更

--テーブル名を変更(現在の名前 as 変更する名前)
rename table テーブル名 as テーブル名B

こちらもよく使いますね。上記のコピーテーブルでバックアップを取り、それに対して編集した後、本番テーブルと入れ替えるのでこのコマンドでテーブル名を変更します。

Select結果をインサート

--Select結果をインサート
insert into テーブル名
select * from テーブル名2

これも基本でしたね。笑
SQLサーバーでも同じです。where句を使って条件で絞ったデータをインサートすることも可能です。

テーブル定義の取得

--テーブル定義の取得
show table テーブル名

これは便利です。テーブルの定義が一発で確認できますし、Create文の形式で表示されるのでそのままCreateに使用することができます。

Request Text
CREATE SET TABLE テーブル名 ,NO FALLBACK ,
     NO BEFORE JOURNAL,
     NO AFTER JOURNAL,
     CHECKSUM = DEFAULT,
     DEFAULT MERGEBLOCKRATIO
     (
      カラム1 DECIMAL(4,0),
      カラム2 CHAR(10) CHARACTER SET UNICODE NOT CASESPECIFIC NOT NULL,
      カラム3 CHAR(20) CHARACTER SET UNICODE NOT CASESPECIFIC NOT NULL,
      カラム4 CHAR(40) CHARACTER SET UNICODE NOT CASESPECIFIC NOT NULL,
      カラム5 DECIMAL(2,0) NOT NULL)
UNIQUE PRIMARY INDEX ( カラム1 );

こんな感じで結果が表示されるので、先頭のRequest Textを除いた下のCreate文を実行するとテーブルを作成することができます。

似たようなテーブルを複製するときは便利なのでよく使います

Viewの作成方法

REPLACE VIEW ビュー名 AS
LOCKING TABLE テーブル名 FOR ACCESS
SELECT * FROM テーブル名;

これでViewを作成することができます。selectにwhere句で条件を絞ったViewにもできますし、他テーブルとjoinして他の情報を持ってくることもできます。

Viewの定義確認

show view ビュー名

--↓結果

REPLACE VIEW ビュー名 AS
LOCKING TABLE テーブル名 FOR ACCESS
SELECT * FROM テーブル名;

これでViewの定義を確認することができます。whereやjoinなどしていても一発で分かりますね。もちろんshow tableの時と同じようにViewの作成文と同じなのでそのまま実行すればViewを作成することができます。

ユーザーにselect権限を追加する

--ユーザーにデータベース1のselect権限を付与する。
GRANT SELECT ON データベース1 TO ユーザー名 WITH GRANT OPTION;

ユーザーにinsert、delete権限を追加する

--ユーザーに対して「テーブル名」に「insert」、「delete」権限を与える。
grant insert , delete on テーブル名 to ユーザー名 with grant option;

以上、テラデータのSQL備忘録でした!

-プログラム
-,

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

【エクセル】抽選作業はこれで一発!ランダム抽選システム

こんにちは、ふじまるです! ランダムで抽選したいけどくじ引きとかするの面倒!とか、数百人もいるのに抽選が大変!ということありませんか? 今日はそんな時にエクセルがあれば一発で抽選できる仕組みを紹介しま …

no image

Google chrome、Microsoft edgeがエラーで起動できない。STATUS_INVALID_IMAGE_HASH

こんにちは、ふじまるです! 会社のPCでいきなりGoogle chromeとMicrosoft edgeのブラウザが両方エラーで起動できなくなりました。。。 エラーメッセージは「STATUS_INVA …

no image

【SQL】UNION ALLの活用方法

販売データの実績を取るときのSQLで異なる期間のデータを比較したい時がありますよね。例えば本年の実績と前年の実績を取って前年比を出したいなど。 2回クエリを実行して画面上で計算させるのもいいですが、一 …

vbscript 経過時間(分)を求める方法

こんにちは、ふじまるです。 久々に自分の作ったプログラムを見直すことがあって、その中で経過分数を求めるプログラムがあったので書いておきます。 例えば11時から12時15分は何分あるかです。答えは75分 …

SQL Select結果からUpdateする方法

こんちには、ふじまるです! この前久々に仕事でSQLでテーブル更新しようとしたらちょっと困ったのでメモしておきます。 Selectした結果を使って別テーブルをアップデートするときは以下のようなSQLを …