Heim >Datenbank >MySQL-Tutorial >Detaillierte Einführung in die Syntax der MySQL-Tabellendefinition
Zuallererst wissen wir alle, dass eine Datentabelle erst erstellt werden kann, nachdem die Datenbank erfolgreich erstellt wurde. Die Datentabelle ist eine Sammlung von Feldern und die Daten in der Tabelle sind es im Format von Zeilen und Spalten gespeichert.
Tabelle erstellen
MySQL verwendet CREATE TABLE, um eine Tabelle zu erstellen. Es gibt mehrere Optionen, die hauptsächlich aus einer Tabellenerstellungsdefinition (Erstellungsdefinition), einer Tabellenoptionsdefinition (Tabellenoptionen) und Partitionsoptionen (Partitionsoptionen) bestehen.
Tabellenerstellungsdefinition
besteht aus dem Namen der Tabellenspalte, einer möglichen Nullwertangabe für den Spaltendefinitionssatz, einer Integritätsbeschränkung oder einem Tabellenindexeintrag, und die Tabellenindexelemente definieren hauptsächlich die Indizes, Primärschlüssel, Fremdschlüssel usw. der Tabelle.
(empfohlenes Online-Lernvideo-Tutorial: MySQL-Video-Tutorial)
Grammatikstruktur
CREATE[TEMPORARY]TABLE tbl_name ( 字段名|数据类型[列级完整性约束条件][默认值] [,字段名2 数据类型[列级完整性约束条件][默认值]] [,....] [,表级完整性约束条件] )[ENGINE=引擎类型]
Beispiel:
Neu Eine Kundeninformation
mysql> USE mysql_test Database changed mysql> CRATE TABLE customers ->( -> cust_id INT NOT NULL AUTO_INCREMENT, -> cust_name CHAR(50) NOT NULL, -> cust_sex CHAR(1) NOT NULL DEFAULT 0, -> cust_address CHAR(50) NULL -> cust_contact CHAR(50) NULL -> PRIMARY KEY(CUST_ID) ->) Query OK, 0 rows affected(0.11 sec)
Temporäre Tabelle und persistente Tabelle
TEMPORÄR: Stellt eine temporäre Tabelle dar. Wenn sie nicht ausgewählt wird, handelt es sich um eine persistente Tabelle.
Die persistente Tabelle ist immer vorhanden. Wenn Sie Daten nur vorübergehend speichern müssen, können Sie das Schlüsselwort TEMPORARY hinzufügen Wenn der Benutzer die Datenbankverbindung trennt, wird die Tabelle automatisch gelöscht.
Datentyp
Datentyp bezieht sich auf den im System zulässigen Datentyp. Jede Spalte sollte über einen geeigneten Datentyp verfügen, der die Daten für diese Spalte einschränkt oder zulässt. Beim Erstellen einer Tabelle müssen Sie für jede Spalte den richtigen Datentyp und die richtige Datenlänge (CHAR(50)) angeben
MySQL-Hauptdatentyp:
Numerischer Typ: Ganzzahl int, Gleitkomma doppelt, Boolescher Bool
Datums- und Zeittypen: Datumstyp, Zeitstempel Zeitstempel, Zeittyp Zeit
String-Typ: Zeichentyp mit fester Länge char, Zeichentyp mit variabler Länge varchrar
Räumlicher Datentyp: einzelner Geometrietyp GEOMETRY usw.
Schlüsselwort AUTO_INCREMENT
AUTO_INCREMENT: Die Spalte in der Tabelle, deren Datentyp eine Ganzzahl ist ist auf das Attribut „Auto-Inkrementierung“ (++i) eingestellt. Beginnend mit dem aktuellen Zeiger oder 1 kann es in der Tabelle nur ein AUTO_INCREMENT geben.
Wenn eine Tabellenspalte als AUTO_INCREMENT angegeben ist, kann ihr Wert überschrieben werden. Sie können einen Wert (der eindeutig sein muss) für die Spalte in der Tabellendaten-Einfügeanweisung angeben, und der Wert ersetzt den automatisch generierten vom System. Wert, nachfolgende Inkremente basieren auf dem eingefügten Wert
gibt den Standardwert an
DEFAULT: wird verwendet, um den Standardwert von MySQL anzugeben, wenn kein Wert vorhanden ist gegeben (STANDARD 0)
Wenn kein Standardwert angegeben ist, wird ihr automatisch ein Wert zugewiesen. Wenn die Spalte den Wert NULL annehmen kann, ist der Standardwert NULL. Wenn NOT NULL definiert ist, hängt der Standardwert davon ab der Typ der Spalte:
Eine AUTO_INCREMENT-Spalte ohne eine deklarierte AUTO_INCREMENT-Spalte ist standardmäßig 0
Eine AUTO_INCREMENT-Spalte ist standardmäßig der nächste Wert in der Sequenz
Für Datum und Uhrzeit Bei anderen Typen als TIMESTAMP ist der Standardwert der korrekt eingegebene „Null“-Wert
Für die erste TIMESTAMP-Spalte in der Tabelle ist der Standardwert das aktuelle Datum und die aktuelle Uhrzeit
NULL-Wert
NULL: Für Spalten, die NULL zulassen, muss der Wert der Spalte beim Einfügen von Zeilen nicht angegeben werden; für Spalten, die keine NULL-Werte zulassen, muss die Spalte angegeben werden Daten
NULL und '' sind nicht gleichwertig NOT NULL-Spalten. Medium zulässig'' NULL ist nicht zulässig
Primärschlüssel
PRIMÄRSCHLÜSSEL: Geben Sie den Primärschlüssel an. Der Primärschlüssel muss eindeutig sein und darf nicht NULL sein. Wenn es sich um eine einzelne Spalte handelt, muss der kombinierte Wert eindeutig sein
Tabelle aktualisieren
Ändern Sie die Datenbank mit ALTER TABLE
ADD[COLUMN]: Neue Tabellenspalten, Sie können weitere durch Kommas getrennte Spalten hinzufügen
Beispiel:
mysql> ALTER TABLE mysqle_test.customers -> ADD COLUMN cust_city char(10) NOT NULL DEFAULT'ShenZhen' AFTER cust_sex; Query OK,0 rows affected(0.61 sec) Records:0 Duplicates:0 Warning:0
NACHHER: Fügen Sie die neue Spalte zur Spalte „cut_sexl“ hinzu.
ZUERST: Fügen Sie die neue Spalte zur ersten Spalte der Tabelle hinzu.
Wenn Sie die oben genannten Schlüsselwörter verwenden, fügen Sie die neue Spalte am Ende der Tabelle hinzu
Ähnlich können Sie ADDPRIMARY KEY, ADDFOREIGN KEY, ADD INDEX verwenden, um den entsprechenden Primärschlüssel, Fremdschlüssel und Index hinzuzufügen.
CHANGE[COLUMN]: Ändern Sie den Namen oder Datentyp der Spalte In der Tabelle können mehrere Spalten geändert und durch Kommas getrennt werden. Wenn der Datentyp geändert wird, gehen möglicherweise die ursprünglichen Daten der Spalte verloren Wenn der ursprüngliche Datentyp überschritten wird, wird der SQL-Befehl nicht ausgeführt und es wird ein Fehler ausgegeben.
Aus Gründen der weiteren Kompatibilität können die Daten in dieser Spalte gekürzt werden. Wenn der Datentyp einer Spalte beispielsweise varchart(10) ist und in char(1) geändert wird, werden die Daten „ShenZhen“ in der Spalte geändert Spalte wird zu 'S 'ALTER [COLUMN]: 修改或删除指定列的默认值
mysql> ALTER TABLE mysqle_test.customers -> ALTER COLUMN cust_city SET DEFAULT 'ShangHai' Query OK,0 rows affected(0.36 sec) Records:0 Duplicates:0 Warning:0
MODIFY [COLUMN]: 修改指定列的数据类型,通过 'FIRST' 或 'AFTER' 修改列的位置
mysql> ALTER TABLE mysqle_test.customers -> MODIFY COLUMN cust_name char(30) FIRST Query OK,0 rows affected(0.20 sec) Records:0 Duplicates:0 Warning:0
DROP [COLUMN]: 删除列,该列所有数据一并删除
mysql> ALTER TABLE mysqle_test.customers -> DROP COLUMN cust_city Query OK,0 rows affected(0.42 sec) Records:0 Duplicates:0 Warning:0
同样 可使用 DROP PRIMARY KEY 、DROP FOREIGN KEY、DROP INDEX 删除对应的主键、外键、索引
RENAME[TO]:表重命名
mysql> ALTER TABLE mysqle_test.customers -> RENAME TOQuery OK,0 rows affected(0.42 sec)
重命名表
除了 ALTER TABLE 中的 RENAME TO 修改表名,还可通过 RENAME TABLE 来修改单张和多张表(以逗号分隔)
mysql> RENAME TABLE mysql_test.back.customers TO mysqle_test.customers
删除表
DROP[TEMPORARY]TABLE[IF EXISTS]删除一个已存在的表,可以删除多张表,前提操作人必须有权限,但是操作人在该张表上的权限不会被删除
查看表
SHOW [FULL] TABLES [{FROM|IN}db_name] [LIKE'pattern'|WHERE expr]: 显示指定数据库中所有表名
Example:
mysql> USE mysql_testDatabase changedmysql> SHOW TABLES: Tables_in_mysql_test customers 1 row in set <0.01 sec>
SHOW [FULL] COLUMNS {FROM|IN}tb_name[{FROM|IN}db_name] 或 {DESCRIBE|DESC} tbl_name[col_name|wild]: 显示指定数据库表结构。
MySQL 支持使用 DESCRIBE 代替 SHOW COLUMNS FROM 来查看表结构
Example:
mysql> DESC mysql_test.custormes Field Type Null key Default Extra cust_id int<11> NO PRI NULL auto_increment cust_name char<50> NO Null cust_sex int<1> NO 0 3 row in set <1.56 sec>
相关文章教程推荐:mysql教程
Das obige ist der detaillierte Inhalt vonDetaillierte Einführung in die Syntax der MySQL-Tabellendefinition. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!