Heim  >  Artikel  >  Datenbank  >  MySQL erstellt eine Tabelle und lädt Daten in die Tabelle

MySQL erstellt eine Tabelle und lädt Daten in die Tabelle

伊谢尔伦
伊谢尔伦Original
2016-11-23 13:31:221815Durchsuche

1. Tabellen erstellen

Das Erstellen der Datenbank ist der einfache Teil, aber zu diesem Zeitpunkt ist sie leer, wie SHOW TABLES Ihnen sagen wird:

mysql> SHOW TABLES; Empty set (0.00 sec)

Der schwierige Teil Es geht darum, zu entscheiden, wie Ihre Datenbankstruktur aussehen soll: welche Datenbanktabellen Sie benötigen und welche Spalten sich in jeder Datenbanktabelle befinden.

Sie benötigen eine Tabelle mit einem Datensatz für jedes Ihrer Haustiere. Sie kann als Haustiertabelle bezeichnet werden und sollte mindestens den Namen jedes Tieres enthalten. Da der Name selbst nicht sehr interessant ist, sollte die Tabelle zusätzliche Informationen enthalten. Wenn in Ihrem Haushalt beispielsweise mehr als eine Person Haustiere hat, möchten Sie möglicherweise den Besitzer jedes Tieres auflisten. Möglicherweise möchten Sie auch einige grundlegende beschreibende Informationen wie Art und Geschlecht aufzeichnen.

Wie ist es mit deinem Alter? Das macht vielleicht Spaß, aber die Speicherung in einer Datenbank ist keine gute Sache. Das Alter ändert sich im Laufe der Zeit, daher sollten Sie Ihre Unterlagen ständig aktualisieren. Stattdessen ist es besser, einen festen Wert wie den Geburtstag zu speichern, damit Sie das Alter bei Bedarf als Differenz zwischen dem aktuellen Datum und dem Geburtsdatum berechnen können. MySQL bietet Datumsarithmetikfunktionen, daher ist dies nicht schwierig. Das Speichern des Geburtsdatums anstelle des Alters hat weitere Vorteile:

Sie können eine Datenbank für Aufgaben wie das Erstellen von Erinnerungen an bevorstehende Haustiergeburtstage verwenden. (Wenn Sie denken, dass diese Art von Abfrage etwas albern ist, beachten Sie, dass es sich dabei um das gleiche Problem handelt wie bei der Identifizierung von Kunden aus einer Unternehmensdatenbank, an die bald Geburtstagswünsche gesendet werden, da Computer den persönlichen Kontakt erleichtern.)

·               Berechnet Alter basierend auf einem Datum, nicht nur dem aktuellen Datum. Wenn Sie beispielsweise das Sterbedatum in einer Datenbank speichern, können Sie ganz einfach berechnen, wie alt ein Haustier war, als es starb.

Vielleicht fallen Ihnen noch andere nützliche Arten von Informationen in der Haustiertabelle ein, aber diese reichen für den Moment: Name, Besitzer, Art, Geschlecht, Geburts- und Sterbedatum.

Verwenden Sie eine CREATE TABLE-Anweisung, um das Layout Ihrer Datenbanktabelle anzugeben:

mysql> CREATE TABLE pet (name VARCHAR(20), owner VARCHAR(20),     -> species VARCHAR(20), sex CHAR(1), birth DATE, death DATE);

VARCHAR eignet sich für Namens-, Besitzer- und Artenspalten, da die Spaltenwerte eine variable Länge haben. Die Spalten müssen nicht alle gleich lang sein und sie müssen nicht 20 sein. Sie können eine beliebige Länge zwischen 1 und 65535 und einen Wert auswählen, der am sinnvollsten ist. (Wenn Sie eine falsche Auswahl treffen und sich herausstellt, dass Sie ein längeres Feld benötigen, bietet MySQL eine ALTER TABLE-Anweisung.)

Zur Darstellung des Geschlechts in einem Tierdatensatz können mehrere Arten von Werten verwendet werden, zum Beispiel „ m“ und „f“ oder „männlich“ und „weiblich“. Am einfachsten ist es, die Einzelzeichen „m“ und „f“ zu verwenden.

Natürlich sollten die Geburts- und Sterbespalten die Datenklasse DATE verwenden.

Nach dem Erstellen der Datenbanktabelle sollte SHOW TABLES eine Ausgabe erzeugen:

mysql> SHOW TABLES; 
+---------------------+
| Tables in menagerie |
+---------------------+
| pet        |
+---------------------+

Um zu überprüfen, ob Ihre Tabelle wie erwartet erstellt wurde, verwenden Sie eine DESCRIBE-Anweisung:

mysql> DESCRIBE pet;

--------- ------------- ------ ----- --------- --- - ---
|. Typ |. ----- -------
|. varchar(20) | |. NULL |. varchar(20) |. ------------ ------ - ---- --------- -------
Sie können DESCRIBE jederzeit verwenden, zum Beispiel, wenn Sie den Namen oder Typ einer Spalte in einer Tabelle vergessen.

2. Daten in die Tabelle laden

Nachdem Sie die Tabelle erstellt haben, müssen Sie den Inhalt ausfüllen. Diese Aufgabe kann mit den Anweisungen LOAD DATA und INSERT ausgeführt werden.

Angenommen, Ihre Haustierakte wird wie folgt beschrieben. (Gehen Sie davon aus, dass das erwartete Datumsformat in MySQL JJJJ-MM-TT ist; dies kann sich von dem unterscheiden, was Sie gewohnt sind.)

Name Besitzer Art Geschlecht Geburt Tod

Fluffy Harold Katze f 1993-02 -04

Claws Gwen Katze m 17.03.1994

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


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn