データベース備忘録

DB の操作はしょっちゅう忘れるので、ここにメモをしておきます。あくまでメモです。

MySQL

コンソールでの接続の仕方

ユーザー A でデータベース B に接続する場合。

$ mysql B -u A -p

-p は、パスワードによる制限がかかってない場合は不要です。

ユーザーの作り方

データベース A に全ての権限がある、ローカルホストからアクセスできるユーザー B を、パスワード C で作ります。データベース A はまだ作られていなくても、このユーザー B は作ることができます。

> GRANT ALL ON A.* TO B@localhost IDENTIFIED BY 'C';

データベースの作り方

データベース A を作ります。データベースを作る権限のあるユーザーでなければなりません。

> create database A

PostgreSQL

コンソールでの接続の仕方

ユーザー A でデータベース B に接続する場合。

$ psql B -U A -W

MySQL と似ているが、細かいオプションは違います。psql は、ディストリビューションなどによっては、バージョンが指定された psql83 などという名前になっている可能性があります。

Postgres の管理は、ユーザー postgres になって行うのが普通です。

$ su - postgres

ユーザーの作り方

シェルから行ないます。権限を持ったユーザー (postgres 等) になって操作する必要があります。ユーザー A をパスワード付きで作りたい場合、次の様にします。

$ createuser A -P

このとき、管理者権限を与えるかなどが対話的に聞かれます。

もしユーザー postgres から接続できるのにここで作ったユーザーから接続できない場合、postgres の設定がおかしい可能性が高いので注意します。具体的には、パスワード認証を受け付けない様な設定になっているかもことが多いです。pg_hba.conf (具体的には /etc/postgresql/8.3/main/pg_hba.conf など) を参照して、パスワードを受け付ける設定かどうかを確認します。

local all all ident sameuser   # 1
local all all md5              # 2

#1 の様に設定されている場合、パスワード認証がなされていません。#2 のように書き換えます。

データベースの作り方

データベース B を作るには、シェルから次の様に入力します。

$ createdb B

ORACLE

コンソールでの接続の仕方

ユーザー A 、パスワード B で SID C に接続する場合、次のようにします。

$ sqlplus A/B@C

表定義の取得 (列と索引)

select * from user_tab_columns where table_name = 'テーブル名'
select * from user_indexes where table_name = 'テーブル名'

user_tab_columns では、欲しいのは COLUMN_NAME, DATA_TYPE ぐらいだろうから、それだけ select しても良いでしょう。

2008-01-01