MySQL 入門チュートリアル 4 - テーブルの作成とテーブルへのデータのロード

黄舟
リリース: 2017-02-23 11:29:17
オリジナル
1113 人が閲覧しました



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;
ログイン後にコピー
+---------+-------------+------+-----+---------+-------+
| Field   | Type        | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| name    | varchar(20) | YES  |     | NULL    |       |
| owner   | varchar(20) | YES  |     | NULL    |       |
| species | varchar(20) | YES  |     | NULL    |       |
| sex     | char(1)     | YES  |     | NULL    |       |
| birth   | date        | YES  |     | NULL    |       |
| death   | date        | YES  |     | NULL    |       |
+---------+-------------+------+-----+---------+-------+
ログイン後にコピー

たとえば、忘れた場合には、いつでも DESCRIBE を使用できます。テーブル内の列の名前またはタイプ。


2. テーブルにデータをロードします

テーブルを作成したら、コンテンツを入力する必要があります。このタスクは、LOAD DATA ステートメントと INSERT ステートメントを通じて実行できます。

あなたのペットの記録が次のように記述されているとします。 (

MySQL

で期待される日付形式は YYYY-MM-DD であると仮定します。これは、あなたが慣れている形式とは異なる場合があります。) セックス

誕生ふわふわ猫1993-02-04グウェンハロルドベニーダイアングウェン鳥 f 1998-09-11グウェン1997-12-09スリムベニーヘビm1996-04-29
ハロルドf
m 1994-03-17
バフィー
f1989-05-13
ファン
m 1990-08-27
クッパ
m1979-08-311995-07-29 チャーピー
ウィスラー



因为你是从一个空表开始的,填充它的一个简易方法是创建一个文本文件,每个动物各一行,然后用一个语句将文件的内容装载到表中。

你可以创建一个文本文件“pet.txt”,每行包含一个记录,用定位符(tab)把值分开,并且以CREATE TABLE语句中列出的列次序给出。对于丢失的值(例如未知的性别,或仍然活着的动物的死亡日期),你可以使用NULL值。为了在你的文本文件中表示这些内容,使用\N(反斜线,字母N)。例如,Whistler鸟的记录应为(这里值之间的空白是一个定位符):

nameownerspeciessexbirthdeath
WhistlerGwenbird\N1997-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语句装载你的初始记录。

 以上就是MySQL入门教程4 —— 创建表并将数据装入表的内容,更多相关内容请关注PHP中文网(www.php.cn)! 


関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!