Heim  >  Artikel  >  Datenbank  >  Detaillierte Erläuterung der MySQL-Datentabellenoperationen

Detaillierte Erläuterung der MySQL-Datentabellenoperationen

迷茫
迷茫Original
2017-03-26 14:03:581322Durchsuche

Datentabelle erstellen

Datenbank öffnen

Datenbanknamen VERWENDEN

mysql> USE D1;
Database changed

Verwenden Sie VERWENDEN Sie D1; Datenbank D1, wir können die aktuell geöffnete Datenbank über SELECT DATABASE(); anzeigen:

mysql> SELECT DATABASE();
+------------+
| DATABASE() |
+------------+
| d1         |
+------------+1 row in set (0.00 sec)

Datentabelle erstellen

TABELLE ERSTELLEN [ IF NOT EXISTS] table_name (
column_name datatype,
...
)

Diese Struktur ist sehr einfach, für [IF NOT EXISTS] war sie es im ersten Artikel „MySQL-Grundoperationen“ erläutert und wird hier nicht wiederholt.

Erstellen wir eine Datentabelle Tabelle1:

mysql> CREATE TABLE table1(
    -> username VARCHAR(20),
    -> age TINYINT UNSIGNED,
    -> salary FLOAT(8,2) UNSIGNED
    -> );
Query OK, 0 rows affected (0.74 sec)

Beachten Sie, dass UNSIGNED hier einen vorzeichenlosen Wert darstellt, der eine positive Zahl ist. Sie können die „MySQL-Basis“ überprüfen Datentypen“ ” Ansicht, TINYINT UNSIGNED stellt einen Wert zwischen 0 und 255 dar.

Dies zeigt an, dass die Erstellung erfolgreich war:

SHOW TABLES [FROM db_name][LIKE 'pattern' |]

mysql> SHOW TABLES FROM D1;
+--------------+
| Tables_in_d1 |
+--------------+
| table1       |
+--------------+1 row in set (0.00 sec)

Hier können wir sehen, dass Tabelle1 erstellt wurde.

Datentabellenstruktur anzeigen

Spalten aus Tabellenname anzeigen

mysql> SHOW COLUMNS FROM table1;
+----------+---------------------+------+-----+---------+-------+
| Field    | Type                | Null | Key | Default | Extra |
+----------+---------------------+------+-----+---------+-------+
| username | varchar(20)         | YES  |     | NULL    |       |
| age      | tinyint(3) unsigned | YES  |     | NULL    |       |
| salary   | float(8,2) unsigned | YES  |     | NULL    |       |
+----------+---------------------+------+-----+---------+-------+3 rows in set (0.10 sec)

Datensätze einfügen

Nach dem Erstellen der Tabelle schreiben Geben Sie die Daten ein und fügen Sie den Datensatz mit der folgenden Anweisung ein:

INSERT [INTO] tbl_name [(col_name,...)] VALUE(val,...)

Hier ist [(col_name,...)] optional. Wenn es nicht hinzugefügt wird, müssen die Werte in VALUE einzeln den Feldern der Datentabelle entsprechen, andernfalls kann dies nicht der Fall sein Werfen wir einen Blick darauf:

mysql> INSERT table1 VALUE("LI",20,6500.50);
Query OK, 1 row affected (0.14 sec)

Die VALUE-Klammern hier entsprechen eins zu eins den Feldern von Tabelle1, nämlich Benutzername = „LI“, Alter = 20, Gehalt = 6500,50

Als nächstes fügen wir ein weiteres Datenelement ein, aber es gibt keine Übereinstimmung:

mysql> INSERT table1 Value("Wang",25);
ERROR 1136 (21S01): Column count doesn't match value count at row 1

kann nicht eingefügt werden, da kein Gehaltswert angegeben ist.

Durch das Hinzufügen von [(col_name,...)] können Sie Daten flexibel einfügen:

mysql> INSERT table1(username,age) VALUE("Wang",25);
Query OK, 1 row affected (0.11 sec)

Tabelle1 entspricht VALUE eins zu eins.

Tabellendaten nachschlagen

Zuvor wurden zwei Datenelemente eingefügt. Sie können Tabellendaten mit der folgenden Anweisung nachschlagen:

SELECT expr,.. . FROM tbl_name

Für die Datenbanksuchanweisung SELECT gibt es eine Menge Inhalt. Wir verwenden eine einfache Anweisung, um den Inhalt der Tabelle zu finden >

mysql> SELECT * FROM table1
    -> ;
+----------+------+---------+
| username | age  | salary  |
+----------+------+---------+
| LI       |   20 | 6500.50 |
| Wang     |   25 |    NULL |
+----------+------+---------+2 rows in set (0.00 sec)
Beachten Sie, dass die MySQL-Anweisung mit „;“ beginnt. Wenn Sie vergessen zu schreiben, kann die Anweisung nicht ausgeführt werden. Fügen Sie einfach ein Semikolon nach dem Pfeil hinzu. Hier können wir sehen, dass es zwei sind Datenstücke, die gerade in die Tabelle geschrieben wurden.

Grundlegende Einschränkungen bei der Tabellenerstellung

NULL und NOT NULL in Feldern

Beim Erstellen einer Tabelle können wir festlegen, ob das Feld null sein kann und ob es nicht null sein kann , dann darf es beim Einfügen von Daten nicht leer sein.

Erstellen wir eine Datentabelle

Tabelle2:

mysql> CREATE TABLE table2(
    -> username VARCHAR(20) NOT NULL,
    -> age TINYINT UNSIGNED NULL,
    -> salary FLOAT(8,2)
    -> );
Hier ist der Benutzername nicht leer, das Alter ist NULL und das Gehalt wird nicht geschrieben :

mysql> SHOW COLUMNS FROM table2;
+----------+---------------------+------+-----+---------+-------+
| Field    | Type                | Null | Key | Default | Extra |
+----------+---------------------+------+-----+---------+-------+
| username | varchar(20)         | NO   |     | NULL    |       |
| age      | tinyint(3) unsigned | YES  |     | NULL    |       |
| salary   | float(8,2)          | YES  |     | NULL    |       |
+----------+---------------------+------+-----+---------+-------+3 rows in set (0.01 sec)
Von hier aus können wir sehen, dass der NULL-Wert von Benutzername NEIN ist und die anderen beiden Felder JA sind. Bei Feldern, die leer sein können, bedeutet das Schreiben von NULL oder nicht, dass sie leer sein können.

Auto-Nummer

AUTO_INCREMENT

Auto_Inkrement, automatisch, Inkrement bedeutet Erhöhung. In Kombination bedeutet es automatische Erhöhung, das heißt, es kann automatisch erfolgen Erhöhen Sie sich entsprechend der höchsten fortlaufenden Nummer.

  • kann nur für Primärschlüssel verwendet werden (der Primärschlüssel stellt die eindeutige Darstellung der Daten in der Tabelle dar, und die Daten in der Tabelle können durch den Primärschlüssel unterschieden werden)

  • Standard In diesem Fall ist es 1 und das Inkrement ist 1

Machen wir Folgendes:

mysql> CREATE TABLE table3(
    -> id SMALLINT UNSIGNED AUTO_INCREMENT,
    -> username VARCHAR(20)
    -> );
ERROR 1075 (42000): Incorrect table definition; there can be only one auto column and it must be defined as a key
Es wird ein Fehler gemeldet, da die ID nicht als Primärschlüssel festgelegt ist.

Primärschlüssel festlegen

PRIMÄRSCHLÜSSEL

  • Primärschlüsseleinschränkung

  • Jede Tabelle kann nur einen Primärschlüssel haben

  • Der Primärschlüssel stellt die Eindeutigkeit des Datensatzes sicher

  • Der Primärschlüssel ist automatisch NICHT NULL

Dann fügen wir den Primärschlüssel hinzu und wiederholen den Vorgang:

mysql> CREATE TABLE table3(
    -> id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    -> username VARCHAR(20)
    -> );
Query OK, 0 rows affected (0.42 sec)
Achten Sie auf die Reihenfolge, der PRIMÄRSCHLÜSSEL sollte zuletzt platziert werden.

Auf diese Weise haben wir es erfolgreich erstellt. Fügen wir die Daten einzeln ein und sehen uns die Ergebnisse an:

mysql> INSERT table3(username) VALUES("Zhang");
Query OK, 1 row affected (0.09 sec)

mysql> INSERT table3(username) VALUES("Weng");
Query OK, 1 row affected (0.07 sec)

mysql> INSERT table3(username) VALUES("Chen");
Query OK, 1 row affected (0.09 sec)

mysql> SELECT * FROM table3;
+----+----------+
| id | username |
+----+----------+
|  1 | Zhang    |
|  2 | Weng     |
|  3 | Chen     |
+----+----------+3 rows in set (0.00 sec)
Wir können sehen, dass die IDs automatisch nummeriert werden, von klein bis groß.

Eindeutige Einschränkung

EINZIGARTIGER SCHLÜSSEL

  • Einzigartige Einschränkung

  • Einzigartige Einschränkung Stellen Sie sicher, dass Datensätze nicht wiederholbar (eindeutig) sind

  • Eindeutige Einschränkungen können null (NULL) sein

  • Es kann mehrere eindeutige Einschränkungen geben

mysql> CREATE TABLE table4(
    -> id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    -> username VARCHAR(20) UNIQUE KEY,
    -> age TINYINT UNSIGNED
    -> );
Query OK, 0 rows affected (0.43 sec)

mysql> INSERT table4(username) VALUE("Li");
Query OK, 1 row affected (0.11 sec)

mysql> INSERT table4(username) VALUE("Li");
ERROR 1062 (23000): Duplicate entry 'Li' for key 'username'

mysql> INSERT table4(username) VALUE("Chen");
Query OK, 1 row affected (0.10 sec)
Wir legen den Benutzernamen als eindeutige Einschränkung fest, sodass Li nicht wiederholt erstellt werden kann. Ändern Sie ihn einfach in „Chen“. Beachten Sie, dass dies nur ein Experiment ist. Im tatsächlichen Betrieb sind dieselben Namen üblich und die Datentabelle sollte entsprechend der tatsächlichen Situation erstellt werden.

Standardwert DEFAULT

Legen Sie den Standardwert über

DEFAULT fest. Wenn beim Einfügen von Daten kein entsprechender Wert angegeben wird, wird der Standardwert verwendet besteht darin, den Standardwert der Zahl auf 3 festzulegen. Beim Einfügen von Daten ist der Standardwert 3, da die Zahl nicht angegeben ist.

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der MySQL-Datentabellenoperationen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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