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 件のコメント:
コメントを投稿