Heim  >  Artikel  >  Datenbank  >  Grundlagen der SQL-Datenoperationen (Mittelstufe) 7

Grundlagen der SQL-Datenoperationen (Mittelstufe) 7

黄舟
黄舟Original
2016-12-17 14:35:00790Durchsuche

Indizierung mit SQL

Um eine Tabelle zu indizieren, starten Sie SQL in der Taskleiste Das ISQL/w-Programm in der Sever-Programmgruppe. Geben Sie nach dem Aufrufen des Abfragefensters die folgende Anweisung ein:

CREATE INDEX mycolumn_index ON mytable (myclumn)

Diese Anweisung erstellt einen Index namens mycolumn_index. Sie können einem Index einen beliebigen Namen geben, Sie sollten jedoch den Namen des zu indizierenden Felds in den Indexnamen aufnehmen. Dies wird Ihnen dabei helfen, den Zweck der zukünftigen Erstellung des Index herauszufinden.

Hinweis:

Wenn Sie eine SQL-Anweisung in diesem Buch ausführen, erhalten Sie die folgende Meldung:

Dies Der Befehl hat keine Daten zurückgegeben, und er hat auch keine zurückgegeben Zeilen

Dies zeigt, dass die Anweisung erfolgreich ausgeführt wurde.

Der Index mycolumn_index wird für das mycolumn-Feld der Tabelle mytable ausgeführt. Dies ist ein nicht gruppierter Index und ein nicht eindeutiger Index. (Dies ist die Standardeigenschaft eines Index)

Wenn Sie den Typ eines Index ändern müssen, müssen Sie den ursprünglichen Index löschen und ihn neu erstellen eins. Nachdem Sie einen Index erstellt haben, können Sie ihn mit der folgenden SQL-Anweisung löschen:

DROP INDEX mytable.mycolumn_index

Beachten Sie den DROP INDEX Sie müssen den Namen der Tabelle in die Anweisung aufnehmen. In diesem Beispiel ist der von Ihnen gelöschte Index mycolumn_index, der der Index der Tabelle mytable ist.

Um einen Clustered-Index zu erstellen, verwenden Sie das Schlüsselwort CLUSTERED. ) Denken Sie daran, dass eine Tabelle nur einen Clustered-Index haben kann. (Hier ist ein Beispiel für die Erstellung eines Clustered-Index für eine Tabelle:

CREATE CLUSTERED INDEX mycolumn_clust_index EIN mytable(mycolumn)

Wenn die Tabelle doppelte Datensätze enthält, tritt ein Fehler auf, wenn Sie versuchen, mit dieser Anweisung einen Index zu erstellen. Aber auch Tabellen mit doppelten Datensätzen können indiziert werden; Sie teilen SQL dies einfach mit dem Schlüsselwort ALLOW_DUP_ROW mit Sever:

CREATE CLUSTERED INDEX mycolumn_cindex ON mytable(mycolumn)

MIT ALLOW_DUP_ROW

Diese Anweisung erstellt einen Clustered-Index, der doppelte Datensätze zulässt. Sie sollten versuchen, doppelte Datensätze in einer Tabelle zu vermeiden. Sollten sie dennoch auftreten, können Sie diese Methode verwenden.

Um einen eindeutigen Index für eine Tabelle zu erstellen, können Sie das Schlüsselwort UNIQUE verwenden. Dieses Schlüsselwort kann sowohl für Clustered-Indizes als auch für Nicht-Clustered-Indizes verwendet werden. Hier ist ein Beispiel:

ERSTELLEN EINZIGARTIGER COUSTERED INDEX myclumn_cindex ON mytable(mycolumn)

Dies ist die Indexierungsanweisung, die Sie häufig verwenden werden. Wann immer möglich, sollten Sie versuchen, eindeutige Clustered-Indizes für eine Tabelle zu erstellen, um Abfragevorgänge zu verbessern.

Schließlich erstellen Sie einen Index für mehrere Felder – einen zusammengesetzten Index – und fügen Sie mehrere Feldnamen in die Indexerstellungsanweisung ein. Das folgende Beispiel erstellt einen Index für die Felder „Vorname“ und „Nachname“:

CREATE INDEX name_index ON Benutzername(Vorname, Nachname)

In diesem Beispiel wird ein einzelner Index für zwei Felder erstellt. In einem zusammengesetzten Index können Sie bis zu 16 Felder indizieren.

Indizes mit Transaktionsmanagern erstellen

Indizes mit Transaktionsmanagern erstellen ist viel einfacher als die Verwendung von SQL-Anweisungen. Mit dem Transaktionsmanager können Sie eine Liste der erstellten Indizes anzeigen und über eine grafische Oberfläche Indizierungsoptionen auswählen.

Mit dem Transaktionsmanager können Sie Indizes auf zwei Arten erstellen: Mit „Verwalten“. Klicken Sie auf das Fenster „Tabellen“ oder verwenden Sie das Fenster „Indizes verwalten“.

Um einen neuen Index über das Fenster „Tabellen verwalten“ zu erstellen, klicken Sie auf die Schaltfläche „Erweitert“. Optionen (es sieht aus wie eine Tabelle mit einem Pluszeichen davor). Dadurch wird das Dialogfeld „Erweiterte Optionen“ geöffnet. In diesem Dialogfeld gibt es einen Abschnitt mit dem Namen „PRimary“. Schlüssel (siehe Abbildung 11.1).

Abbildung 11. 1

Um einen neuen Index zu erstellen, wählen Sie aus der Dropdown-Liste den Feldnamen aus, den Sie indizieren möchten. Wenn Sie einen Index für mehrere Felder erstellen möchten, können Sie mehrere Feldnamen auswählen. Sie können auch auswählen, ob der Index geclustert oder nicht geclustert ist. Nach dem Speichern der Tabelleninformationen wird der Index automatisch erstellt. InManage Neben dem Feldnamen im Tabellenfenster wird ein Schlüssel angezeigt.

Sie haben einen „Masterindex“ für Ihre Tabelle erstellt. Der Primärindex muss für Felder eingerichtet werden, die keine Nullwerte enthalten. Darüber hinaus erzwingt der Primärindex, dass ein Feld ein Feld mit eindeutigem Wert ist.

Um einen Index ohne diese Einschränkungen zu erstellen, müssen Sie Verwalten verwenden Fenster „Indizes“. Wählen Sie „Verwalten|Indizes“ aus dem Menü, um das Fenster „Indizes verwalten“ zu öffnen. Indizes verwalten Im Fenster können Sie über das Dropdown-Feld die Tabelle und den spezifischen Index auswählen. (Siehe Abbildung 11.2). Um einen neuen Index zu erstellen, wählen Sie im Dropdown-Feld „Index“ die Option „Neu“ aus Indexieren und Sie können die zu indizierenden Felder auswählen. Klicken Sie auf die Schaltfläche „Hinzufügen“, um das Feld zum Index hinzuzufügen.

Abbildung 11.2

Sie können für Ihren Index aus vielen verschiedenen Optionen wählen. Sie können beispielsweise auswählen, ob der Index geclustert oder nicht geclustert ist. Sie können auch angeben, dass der Index ein eindeutiger Index ist. Nachdem Sie den Index entworfen haben, klicken Sie auf die Schaltfläche „Erstellen“, um den Index zu erstellen.

Hinweis:

Eindeutiger Index bedeutet, dass das Feld keine doppelten Werte haben kann und nicht, dass nur ein Index erstellt werden kann.

SQL-Kernanweisungen

In Kapitel 10 haben Sie gelernt, wie man SQL verwendet WÄHLEN Anweisung zum Abrufen von Daten aus einer Tabelle. Bisher gab es jedoch keine Diskussion darüber, wie man Daten in einer Tabelle hinzufügt, ändert oder löscht. In diesem Abschnitt erfahren Sie mehr darüber.

Daten einfügen

Um einen neuen Datensatz zur Tabelle hinzuzufügen, verwenden Sie SQL INSERT-Anweisung. Hier ist ein Beispiel für die Verwendung einer solchen Anweisung:

INSERT mytable (mycolumn) VALUES (‘some data‘)

Diese Anweisung konvertiert die Zeichenfolge ‚some „data“ wird in das Feld „mycolumn“ der Tabelle „mytable“ eingefügt. In der ersten Klammer wird der Name des Feldes angegeben, in das Daten eingefügt werden, in der zweiten Klammer werden die tatsächlichen Daten angegeben.

EINFÜGEN Die vollständige Syntax der Anweisung lautet wie folgt:

INSERT [INTO] {table_name|view_name} [(column_list)] {DEFAULT WERTE |

Werteliste | select_statement}

Wenn eine Tabelle mehrere Felder enthält, können Sie Daten in alle Felder einfügen, indem Sie den Feldnamen und den Feldwert durch Kommas trennen. Angenommen, die Tabelle mytable hat drei Felder: first_column, second_column undthird_column. Die folgende INSERT-Anweisung fügt einen vollständigen Datensatz mit Werten für alle drei Felder hinzu:

INSERT mytable (first_column,second_column,third_column)

VALUES (‘some Daten“, „mehr Daten“, „noch mehr“. data‘)

Hinweis:

Sie können die INSERT-Anweisung verwenden, um Daten in Textfelder einzufügen. Wenn Sie jedoch eine sehr lange Zeichenfolge eingeben müssen, sollten Sie die WRITETEXT-Anweisung verwenden. Dieses Material ist für dieses Buch zu fortgeschritten und wird nicht besprochen. Weitere Informationen finden Sie bei Microsoft Dokumentation für SQL Server.

Wenn Sie INSERT sind Was passiert, wenn in der Anweisung nur zwei Felder und Daten angegeben werden? Mit anderen Worten: Sie fügen einen neuen Datensatz in eine Tabelle ein, aber eines der Felder liefert keine Daten. In diesem Fall gibt es vier Möglichkeiten:

Wenn das Feld einen Standardwert hat, wird dieser Wert verwendet. Angenommen, Sie fügen einen neuen Datensatz ein, ohne Daten für das Feld „third_column“ bereitzustellen, und dieses Feld hat den Standardwert „some“. Wert'. In diesem Fall wird beim Erstellen eines neuen Datensatzes der Wert „some value“ eingefügt.
Wenn das Feld Nullwerte akzeptieren kann und es keinen Standardwert gibt, wird ein Nullwert eingefügt.
Wenn das Feld keine Nullwerte akzeptieren kann und keinen Standardwert hat, tritt ein Fehler auf. Sie erhalten die Fehlermeldung:
Die Spalte in der Tabelle mytable ist möglicherweise nicht vorhanden Sei null.

Wenn es sich bei dem Feld schließlich um ein Identitätsfeld handelt, wird automatisch ein neuer Wert generiert. Wenn Sie einen neuen Datensatz in eine Tabelle einfügen, die über ein Identifikationsfeld verfügt, ignorieren Sie das Feld einfach und das Identifikationsfeld weist sich selbst einen neuen Wert zu.
Hinweis:

Nachdem Sie einen neuen Datensatz in eine Tabelle mit einem Identitätsfeld eingefügt haben, können Sie die SQL-Variable @@identity verwenden, um auf den Wert des Identitätsfelds des neuen Datensatzes zuzugreifen

. Betrachten Sie die folgende SQL-Anweisung:

INSERT mytable (first_column) VALUES(‘some value’)

INSERT anothertable(another_first,another_second)

VALUES(@@identity,’some value’)

Wenn die Tabelle mytable ein Identifikationsfeld hat, wird der Wert dieses Feldes in das Feld another_first der Tabelle anothertable eingefügt. Dies liegt daran, dass die Variable @@identity immer den letzten Wert enthält, der in das Identitätsfeld eingefügt wurde.

Das Feld another_first sollte denselben Datentyp haben wie das Feld first_column. Allerdings kann das Feld another_first kein Feld sein, das identifizieren soll. Das Feld „Another_first“ wird verwendet, um den Wert des Felds „first_column“ zu speichern.

Datensätze löschen

Um einen oder mehrere Datensätze aus einer Tabelle zu löschen, müssen Sie SQL verwenden DELETE-Anweisung. Sie können WHERE für die DELETE-Anweisung angeben Klausel. Die WHERE-Klausel wird verwendet, um Datensätze auszuwählen, die gelöscht werden sollen. Die folgende DELETE-Anweisung löscht beispielsweise nur den Wert des Felds first_column, der gleich „Delete“ ist Ich’-Datensatz:

DELETE mytable WHERE first_column=’Deltet Me’

DELETE Die vollständige Syntax der Anweisung lautet wie folgt:

DELETE [FROM] {table_name|view_name} [WHERE Klausel]

Jede Bedingung, die in der SQL-SELECT-Anweisung verwendet werden kann, kann in der WHERE-Klausel der DELECT-Anweisung verwendet werden verwendet in. Die folgende DELETE-Anweisung löscht beispielsweise nur diejenigen, deren Feldwert „first_column“ „goodbye“ oder „second_column“ den Wert „so“ hat long‘-Datensatz:

DELETE mytable WHERE first_column=’goodby’ OR second_column=’so long’

Wenn Sie in der DELETE-Anweisung kein WHERE angeben -Klausel werden alle Datensätze in der Tabelle gelöscht. So sollte man nicht denken. Wenn Sie alle Datensätze in der Tabelle löschen möchten, sollten Sie TRUNCATE verwenden, wie in Kapitel 10 beschrieben TABLE-Anweisung.

Hinweis:

Warum sollten wir die TRUNCATE TABLE-Anweisung anstelle der DELETE-Anweisung verwenden? Wenn Sie TRUNCATE verwenden TABLE-Anweisung, Datensatzlöschung wird nicht aufgezeichnet. Mit anderen Worten bedeutet dies, dass TRUNCATE TABLE viel schneller ist als DELETE

Das Obige ist der Inhalt von SQL Data Operation Basics (Intermediate) 7. Weitere verwandte Artikel finden Sie auf der chinesischen PHP-Website (www.php.org). .php.cn) !


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