MySql-Lernen – Datendefinition

Die Definitionsfunktion von MySql umfasst die Definition von Schemadefinitionen, Tabellendefinitionen, Ansichtsdefinitionen und Indexdefinitionen.

Operationsobjekt erstellen löschen Überarbeiten
Modell SCHEMA ERSTELLEN DROP-SCHEMA
Oberfläche TABELLE ERSTELLEN DROP-TISCH TABELLE ÄNDERN
Sicht ANSICHT ERSTELLEN TROPFENANSICHT
Index INDEX ERSTELLEN DROP-INDEX INDEX ÄNDERN

Schemadefinition und -löschung

1. Musterdefinitionsanweisung:
CREATE SCHEM <模式名>AUTHORIZATION <用户名>;

Um ein Schema zu erstellen, benötigen Sie vom Datenbankadministrator Administratorrechte oder CREATE SCHEMA-Berechtigungen.

2. Löschmodus
DROP SCHEMA<模式名>CASCADE |RESTRICT>;

Darunter muss CASCADE (Kaskade) ausgewählt werden, was bedeutet, dass beim Löschen des Schemas alle Datenbankobjekte im Schema gelöscht werden; RESTRICT (Einschränkung) ist ausgewählt, was bedeutet, dass, wenn untergeordnete Datenbankobjekte im Schema definiert wurden CASCADE, RESTRICT(z. B. Tabellen, Ansichten usw.) wird die Ausführung der Löschanweisung abgelehnt und die Anweisung kann nur ausgeführt werden, wenn im Schema keine untergeordneten Objekte vorhanden sind.

Definition und Löschung von Basistabellen

Basistabelle definieren
CREATE TABLE <表名>(<列名><数据类型>[列级完整性约束条件]
								[,<列名><数据类型>[列级完整性约束条件]]
								...
								[,<表级完整性约束条件>]; 

Beispiel: Erstellen Sie eine Studententabelle „Student“:

Fügen Sie hier eine Bildbeschreibung ein

Integritätsbeschränkungen auf Spaltenebene
Integritätsbeschränkungen auf Spaltenebene äußern
Kann keinen Nullwert annehmen NICHT NULL
Haupt code PRIMÄRSCHLÜSSEL
Einzigartigkeit EINZIGARTIG
Art der Daten
Art der Daten Bedeutung
CHAR(n)、CHARACTER(n) String fester Länge der Länge n
VARCHAR(n)、CHARAcTERVARYING(n) Eine Zeichenfolge variabler Länge der Länge n
CLOB String großes Objekt
KLECKS binäres großes Objekt
INT 、INTEGER lange Ganzzahl (4 Bytes)
KLEININT kurze Ganzzahl (2 Bytes)
BIGINT Große Ganzzahl (8 Bytes)
Real Dezimal (zufällige Ausgabe mit einer Genauigkeit von 6 Dezimalstellen)
DOPPELTE GENAUIGKEIT Dezimal (zufällige Ausgabe mit einer Genauigkeit von 15 Dezimalstellen)
FLOAT(n) Optionale Genauigkeit, mindestens n Stellen
BOOLEAN Logischer boolescher Wert
DATEN Datum
ZEIT Zeit
Schemata und Tabellen

Jede Basistabelle gehört zu einem bestimmten Schema, und ein Schema enthält mehrere Basistabellen. Beim Definieren einer Basistabelle gibt es im Allgemeinen drei Möglichkeiten, das Schema zu definieren, zu dem sie gehört. Jetzt müssen wir in ST grundlegende Tabellen wie Student, Course, SC usw. definieren.

Methode 1: Geben Sie den Schemanamen deutlich im Tabellennamen an.

CREATE TABLE​​ "S-T".Student(...);              

CREATE TABLE "S-T".Course(...);                

CREATE TABLE "S-T".SC(...);        

Methode zwei: Erstellen Sie die Tabelle gleichzeitig in der Anweisung zum Erstellen des Schemas

Methode 3: Legen Sie das Schema fest, zu dem es gehört, sodass der Schemaname beim Erstellen der Tabelle nicht im Tabellennamen angegeben werden muss.

Wenn der Benutzer beim Erstellen einer Basistabelle kein Schema angibt, ermittelt das System anhand des Suchpfads, zu welchem ​​Schema das Objekt gehört.

Verwenden Sie die folgende Anweisung, um den aktuellen Suchpfad anzuzeigen:

SHOW search_path;​​

Der aktuelle Standardwert für den Suchpfad ist $user,PUBLIC. Die Bedeutung besteht darin, zunächst nach einem Schemanamen zu suchen, der mit dem Benutzernamen übereinstimmt. Wenn der Schemaname nicht vorhanden ist, verwenden Sie das PUBLIC-Schema. Der Datenbankadministrator kann beispielsweise auch Suchpfade festlegen;

SET search_path TO "S-T",PUBLIC;

Definieren Sie dann die Basistabelle:

CERATE TABLE Student(...);

Das eigentliche Ergebnis ist die Erstellung der ST.Studnt-Basistabelle. Da das relationale Datenbankverwaltungssystem feststellt, dass der erste Schemaname ST im Suchpfad vorhanden ist, verwendet es dieses Schema als Schema, zu dem die Basistabelle Student gehört. ​​

Basistabelle ändern

Die SQL-Sprache verwendet die ALTER TABLE-Anweisung, um die Basistabelle zu ändern. Ihr allgemeines Format ist

ALTER TABLE<表名>

 [ADD[COLUMN]<新列名><数据类型>[完整性约束]]

 [ADD<表级完整性约束>]

 [DROP[COLUMN]<列名>[CASCADE|RESTRICT]]

 [DROP CONSTRAINT<完整性约束>[RESTRICT|CASCADE]]

 [ALTER COLUM<列名><数据类型>];

Unter diesen ist <Tabellenname> die zu ändernde Basistabelle, und die ADD-Klausel wird zum Hinzufügen neuer Spalten, neuer Integritätsbeschränkungen auf Spaltenebene und neuer Integritätsbeschränkungen auf Tabellenebene verwendet. Die DROP COLUMN-Klausel wird zum Löschen von Spalten aus der Tabelle verwendet. Die DROP CONSTRAINT-Klausel wird verwendet, um angegebene Integritätsbeschränkungen zu entfernen. Die ALTER COLUMN-Klausel wird verwendet, um die ursprüngliche Spaltendefinition zu ändern, einschließlich der Änderung des Spaltennamens und des Datentyps.
Fügen Sie die Spalte „Zulassungszeit“ zur Tabelle „Student“ hinzu, deren Datentyp „Datum“ ist.

ALTER TABLE Student ADD S_entrance DATE;

Unabhängig davon, ob Daten in der Basistabelle vorhanden sind, haben die neu hinzugefügten Spalten immer Nullwerte.

Ändern Sie den Datentyp des Alters von Zeichen in Ganzzahl.

ALTER TABLE Student ALTER COLUMN Sage INT;

Fügen Sie die Einschränkung hinzu, dass der Kursname einen eindeutigen Wert haben muss.

ALTER TABLE Course ADD UNIQUE(Cname);

Beispiel:
Fügen Sie hier eine Bildbeschreibung ein####### Basistabelle löschen

Verwenden Sie die DROP TABLE-Anweisung. Das allgemeine Format lautet:

DROP TABLE<表名>[RESTRICT|CASCADE];

Bei Auswahl von RESTRICT unterliegt das Löschen dieser Tabelle Einschränkungen. Die zu löschende Basistabelle kann nicht durch Einschränkungen anderer Tabellen referenziert werden und darf keine Ansichten, Trigger, gespeicherten Prozeduren oder Funktionen usw. haben. Diese Tabelle kann nicht gelöscht werden, wenn die von ihr abhängigen Objekte vorhanden sind. Wenn CASCADE ausgewählt ist, gibt es keine Einschränkungen beim Löschen der Tabelle. Beim Löschen der Basistabelle werden zusammengehörige abhängige Objekte, wie z. B. Ansichten, gemeinsam gelöscht.

Beispiel: Schülertabelle löschen

DROP TABLE 学生 CASCADE;

Fügen Sie hier eine Bildbeschreibung ein

Indexerstellung und -löschung (*)

Wenn die Datenmenge in der Tabelle relativ groß ist, ist der Abfragevorgang zeitaufwändiger. Die Indizierung ist ein wirksames Mittel zur Beschleunigung von Abfragen.
Es gibt viele Arten von Datenbankindizes. Zu den gängigen Indizes gehören Indizes für sequentielle Dateien, B+-Baumindizes, Hash-Indizes, Bitmap-Indizes usw. Der Index der sequentiellen Datei dient für die Beziehung, die in aufsteigender oder absteigender Reihenfolge entsprechend dem angegebenen Attributwert gespeichert wird. Für das Attribut wird eine sequentielle Indexdatei erstellt. Die Indexdatei besteht aus dem Attributwert und dem entsprechenden Tupelzeiger. Der B+-Baumindex organisiert die Indexattribute in B+-Baumform. Die Blattknoten des B+-Baums sind Attributwerte und entsprechende Tupelzeiger. Es hat den Vorteil des dynamischen Gleichgewichts. Der Hash-Index besteht darin, mehrere Buckets zu erstellen und die Indexattribute entsprechend ihren Hash-Funktionswerten den entsprechenden Buckets zuzuordnen. Die Buckets speichern die Indexattributwerte und entsprechenden Tupelzeiger. Der Hash-Index zeichnet sich durch eine schnelle Suchgeschwindigkeit aus. Der Bitmap-Index verwendet Bitvektoren, um die Werte aufzuzeichnen, die im Indexattribut erscheinen können, und jeder Bitvektor entspricht einem möglichen Wert. Obwohl Indizes Datenbankabfragen beschleunigen können, müssen sie einen bestimmten Speicherplatz belegen. Wenn die Basistabelle aktualisiert wird, muss der Index entsprechend gepflegt werden, was die Belastung der Datenbank erhöht. Im Allgemeinen erfolgt das Erstellen und Löschen von Indizes durch den Datenbankadministrator oder den Eigentümer der Tabelle, also die Person, die die Tabelle erstellt hat. Das relationale Datenbankverwaltungssystem wählt bei der Ausführung der Abfrage automatisch den entsprechenden Index als Zugriffspfad aus. Der Benutzer muss und kann den Index nicht explizit auswählen. Index ist die interne Implementierungstechnologie eines relationalen Datenbankverwaltungssystems und gehört zur Kategorie der internen Schemata.

Supongo que te gusta

Origin blog.csdn.net/Systemmax20/article/details/120629111
Recomendado
Clasificación