PostgreSQLとMySQL

 ◎注記◎ データベース名:mydb  $:コンソール上  :Enter  tako:ユーザ名  tbl:テーブル名
 PostgreSQL  操作項目  MySQL
 /var/lib/pgsql RPM:DBdir  /var/lib/mysql
 5432接続ポートNo  3306
 /var/lib/pgsql/data/pg_hba.conf 設定ファイル  /etc/my.cnf
  起動/操作
 $ psql mydb 起動  $ mysql -u tako -h hostname -p
 => \q; 終了  mysql> \q;
 $ psql -c "vacuum;" mydb バキューム  
 $ vacuumdb --analyze mydbバキューム  
 $ pg_ctl -w start postmasterの起動 -----------------
 $ pg_ctl stop postmasterの停止 -----------------
----------------- MySQLの停止 # mysqladmin -u tako -p shutdown
 => create user tako with oassword 'tako'; crypt authentication -----------------
 $ pg_dump mydb > ファイル名 backup  mysql> mysqldump mydb tbl > dumpfile名
  backup  mysql> mysqldump --database mydb > dumpfile名  
 $ pg_dumpall -o > ファイル名 全backup  mysql> mysqldump --all-database > dumpfile名  
 $ psql mydb < ダンプファイル リストア  
 $ psql -e template1 < ダンプファイル 全リストア  
  tableから書出し  mysql> SELECT * INTO OUTFILE '/tmp/tako.out' FROM tbl;
  同CSV  mysql> SELECT * INTO OUTFILE '/tmp/tako.out' FILEDS TERMINATED BY ',' ENCLOSED BY '"' FROM tbl;
 psql mydb < /home/tako/ファイル名 リダイレクション  $ mysql -u root -p mydb < sql.txt 
 => \i /home/tako/ファイル名 リダイレクション  mysql> LOAD DATA INFILE '/home/tako/xxx/txt' IGNORE INFO TABLE tbl
  「:」区切り読み込み  mysql> LOAD DATA INFILE '/home/tako/xxx/txt' INFO TABLE tbl FILEDS TERMINATED BY ':';
  「'"'」CSV同  mysql> LOAD DATA INFILE '/home/tako/xxx/txt' INFO TABLE tbl FILEDS TERMINATED BY ',' ENCLOSED BY '"';
  user
----------------- rootpasswoord  # mysqladmin -u root password '********'
$ createuser tako
=> alter user tako with encrypted password 'xxxxxx';
user登録  mysql> grant all on mydb.* to tako@localhost identified by "password";
  passwordの変更  mysql> SET PASSWORD FOR tako@localhost = PASSWORD('password');
----------------- リフレシュ  mysql> FLUSH PRIVILEGES;
 $ dropuser tako user削除  
 => select usename from pg_user user一覧  mysql> SELECT host,user,password FROM mysql.user;
  現在登録されている host,user,password を知ることができる。
  DB作成
 $ createdb mydb   DB作成  mysql> create database mydb;  
 $ dropdb mydb DB削除  mysql> drop database mydb;  
 $ psql mydb DB選択  mysql> use mydb;
 $ psql -l DB一覧  mysql> show databases;
 => \l; DB一覧  mysql> show databases;
  table
 => create table tbl; table作成  mysql> create table tbl;
 => drop table tbl; table削除  mysql> drop table tbl;  
----------------- table最適化  mysql> optimize table tbl ;
 => \dt; table一覧  mysql> show tables;
  table内容  mysql> DESCRIBE tbl;    テーブル構造の一覧
 mysql> SHOW FIELDS FROM tbl;    テーブル構造の一覧   『基礎PHP』p208
  カラム(フィールド)
 Sample カラムの追加  mysql> alter table <テーブル名> add <カラム名> <カラム定義> [FIRST|AFTER <カラム名>]
 mysql> alter table book_table add bbuy varchar(20) NOT NULL;    MYSQL『徹底攻略ガイド』p175
 => \d tbl; カラム一覧  mysql> desc tb1;
  カラム追加  mysql> alter table tb1 add column(カラム名 char(20));
  データ登録  mysql> insert into tb1(カラム名) values('データ');
  table内容一覧  mysql> SELECT * FROM tbl    カラムデータの一覧表示
 => Sample カラムの削除  mysql> alter table <テーブル名> drop <カラム名>
 Sample カラムの追加(最前列)  mysql> alter table <テーブル名> add <カラム名> first
 => Sample カラムの追加(最後尾)  mysql> alter table <テーブル名> add <カラム名>
 Sample カラムにプライマリーキーの追加  mysql> alter table <テーブル名> add primary key (<カラム名>)
  データの取り込み
    テキストファイル SOURCE スクリプトファイル名   『基礎PHP』p213
mysql> LOAD DATA INFILE '/home/tako/../../../data.txt' INTO TABLE tablename;   『MySQL徹底活用』p63
mysql -u ユーザ名 -p < ファイル名   『PHP入門』p202
  CVSファイル   
 psql mydb < /home/tako/ファイル名 リダイレクション  $ mysql -u root -p mydb < sql.txt 
 => \i /home/tako/ファイル名 リダイレクション  mysql> LOAD DATA INFILE '/home/tako/xxx/txt' IGNORE INFO TABLE tbl
  「:」区切り読み込み  mysql> LOAD DATA INFILE '/home/tako/xxx/txt' INFO TABLE tbl FILEDS TERMINATED BY ':';   『MySQL徹底活用』p65
  「'"'」CSV同  mysql> LOAD DATA INFILE '/home/tako/xxx/txt' INFO TABLE tbl FILEDS TERMINATED BY ',' ENCLOSED BY '"';   『MySQL徹底活用』p65
  データの書きだし
    テキストファイル  
  CVSファイル   
  権限設定
 => grant insert on tbl,tb2 to nobody;権限設定 書式  
 => grant select on tbl,tb2 to nobody;権限設定 閲覧許可  
 => grant all on tbl to tako;権限設定 all許可  
 => revoke all on tbl from tako;権限変更 解除  mysql> REVOKE SELECT ON mydb.* FROM tako;  
 => create group group1; グループ作成  
 => alter group group1 add user tako; takoをグループ1  
 => grant select on tbl to group group1;グループ1へ権限  
 => \z; 権限閲覧  mysql> GRANTS FOM tako@localhost;
  SQL文
  レコード追加  
  レコード削除  
  レコード変更  
 => SELECT * FROM tbl; レコード表示  
  レコード並変  
 => copy tb1 from /mnt/mo/file.data; レコード取得  
 => copy tb1 to /mnt/mo/file.data; レコード書出  
 => copy tb1 '/mnt/mo/file.data' using delimiters '.'; レコードのcopy  
  レコード条件取得  
  フィールドの変更 mysql> alter table tb1 modify field text not null;  
  複数条件の組合  
  インデックス作成  
  データタイプ(data型)
 int 整数  
 float 浮動小数点  
 real 実数  
 char 文字列  
 varchar 可変文字列  
 date data型 日付  
 time 時間  
  PHP関数
  接続ID取得  mysql_connect("host", "usr","password")
 pg_connect() db接続  mysql_select_db(db名, 接続ID)
 pg_exec()SQL文実行  mysql_query(クエリ, 接続ID)
  連想配列の取得  mysql_fetch_array(結果ID)
 pg_freeresult() メモリの開放  mysql_free_result(結果ID)
 pg_close() db切断  
  参照/参考URL
PostgreSQL ODBC Driver 日本語版
PostgreSQLとMySQL(サイト内の備忘録です)
MySQL(サイト内の備忘録です)
  Sample
 => Sample Sample  mysql> Sample
 Sample Sample  Sample

top     home:top     server library:top     PHP PostgreSQL MySQL サンプルスクリプト