Heim > Datenbank > MySQL-Tutorial > Detaillierte Einführung in die Syntax der MySQL-Tabellendefinition

Detaillierte Einführung in die Syntax der MySQL-Tabellendefinition

王林
Freigeben: 2020-01-30 20:32:29
nach vorne
2587 Leute haben es durchsucht

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=引擎类型]
Nach dem Login kopieren

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)
Nach dem Login kopieren

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
Nach dem Login kopieren

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
Nach dem Login kopieren

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
Nach dem Login kopieren

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
Nach dem Login kopieren

同样 可使用 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)
Nach dem Login kopieren

重命名表

除了 ALTER TABLE 中的 RENAME TO 修改表名,还可通过 RENAME TABLE 来修改单张和多张表(以逗号分隔)

mysql> RENAME TABLE mysql_test.back.customers TO mysqle_test.customers
Nach dem Login kopieren

删除表

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

相关文章教程推荐: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!

Verwandte Etiketten:
Quelle:cnblogs.com
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage