Heim >Datenbank >MySQL-Tutorial >Detaillierte Erläuterung der MySQL-Datentabellenoperationen
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)
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.
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)
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.
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 TabellenerstellungNULL und NOT NULL in FeldernBeim 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_INCREMENTAuto_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.
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 keyEs wird ein Fehler gemeldet, da die ID nicht als Primärschlüssel festgelegt ist. Primärschlüssel festlegen
PRIMÄRSCHLÜSSEL
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
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!