MySQLでDB操作

MySQLでデータベースを作成します。

> CREATE DATABASE [DB名];

作成したDBに切り替えた後テーブルを作成します。

CREATE TABLE user_master (
user_id varchar(10) BINARY,
user_name varchar(30) BINARY,
user_age numeric(3),
update datetime,
PRIMARY KEY(user_id)
);

テーブルの削除

> DROP TABLE user_master

データベースのバックアップ
# mysqldump –opt -u [ユーザ名] -p [データベース名] > [バックアップファイル名]

データベースのリストア
# mysql -u [ユーザ名] -p [データベース名] < [バックアップファイル名]

MySQLのコマンド

MySQLの使い始めに確認するコマンドの一覧です。以下のコマンド以降は通常のSQL文で操作します。

MySQLにログイン

# /usr/local/mysql/bin/mysql [DB名] -u [ユーザー名]

データベースの一覧を表示

> SHOW DATABASES;

データベースの切り替え

> USE [DB名]

テーブルの一覧

> SHOW TABLES;

フィールドの一覧

> SHOW FIELDS FROM [テーブル名];

ログアウト

> QUIT

MySQLをC言語から使う

PerlやPHPからではDBIや内蔵ライブラリ任せで良いのですが、C言語では直接MySQLのライブラリを使用します。

まずは、必要なヘッダやライブラリがどこにあるかを調べる。
# find / -name mysql.h
/usr/local/src/mysql-5.0.18/include/mysql.h
/usr/local/mysql/include/mysql/mysql.h

# find / -name libmysqlclient.so
/usr/local/src/mysql-5.0.18/libmysql/.libs/libmysqlclient.so
/usr/local/mysql/lib/mysql/libmysqlclient.so

# find / -name libmysqlclient.a
/usr/local/src/mysql-5.0.18/libmysql/.libs/libmysqlclient.a
/usr/local/mysql/lib/mysql/libmysqlclient.a

コンパイル・リンク時に-Iや-Lで指定が必要になります。
# gcc -c -I /usr/local/mysql/include/mysql/ myclient.c
# gcc -o myclient -L /usr/local/mysql/lib/mysql/ -l mysqlclient

一気にやるならこっち
# gcc -o myclient
-I /usr/local/mysql/include/mysql/
-L /usr/local/mysql/lib/mysql/
-l mysqlclient
myclient.c

実際のプログラムに関してはメルマガで紹介しますが、Linuxの場合出来上がったプログラムを使用する際に/usr/local/mysql/lib/mysql/をldconfigで登録しないとだめだったので動的リンクだったかも。
FreeBSDにも同じコマンドがあるのでメルマガ発行前にもう一度検証してみます。