MySQL:データベースとテーブル(日本語)の作成

MySQLのデータベーステーブルを作っていきたいと思います。
まず基本的なコマンドをまとめておきます。コマンドの意味は英語を見れば、あるいは実行すればわかるので省略します。

$create table(or database) テーブル名(or データベース名); 
$drop table(or database) テーブル名(or データベース名);
$use データベース名
$show databases(or tables);
$show fields from テーブル名;
$show variables like 'char%';

データベースを作るには、コマンドラインから実行していっても差し支え無いのですが、
面倒なのでテキストエディタで以下のようなファイルを作りました。

create database db1;
use db1;
create table employee(
  number	int primary key,
  name 		varchar(20),
  age 		int,
  dep_id	int );

create table department(
  dep_id 	int primary key,
  dep_name 	varchar(20),
  dep_manager 	varchar(20) );
  
insert into employee values(1, '大野 智', 25, 1);
insert into employee value(2, '櫻井 翔', 30, 1);
insert into employee value(3, '相葉 雅紀', 35, 2);
insert into employee value(4, '二宮 和也', 40, 2);
insert into employee value(5, '松本 潤', 18, 3);

insert into department value(1, '経理部', '大野 智');
insert into department value(2, '開発部', '相葉 雅紀');
insert into department value(3, '営業部', '松本 潤');

そして、MySQLにログインし実行します。

\. C:\(パス)\(ファイル名)

そうするとO.Kという出力がでるはずです。文字化けのようになっている場合はmy.iniファイルの編集がうまく行っていない可能性があります。

実際に表を見るには

select * from employee;

のようにSELECT文を実行すれば見れます。<追記 2010.06.15>
ユーザー権限についてのコマンドを追記したいと思います。hogeというユーザーに全権限を与え、パスワードを'password'とするコマンドです。

$ grant all on *.* to hoge@localhost identified by 'password';

ここでallは全権限、*.*というのは全てのデータベースとテーブルという意味です。ちなみにsportsデータベースのbaseballというデータベースだけに権限を与える場合には、sports.baseballになります。

また、登録されているユーザーを確認するにはmysqlデータベースに書いてある情報をSELECT文で取り出して確認します。

$ use mysql;
$ select host, user from user;

テーブルをロードするには任意のテキストファイルsample.txt(CSV, etc)をC:\ProgramData\MySQL\MySQL Server 5.1\dataに置き、ロードすることができます。

$ LOAD DATA INFILE "./sample.txt" into table テーブル名

<追記 2010.6.30>
Windows環境でバッチファイルを使ってデータベースを作る方法です。以下の三つのファイルを同じフォルダ内に置き、.batファイルをダブルクリックし、rootのパスワードを入力すればデータベースを作成することができます(createUser.sqlファイルは任意のユーザーを追加するもので、必要に応じて作ってください)。

createDB.sql

create database db2;
use db2;
create table employee(
  number	int primary key,
  name 		varchar(20),
  age 		int,
  dep_id	int );

create table department(
  dep_id 	int primary key,
  dep_name 	varchar(20),
  dep_manager 	varchar(20) );
  
insert into employee values(1, '大野 智', 25, 1);
insert into employee value(2, '櫻井 翔', 30, 1);
insert into employee value(3, '相葉 雅紀', 35, 2);
insert into employee value(4, '二宮 和也', 40, 2);
insert into employee value(5, '松本 潤', 18, 3);

insert into department value(1, '経理部', '大野 智');
insert into department value(2, '開発部', '相葉 雅紀');
insert into department value(3, '営業部', '松本 潤');

createUser.sql

GRANT ALL ON *.* TO zen@localhost IDENTIFIED BY 'zenzen';
quit

MakeDataBase.bat

@echo off
mysql -u root -p  < createUser.sql
mysql -u root -p  < createDB.sql
pause