MySQL CREATE TABLE

In diesem MySQL-Tutorial wird erklärt, wie Sie die MySQL-Anweisung CREATE TABLE mit Syntax und Beispielen verwenden.

Beschreibung

Mit der MySQL-Anweisung CREATE TABLE können Sie eine Tabelle erstellen und definieren.

Syntax

In der einfachsten Form lautet die Syntax für die Anweisung CREATE TABLE in MySQL:

CREATE TABLE Tabellenname
(
Spalte1 Datentyp [ NULL | NOT NULL ],
Spalte2 Datentyp [ NULL | NOT NULL ],

Die vollständige Syntax für die MySQL-Anweisung CREATE TABLE lautet jedoch:

CREATE [ TEMPORARY ] TABLE [IF NOT EXISTS] Tabellenname
(
Spalte1 Datentyp [ NULL | NOT NULL ]
[ DEFAULT default_Wert ]
[ AUTO_INCREMENT ]
[ UNIQUE KEY | PRIMARY KEY ]
[ COMMENT ‚Zeichenfolge‘ ],

Spalte2 Datentyp [ NULL | NOT NULL ]
[ DEFAULT default_Wert ]
[ AUTO_INCREMENT ]
[ UNIQUE KEY | PRIMARY KEY ]
[ COMMENT ‚Zeichenfolge‘ ],

| [CONSTRAINT [constraint_name]] PRIMARY KEY [ USING BTREE | HASH ] (index_col_name, …)

| [INDEX | KEY] index_name [ USING BTREE | HASH ] (index_col_name, …)

| [CONSTRAINT [constraint_name]] UNIQUE [ INDEX | KEY ]
[ index_name ] [ USING BTREE | HASH ] (index_col_name, …)

| {FULLTEXT | SPATIAL} [ INDEX | KEY] index_name (index_col_name, …)

| [CONSTRAINT [constraint_name]]
FOREIGN KEY index_name (index_col_name, …)
REFERENCES another_Tabellenname (index_col_name, …)
[ MATCH FULL | MATCH PARTIAL | MATCH SIMPLE ]
[ ON DELETE { RESTRICT | CASCADE | SET NULL | NO ACTION } ]
[ ON UPDATUM { RESTRICT | CASCADE | SET NULL | NO ACTION } ]

| CHECK (Ausdruck)

{ENGINE | TYPE} = engine_name
| AUTO_INCREMENT = Wert
| AVG_ROW_LENGTH = Wert
| [DEFAULT] CHARACTER SET = charset_name
| CHECKSUM = {0 | 1}
| [DEFAULT] COLLATE = collation_name
| COMMENT = ‚Zeichenfolge‘
| DATA DIRECTORY = ‚absoluter Pfad‘
| DELAY_KEY_WRITE = { 0 | 1 }
| INDEX DIRECTORY = ‚absoluter Pfad‘
| INSERT_METHOD = { NO | FIRST | LAST }
| MAX_ROWS = Wert
| MIN_ROWS = Wert
| PACK_KEYS = {0 | 1 | DEFAULT}
| PASSWORD = ‚Zeichenfolge‘
| RAID_TYPE = { 1 | STRIPED | RAIDO }
RAID_CHUNKS = Wert
RAID_CHUNKSIZE = Wert
| ROW_FORMAT = {DEFAULT | DYNAMIC | FIXED | COMPRESSED}
| UNION = (Tabelle1, … )

Parameter oder Argumente

TEMPORARY
Optional. Es gibt an, dass die Tabelle eine temporäre Tabelle ist.
IF NOT EXISTS
Optional. Wenn angegeben, löst die Anweisung CREATE TABLE keinen Fehler aus, wenn die Tabellen bereits vorhanden sind.
Tabellenname
Der Name der Tabelle, die Sie erstellen möchten.
Spalte1, Spalte2
Die Spalten, die Sie in der Tabelle erstellen möchten.
Datentyp
Der Datentyp für die Spalte und kann einer der folgenden sein::

Wert
CHAR [(Länge)] [CHARACTER SET Zeichensatzname] [COLLATE Kollatierungsname]
VARCHAR [(Länge)] [CHARACTER SET Zeichensatzname] [COLLATE Kollatierungsname]
BINARY [(Länge)]
VARBINARY(Länge)
DATE
TIME
TIMESTAMP
DATETIME
YEAR
TINYINT [(Länge)] [UNSIGNED] [ZEROFILL]
SMALLINT [(Länge)] [UNSIGNED] [ZEROFILL]
MEDIUMINT [(Länge)] [UNSIGNED] [ZEROFILL]
INT [(Länge)] [UNSIGNED] [ZEROFILL]
INTEGER [(Länge)] [UNSIGNED] [ZEROFILL]
BIGINT [(Länge)] [UNSIGNED] [ZEROFILL]
REAL [(Länge, Dezimalstellen)] [UNSIGNED] [ZEROFILL]
DOUBLE [(Länge, Dezimalstellen)] [UNSIGNED] [ZEROFILL]
FLOAT [(Länge, Dezimalstellen)] [UNSIGNED] [ZEROFILL]
DECIMAL [(Länge, [Dezimalstellen])] [UNSIGNED] [ZEROFILL]
NUMERIC [(Länge, [Dezimalzahlen])] [UNSIGNED] [NULL]
TINYBLOB
BLOB
MEDIUMBLOB
LONGBLOB
TINYTEXT [BINARY] [CHARACTER SET Zeichensatzname] [COLLATE Kollatierungsname]
TEXT [BINARY] [CHARACTER SET Zeichensatzname] [COLLATE Kollatierungsname]
MEDIUMTEXT [BINARY] [CHARACTER SET Zeichensatzname] [COLLATE Kollatierungsname]
LONGTEXT [BINARY] [CHARACTER SET Zeichensatzname] [COLLATE Kollatierungsname]
ENUM (Wert1, Wert2, …) [CHARACTER SET charset_name] [COLLATE Kollatierungsname]
NULL oder NOT NULL
Jede Spalte sollte als NULL oder NOT NULL definiert werden. Wenn dieser Parameter weggelassen wird, nimmt die Datenbank NULL als Standard an.
DEFAULT default_Wert
Optional. Dies ist der Wert, der Spalte zugewiesen werden soll, wenn er leer oder NULL ist.
AUTO_INCREMENT
Optional. Hiermit wird die Spalte als Feld für die automatische Nummerierung festgelegt.
constraint_name
Optional. Der Name der Einschränkung, wenn Sie einen Primärschlüssel, eine eindeutige Einschränkung oder einen Fremdschlüssel definieren.
index_col_name
Optional. Es ist die folgende Syntax:

Spaltenname [ (Länge) ] [ ASC | DESC ]

Hinweis

  • Es kann nur eine Spalte in einer Tabelle geben, die als AUTO_INCREMENT festgelegt ist, und diese Spalte muss der Primärschlüssel sein.

Beispiel

Schauen wir uns ein MySQL CREATE TABLE Beispiel an.

Dieses MySQL CREATE TABLE Beispiel erstellt eine Tabelle mit dem Namen contacts, die 4 Spalten und einen Primärschlüssel enthält:

  • Die erste Spalte heißt contact_id und wird als INT-Datentyp erstellt (maximal 11 Stellen). Sie darf keine NULL-Werte enthalten. Es ist als AUTO_INCREMENT-Feld festgelegt, was bedeutet, dass es sich um ein automatisch nummeriertes Feld handelt (beginnend bei 1 und inkrementierend um 1, sofern nicht anders angegeben).
  • Die zweite Spalte heißt Nachname. Hierbei handelt es sich um einen VARCHAR-Datentyp (maximal 30 Zeichen), der keine NULL-Werte enthalten darf.
  • Die dritte Spalte heißt Vorname. Hierbei handelt es sich um einen VARCHAR-Datentyp (maximal 25 Zeichen), der NULL-Werte enthalten kann.
  • Die vierte Spalte heißt Geburtstag. Dies ist ein DATE-Datentyp und kann NULL-Werte enthalten.
  • Der Primärschlüssel heißt contacts_pk und ist auf die Spalte contact_id gesetzt.

Als Nächstes erstellen wir eine Tabelle mit einem DEFAULT VALUE.

Dieses MySQL CREATE TABLE Beispiel erstellt eine Tabelle namens suppliers mit 3 Spalten und einem Primärschlüssel:

  • Die erste Spalte heißt supplier_id und wird als INT-Datentyp (maximal 11 Stellen) erstellt. Sie darf keine NULL-Werte enthalten. Es wird als AUTO_INCREMENT-Feld festgelegt.
  • Die zweite Spalte heißt supplier_name. Hierbei handelt es sich um einen VARCHAR-Datentyp (maximal 50 Zeichen), der keine NULL-Werte enthalten darf.
  • Die dritte Spalte heißt account_rep. Hierbei handelt es sich um einen VARCHAR-Datentyp (maximal 30 Zeichen), der keine NULL-Werte enthalten darf. Wenn für diese Spalte kein Wert angegeben wird, ist der DEFAULT VALUE ‚TBD‘.
  • Der Primärschlüssel heißt suppliers_pk und ist auf die Spalte supplier_id festgelegt.