Heim  >  Artikel  >  Datenbank  >  Tutorial zum Angeben von Standardwerten, wenn MySQL eine Datentabelle erstellt

Tutorial zum Angeben von Standardwerten, wenn MySQL eine Datentabelle erstellt

巴扎黑
巴扎黑Original
2017-05-15 14:19:336128Durchsuche

Standardwert angeben

Wenn beim Einfügen einer Zeile kein Wert angegeben wird, können Sie in MySQL einen Standardwert angeben, der zu diesem Zeitpunkt verwendet werden soll. Der Standardwert wird mit dem Schlüsselwort DEFAULT in der Spaltendefinition der CREATE TABLE-Anweisung angegeben.

Sehen Sie sich das folgende Beispiel an:

Eingabe:

create table orderitems
(
order_num              int                 NOT NULL,
order_item              int                NOT NULL,
prod_id              char(10)            NOT NULL,
quantity                  int                 NOT NULL   DEFAULT1,
item_price         decimal(8,2)      NOT NULL,
PRIMARY KEY ( order_num,order_item)
)ENGINE = InnoDB;

Ausgabe: Diese Anweisung erstellt die orderitems-Tabelle mit den Artikeln, aus denen die Bestellung besteht (die Bestellungen selbst sind). in der Auftragstabelle gespeichert). Die Mengenspalte enthält die Menge jedes Artikels in der Bestellung. In diesem Beispiel wird MySQL durch das Hinzufügen des Textes DEFAULT 1 zur Spaltenbeschreibung angewiesen, die Menge 1 zu verwenden, wenn keine Menge angegeben ist.

Funktion nicht zulässig Im Gegensatz zu den meisten DBMS erlaubt MySQL nicht die Verwendung von Funktionen als Standardwerte, sondern unterstützt nur Konstanten.

Standardwerte anstelle von NULL-Werten verwenden Viele Datenbankentwickler verwenden Standardwerte anstelle von NULL-Spalten, insbesondere für Spalten, die in Berechnungen oder Datengruppierungen verwendet werden.

Erweiterte Kenntnisse:

Was ist ein Motortyp?

Vielleicht ist Ihnen aufgefallen, dass die bisher verwendeten CREATE TABLE-Anweisungen alle mit einer ENGINE=InnoDB-Anweisung enden.

MySQL verfügt wie andere DBMS über eine interne Engine, die speziell Daten verwaltet und verarbeitet. Wenn Sie die CREATE TABLE-Anweisung verwenden, erstellt die Engine speziell die Tabelle, und wenn Sie die SELECT-Anweisung verwenden oder eine andere Datenbankverarbeitung durchführen, verarbeitet die Engine Ihre Anfrage intern. Meistens ist diese Engine im DBMS versteckt und Sie müssen ihr nicht allzu viel Aufmerksamkeit schenken.

Aber MySQL unterscheidet sich von anderen DBMS, es verfügt über mehrere Engines. Es bündelt mehrere Engines, die alle im MySQL-Server verborgen sind, und können alle Befehle wie CREATE TABLE und SELECT ausführen.

Warum mehrere Engines veröffentlichen? Da sie über unterschiedliche Funktionen und Merkmale verfügen, kann die Auswahl der richtigen Engine für unterschiedliche Aufgaben gute Funktionalität und Flexibilität bieten.

Natürlich können Sie diese Datenbank-Engines komplett ignorieren. Wenn die ENGINE=-Anweisung weggelassen wird, wird die Standard-Engine verwendet (höchstwahrscheinlich MyISAM), die standardmäßig für die meisten SQL-Anweisungen verwendet wird. Aber nicht alle Anweisungen verwenden es standardmäßig, weshalb die ENGINE=-Anweisung wichtig ist (und warum in den Beispieltabellen in diesem Buch zwei Engines verwendet werden).

Die folgenden Engines müssen Sie kennen:

1.InnoDB ist eine zuverlässige Transaktionsverarbeitungs-Engine, sie unterstützt keine Volltextsuche.

2. SPEICHER in der Funktion Äquivalent zu MyISAM, aber da die Daten im Speicher (nicht auf der Festplatte) gespeichert werden, ist es sehr schnell (besonders geeignet für temporäre Tabellen).

3 Die Volltextsuche wird jedoch nicht unterstützt.

Motortypen können gemischt werden. Mit Ausnahme der Tabelle „productnotes“, die MyISAM verwendet, verwenden alle Beispieltabellen in diesem Buch InnoDB. Der Grund dafür ist, dass der Autor die Transaktionsverarbeitung unterstützen möchte (daher InnoDB verwenden), aber auch die Volltextsuche in Produktnotizen unterstützen muss (daher MyISAM verwenden).

Fremdschlüssel können keine Engines übergreifen. Es gibt einen großen Fehler beim Mischen von Engine-Typen. Fremdschlüssel (die zur Durchsetzung der referenziellen Integrität verwendet werden) können sich nicht über mehrere Engines erstrecken. Das heißt, eine Tabelle, die eine Engine verwendet, kann nicht auf einen Fremdschlüssel verweisen, der eine Tabelle enthält, die eine andere Engine verwendet.

Welchen Motor sollten Sie also verwenden? Es hängt davon ab, welche Funktionen Sie benötigen. MyISAM ist aufgrund seiner Leistung und Funktionen wahrscheinlich die beliebteste Engine. Wenn Sie jedoch keine zuverlässige Transaktionsverarbeitung benötigen, können Sie andere Engines verwenden.

Das obige ist der detaillierte Inhalt vonTutorial zum Angeben von Standardwerten, wenn MySQL eine Datentabelle erstellt. 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