sql

sqlplusで別のサーバへ接続するコマンド

しょっちゅう忘れるので。 自サーバ(ローカルホスト)の場合はシンプルです。 > sqlplus dbuser/dbpassword@sid 別サーバの場合、ホスト名かIPアドレスを追加で指定する必要がありますが、どこに書いて何で区切ればいいか、いつも忘れます。 > sqlplus dbuser…

Oracle SQL Developerで入力補完時に挿入される単語の形式を変更する

自分用メモ。 メニュー「ツール」→「プリファレンス」→「コード・エディタ」 構文補完インサイト 「入力時に大/小文字を変更(C)」にチェック 以下の項目から選択 先頭大文字 大文字 上位のキーワード 小文字 下位のキーワード、上位の識別子 前は予約語を大…

Oracle SQL Developerでエディタに行番号を表示する

エディタにSQLを書いて発行すると、構文エラーとかに遭遇することが多々あります。 最近のエラーはどこが悪いのか、わりと正確に知らせてくれます。 なのに、エディタの行番号がデフォルトだと表示されていません。 さらに、設定箇所が少し分かりづらくて苦…

各DBのテーブル名の長さ制限

sql

たまに必要になるので書いておきます。 Oracle データベース・オブジェクト名および修飾子 名前は、1から30バイトの長さで指定する必要があります。 PostgreSQL 語彙の構成 デフォルトではNAMEDATALENは64なので、識別子は最長で63バイトです。 MySQL MySQL …

Oracle SQL Developerで日付型の表示フォーマットを変更する

64bitマシンでOracleのデータベースを参照するためのツールとして「SQL Developer」を使用しています。 32bitマシンの場合は「SI Object Browser」を使用していました。ただ、64bitと相性が悪いようです。 使い慣れればSQL Developerは非常に便利なのですが…

テーブルの一覧を取得するSQL

たまに必要になるので書いておきます。 Oracle SELECT table_name FROM user_tables; PostgreSQL SELECT relname FROM pg_stat_user_tables; MySQL SHOW tables; DB2 SELECT tabname FROM syscat.tables; SQL Server SELECT name FROM sys.objects WHERE typ…

オンラインでPostgreSQLのクエリを試せるサービス「PostgreSQL Exercises」

PostgreSQL Exercises PostgreSQLはデータベースの中では比較的導入しやすい部類だと思いますが、それでもインストールするのは面倒です。 ちょっとした構文の確認だけならインストールするまでもなく、オンラインのサービスで試すことができます。 PostgreS…

Web上でSQL整形が行えるサービス「SQLフォーマッターFor WEB」

SQLフォーマッターFor WEB 多機能なDB開発ツールの中にはSQLの整形を支援してくれる機能を持つものも多々あります。 たいへん活用させてもらっておりますが、バージョンが古いと使えなかったり、起動が重くて面倒だったりします。 以前は、以下のツールを使…

CASE文とCASE式

sql

SQLの話です。 普段、SQLを使うときはJavaなどのプログラムから間接的に使うので、条件分岐などはプログラム側に任せています。 ですので、SQLのCASEを使うことはそんなにありません。 ただ、最近はSQLだけで完結する作業が多いので、何度か使う機会がありま…

外部結合で副問い合わせ

sql

前回の続きです。[SQLのWHERE句での結合とINNER JOINでの結合の違い] ■table_header(親テーブル) (PK) mng_key cmn_a … ■table_detail(子テーブル) (PK) mng_key (PK) sub_key cmn_b … ■table_cmn (PK) surrogate_key cmn_a cmn_b cmn_c … こんな感じの3つの…

SQLのWHERE句での結合とINNER JOINでの結合の違い

sql

SQLの話です。 以下のようなテーブルがあったとします。 ■table_header(親テーブル) (PK) mng_key … ■table_detail(子テーブル) (PK) mng_key (PK) sub_key … ヘッダ情報を持つテーブルと明細情報を持つテーブルです。この2つは1:Nの関係を持っています。 ta…