1. テーブルを作成します
データベースの作成は簡単ですが、SHOW TABLES が示すように、この時点では空です:
mysql> SHOW TABLES; Empty set (0.00 sec)
難しいのは、データベース構造をどのようにするかを決定することです。必要な情報と、各データベース テーブルにどのような列があるのかを確認します。
それぞれのペットの記録を記載したテーブルが必要になります。これはペットテーブルと呼ばれる場合があり、少なくとも各動物の名前が含まれている必要があります。名前自体はあまり興味深いものではないため、表には追加情報を含める必要があります。たとえば、家族にペットを飼っている人が複数いる場合、それぞれの動物の所有者をリストするとよいでしょう。種や性別などの基本的な説明情報を記録することもできます。
あなたの年齢は何ですか?それは楽しいかもしれませんが、データベースに保存するのは良いことではありません。年齢は時間の経過とともに変化するため、記録を更新し続ける必要があります。代わりに、誕生日などの固定値を保存しておいて、年齢が必要なときにいつでも現在の日付と生年月日の差として計算できるようにすることをお勧めします。 MySQL には日付算術関数が用意されているため、これは難しくありません。年齢の代わりに生年月日を保存すると、他にも利点があります:
· 今後のペットの誕生日のリマインダーを生成するなどのタスクにデータベースを使用できます。 (このタイプのクエリは少しばかげていると思われる場合は、コンピューターはプライベートな連絡に役立つため、これはビジネス データベースから誕生日に送信される顧客と同じ問題であることに注意してください。) は、年齢を計算する現在の日付です。 。たとえば、死亡日をデータベースに保存すると、ペットが亡くなったときの年齢を簡単に計算できます。
ペットテーブルには他にも役立つ情報が考えられるかもしれませんが、今のところは、名前、飼い主、種類、性別、生年月日、死亡日で十分です。
CREATE TABLE ステートメントを使用して、データベース テーブルのレイアウトを指定します。
mysql> CREATE TABLE pet (name VARCHAR(20), owner VARCHAR(20), -> species VARCHAR(20), sex CHAR(1), birth DATE, death DATE);
VARCHAR は、列の値が可変長であるため、名前、所有者、種の列に適しています。列はすべて同じ長さである必要はなく、20 である必要もありません。 1 ~ 65535 の任意の長さを選択し、最も意味のある値を選択できます。 (不適切に選択し、より長いフィールドが必要であることが判明した場合、MySQL は ALTER TABLE ステートメントを提供します。)
動物の記録で性別を表すために複数のタイプの値を使用できます (たとえば、「m」と「f」) 」、または「男性」と「女性」。単一の文字「m」と「f」を使用するのが最も簡単な方法です。
明らかに、出生列と死亡列では DATE データ クラスを使用する必要があります。
データベーステーブルを作成した後、SHOW TABLES はいくつかの出力を生成するはずです:
mysql> SHOW TABLES; +---------------------+ | Tables in menagerie | +---------------------+ | pet | +---------------------+
テーブルが期待どおりに作成されたことを確認するには、DESCRIBE ステートメントを使用します:
mysql> DESCRIBE pet;
+--------+ - ------------+------+-----+-----------+------+
| フィールドの種類 |ヌル | デフォルト |+----------+----------+------+-----+-- ------+------+
| varchar(20) | はい |はい | 文字 (1) | はい | ----------+-----+-----------+- ------+
DESCRIBE はいつでも使用できます。たとえば、ファイルの名前や種類を忘れた場合などです。テーブル内の列。
2. テーブルにデータをロードします
テーブルを作成したら、コンテンツを入力する必要があります。このタスクは、LOAD DATA ステートメントと INSERT ステートメントを通じて実行できます。
あなたのペットの記録が次のように記述されているとします。 (MySQL で期待される日付形式は YYYY-MM-DD であると仮定します。これは、慣れているものとは異なる場合があります。)
名前 所有者 種 誕生 死亡
ふわふわのハロルド猫 f 1993-02-04
爪のグウェン猫M 1994-03-17
Buffy Harold dog f 1989-05-13
Fang Benny dog m 1990-08-27
Bowser Diane dog m 1979-08-31 1995-07-29
Chirpy Gwen bird f 1998-09-11
Whistler Gwen bird 1997-12-09
Slim Benny snake m 1996-04-29
因为你是从一个空表开始的,填充它的一个简易方法是创建一个文本文件,每个动物各一行,然后用一个语句将文件的内容装载到表中。
你可以创建一个文本文件“pet.txt”,每行包含一个记录,用定位符(tab)把值分开,并且以CREATE TABLE语句中列出的列次序给出。对于丢失的值(例如未知的性别,或仍然活着的动物的死亡日期),你可以使用NULL值。为了在你的文本文件中表示这些内容,使用\N(反斜线,字母N)。例如,Whistler鸟的记录应为(这里值之间的空白是一个定位符):
name owner species sex birth death
Whistler Gwen bird \N 1997-12-09 \N
要想将文本文件“pet.txt”装载到pet表中,使用这个命令:
mysql> LOAD DATA LOCAL INFILE '/path/pet.txt' INTO TABLE pet;
请注意如果用Windows中的编辑器(使用\r\n做为行的结束符)创建文件,应使用:
mysql> LOAD DATA LOCAL INFILE '/path/pet.txt' INTO TABLE pet -> LINES TERMINATED BY '\r\n';
(在运行OS X的Apple机上,应使用行结束符'\r'。)
如果你愿意,你能明确地在LOAD DATA语句中指出列值的分隔符和行尾标记,但是默认标记是定位符和换行符。这对读入文件“pet.txt”的语句已经足够。
如果该语句失败,可能是你安装的MySQL不与使用默认值的本地文件兼容。
如果想要一次增加一个新记录,可以使用INSERT语句。最简单的形式是,提供每一列的值,其顺序与CREATE TABLE语句中列的顺序相同。假定Diane把一只新仓鼠命名为Puffball,你可以使用下面的INSERT语句添加一条新记录:
mysql> INSERT INTO pet -> VALUES ('Puffball','Diane','hamster','f','1999-03-30',NULL);
注意,这里字符串和日期值均为引号扩起来的字符串。另外,可以直接用INSERT语句插入NULL代表不存在的值。不能使用LOAD DATA中所示的的\N。
从这个例子,你应该能看到涉及很多的键入用多个INSERT语句而非单个LOAD DATA语句装载你的初始记录。