ページ

2010年12月16日木曜日

シェープファイルのDBF作成のためのMySQLガイド

MySQLでdbfファイルを作成するための必要最低限のガイド

GRASSでベクターを作成するとき,データベースファイルは相変わらずDBFファイルを使っています。
MySQLとかのデータベースを使えば良いのでしょうか...
その他に,CSVファイルをGRASSにインポートしてデータベースファイルも作れるらしいのですが...

...あまり今の状況を面倒と思っていなので,結局CSV→MySQL→DBFのちGRASSにインポートしています。

ということで,CSVファイルからDBFファイルを作成する時に,必要な最低限のコマンド操作についての防備録

不足項目はman mysqlとか,man dbf2mysqlとかで参照できます。


ログイン
mysql -u ユーザー名 -pパスワード
#オプション<-u>とユーザー名の間はスペースあり。
#ただし,<-p>とパスワードの間はスペースなし。

データベース一覧の表示
SHOW DATABASES;

使用するデータベースの選択
USE データベース名;

テーブル一覧の表示
SHOW TABLES;

テーブルのカラム構造を表示
DESC テーブル名;

テーブルのレコードの表示(レコードがすべて表示される)
SELECT * FROM テーブル名;

データベースを作る
CREATE DATABASE 新規データベース名;

テーブルを作る
CREATE TABLE テーブル名(カラム名 データ型, カラム名 データ型,...);
#データ型
整数: INT -2147483648から2147483648
少数: DOUBLE
文字列: VARCHAR 255文字まで

テキストファイルに記述したソースコードを読み込む
SOURCE ファイル名;

テーブルのコピー
CREATE TABLE ファイル名 SELECT * FROM ファイル名;
#*はワイルドカードを意味する。
#*をカラム名にすると,テーブルの一部だけをコピー


テーブルの削除
DROP TABLE テーブル名;

データベースの削除
DROP DATABASE データベース名;

CSVファイルのインポート手順
1)ファイルをデータベースのあるディレクトリにコピー
sudo cp CSVファイル /var/lib/mysql/データベース名

2)ファイル所有権の変更。面倒なので,MySQLディレクトリごと変更
sudo chown -R mysql:mysql /var/lib/mysql

3)ファイルの読み込み
LOAD DATA INFILE 'ファイル名' INTO TABLE テーブル名
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
IGNORE 最初にスキップする行数 LINES; 

#区切り文字(FIELDS TERMINATED BY)の指定。','または'\t'。
#改行コード(LINES TERMINATED BY)の指定。Windows(CR+LF)の場合は'\r\n'。Mac(CR)は'\r"。#Unix/Linux(LF)は'\n'。


CSVファイルへのエクスポート
SELECT * INTO OUTFILE 'ファイル名' FIELDS TERMINATED BY ',' FROM テーブル名;
#ファイルは/var/lib/mysql/データベース名にエクスポートされる

DBFファイルのエクスポート
mysql2dbf -h localhost -U ユーサー名 -P パスワード -d データベース名 -t テーブル名 新規dbfファイル名

DBFファイルのインポート
#定義済みテーブルにインポートする場合
dbf2mysql -h localhost -U ユーザー名 -P パスワード -d データベース名 -t テーブル名 dbfファイル名
#新規にテーブルを作成する場合。オプション<-c>を指定。
dbf2mysql -c -h localhost -U ユーザー名 -P パスワード -d データベース名 -t テーブル名 dbfファイル名
#詳細はman dbf2mysqlを参照のこと
#MySQLからデータをエクスポートするときに,テーブルの頭文字が小文字のpの場合,出力できないことがある。


バッチモード
mysql データベース名 -u ユーザー名 -pパスワード -e "コマンド"
mysqladmin -u ユーザー名 -pパスワード コマンド

0 件のコメント: