シリアル・create db/user・一覧等
順序値の生成
以下で $DB は Perl の DBD::xxx での操作です.
DB | key | note | |
---|---|---|---|
mysql | キーワード | AUTO_INCREMENT | |
準備 | CREATE TABLE user_info ( userid INT NOT NULL PRIMARY KEY AUTO_INCREMENT, ... ) | ||
生成 | レコードを直接追加. AUTO_INCREMENT カラムを指定しないもしくはnullを 挿入すると自動的に連番が設定される. | ||
値の取得 | SELECT last_insert_id(); $DB->{last_insertid} | ||
備考 | - | ||
Oracle | キーワード | SEQUENCE | |
準備 | CREATE SEQUENCE user_info_userid_seq; | ||
生成 | SELECT user_info_userid_seq.nextval FROM dual; | ||
値の取得 | SELECT user_info_userid_seq.currval FROM dual; | ||
備考 | 先に nextval のみ行って, 取得した値を INSERT するか, nextval を INSERT して必要であれば currval を取り出すかで使う. | ||
PostgreSQL | キーワード | SEQUENCE, (SERIAL型) | |
準備 | CREATE SEQUENCE user_info_userid_seq; | ||
生成 | SELECT nextval('user_info_userid_seq'); | ||
値の取得 | SELECT currval('user_info_userid_seq'); | ||
備考 | 使い方はOracleと同じ. | ||
SQLite2 | キーワード | INTEGER NOT NULL PRIMARY KEY | |
準備 | CREATE TABLE user_info ( userid INTEGER NOT NULL PRIMARY KEY | ... | |
生成 | INSERT INTO userid VALUES (null) | ||
値の取得 | SELECT last_insert_rowid(); $DB->func('last_insert_rowid') | ||
備考 | 基本的にmysqlと同様. 但し INT ではだめ. INTEGER のみ. |
準備(DB作成~ユーザ作成)
DB | key | note |
---|---|---|
mysql | キーワード | CREATE DATABASE,GRANT |
DB作成 | CREATE DATABASE mydata | |
権限付与 | GRANT ALL ON mydata.* TO user@localhost IDENTIFIED BY 'pass'; | |
備考 | CREATE USER はない. いきなり GRANT だけでOK. | |
Oracle | キーワード | CREATE USER |
ユーザ作成 | CREATE USER xxx IDENTIFIED BY yyy; | |
権限付与 | GRANT CONNECT,RESOURCE,CREATE SESSION TO xxx; | |
備考 | パスワード部分にクオートいらない. | |
PostgreSQL | キーワード | createuser(1), createdb(1) |
DB作成 | $ createdb mydata | |
作成 | $ createuser xxx; | |
備考 | - | |
SQLite2 | キーワード | sqlite |
作成 | $ sqlite filename.sqlitedb でプロンプト出して DDL 実行すればファイルも作成される. |
その他
目的 | DB | note |
---|---|---|
スキーマ(名前空間)変更 | mysql | use mydata |
Oracle | ALTER SESSION SET CURRENT_SCHEMA = mydata | |
ツール(CUI) | mysql | mysql |
Oracle | sqlplus | |
PostgreSQL | psql | |
SQLite2 | sqlite | |
InterBase | isql | |
名前空間一覧 | mysql | show databases |
Oracle | ? | |
PostgreSQL | $ psql -l; psql> \l | |
SQLite2 | .databases | |
テーブル一覧 | mysql | show tables |
Oracle | SELECT TNAME FROM TAB; SELECT TABLE_NAME FROM USER_TABLES; | |
PostgreSQL | \dt | |
SQLite2 | .tables | |
ユーザ一覧 | Oracle | SELECT USERNAME FROM ALL_USERS |