MySQLへcsvデータのインポート/ユーザ変数

基本は↓

LOAD DATA INFILE ‘/tmp/data.csv’ INTO TABLE table01

デフォルトでは

\t (タブ)がフィールドの区切り
\n が改行

csvファイルを読み込むときは

FIELDS TERMINATED BY ‘,’

でカンマをフィールドの区切りに指定する。

行の区切りはテキストエディタによって違うので
LINES TERMINATED BY ‘\r\n’
とか
LINES TERMINATED BY ‘\r’
とか指定する。

LINES STARTING BY ‘xxx’(プリフィックス)

とかすると
xxx”abc”,1
something xxx”def”,2
“ghi”,3

abc 1
def 2

となる。

ユーザー変数の使い方

インプット ファイル内のフィールドの順番が、テーブル内のカラムの順番と異なる場合は、カラム リストも指定しなければいけません。
カラム リストはカラム名かユーザ変数のどちらかを含みます。ユーザ変数を利用すると、カラムに結果を割り当てる前に SET 条項で値を変換する事ができます。

SET 条項の中のユーザ変数は、いくつかの方法で利用する事ができます。次の例は、t1.column1 の値に対して直接最初のインプット カラムを利用し、そして2番目のインプット カラムを t1.column2 の値に利用される前に、分割操作に影響されるユーザ変数に割り当てます。

LOAD DATA INFILE ‘file.txt’
INTO TABLE t1
(column1, @var1)
SET column2 = @var1/100;

SET 条項は、インプット ファイルから派生した物ではない値を提供する事ができます。次のステートメントは、現在の日付と時間に column3 を設定する事ができます。

LOAD DATA INFILE ‘file.txt’
INTO TABLE t1
(column1, column2)
SET column3 = CURRENT_TIMESTAMP;

インプット値をユーザ変数に割り当て、変数をテーブル カラムに割り当てない事で、インプット値を廃棄する事ができます。

LOAD DATA INFILE ‘file.txt’
INTO TABLE t1
(column1, @dummy, column2, @dummy, column3);

MySQL からの csv 形式のデータ へ テーブル の エクスポート

governador/RN

SELECT * FROM table_name INTO OUTFILE ‘dump.csv‘ fields terminated by ‘,’;

デフォルトでは
\t (タブ)がフィールドの区切り
\n が改行

なので
fields terminated by ‘,’

をつける。

あと
FIELDS OPTIONALLY ENCLOSED BY ‘”‘
とすると

1,”a string”,100.20
2,”a string containing a , comma”,102.20
3,”a string containing a \” quote”,102.20
4,”a string containing a \”, quote and comma”,102.20

のように文字列だけが囲まれる。

折り返しをやめる
「その他」→「ファイルタイプ別の設定」→「体裁」→”ワープロ的”に

MySQL

tatui SP

CREATE TABLE new_table AS SELECT * FROM old_table;

SELECT COUNT(*) FROM テーブル名

..:::insert文:::..

┌—————————————-┐
│id │int     │ auto_increment │ 
│CAL01 │varchar(10) │         │
│CAL02 │varchar(20) │        │
└—————————————-┘

insert into TABLE values(NULL’data01′,’data2′);

..:::alter文:::..

alter table TABLE add CAL03 varchar(9) after CAL01;

..::inport::…

load data local infile “dump.csv” into table TABLE fields terminated by ‘,’;

.::mysql.sockの場所::.
/var/lib/mysql/

MySQL + PHP 文字化けの解決

manaus / amazonas masomi79

とにかくUNICODEに

my.confの設定など

:::PHPバージョン:::::

4.3.9

:::MySQLバージョン:::::

mysqladmin version
mysqladmin Ver 8.41 Distrib 4.1.22, for redhatlinuxgnu on i386

Server version 4.1.22
Protocol version 10
Connection Localhost via UNIX socket
UNIX socket /var/lib/mysql/mysql.sock
:::現在の文字セット:::::

mysql>SHOW VARIABLES LIKE ‘char%’; 

Variable_name Value
character_set_client utf8
character_set_connection utf8
character_set_database utf8
character_set_results utf8
character_set_server utf8
character_set_system utf8
character_sets_dir /usr/share/mysql/charsets/

上記の状態でmysqlから抽出したデータの日本語部分が?????に化ける。

下記の一文を挿入して解決

$con = mysql_connect($DBSERVER, $DBUSER, $DBPASSWORD)or die(“Could not connect\n”);
$select_db = mysql_select_db($DBNAME)or die (“Could not select\n”);
$sql = “select * from table”;
$alt = mysql_query(“set names utf8”,$con);
$rst = mysql_query($sql,$con);

http://phpspot.net/php/pgMySQL4.1%8CnUTF-8%82%CC%8F%EA%8D%87.html

http://www.res-system.com/weblog/item/467

http://www.artful.jp/blog/archives/2006/07/xamppmysqlphpmy.html

http://tod.cocolog-nifty.com/diary/2005/12/xamppphpmysql_6279.html

http://blog.cheki.net/archives/349

MANAUSの河岸で暮らす人

SQL文

feira de pratanas / Quito masomi79

:::::最後から 3 件のレコードを抽出:::::

select * from table order by key1 desc limit 0, 3

:::先頭から3件のレコードの場合は:::::

select * from table order by key1 limit 0, 3

:::csvファイルをインポート:::::

mysql> set names utf8
mysql> load data infile “/tmp/dump.csv” into table inporttable fields terminated by ‘,’;

:::フィールドの属性を変更:::::

alter table table01 modify field01 varchar(20)

:::テーブルのデータを更新:::::

update table01 set field01=’01’, field02=’02’ where field03=’03’;

Quitoの市場

sambaのインストール MySQL と PHPの連動

sambaのインストール
MySQLとPHPの連動

ls -al 属性の表示
chmod 777 file 属性の変更
/etc/rc.d/init.d/smb restart サービスの再起動

[MySQL] CREATE 文

auto_increment 入力しなくても自動的に増えていく
not null 0はなし
primary key 主キーに設定

[PHP] php.ini 文字化けの解決

mbstring.internal_encoding = UTF8
mbstring.http_output = UTF8
default_charset = “UTF8”

sambaの設定

設定ファイルの場所
/etc/samba/smb.conf

interior de SP