Tabelle (Tabelle) in SQL Server
- 12-09-2022
- Toanngo92
- 0 Comments
Tabellen in SQL Server enthalten Daten, die in Zeilen und Spalten angeordnet sind. Jede Spalte kann Daten mit einem bestimmten Datentyp und einer bestimmten Größe enthalten
Mục lục
Erweiterte Datentypen
Zusätzlich zu den grundlegenden Datentypen wie int,float nvarchar… unterstützt SQL Server auch einige erweiterte Datentypen wie folgt:
Name | Beschreiben |
hierarchyid | Ist ein systematischer Datentyp mit variabler Länge, der verwendet wird, um die Position einer Hierarchie darzustellen (Schichtung). |
Geometrie | Ist eine Art von geometrischen räumlichen Daten, die zur Darstellung von Objekten in einem flachen Koordinatensystem verwendet werden |
Geographien | Ist ein Geodatentyp, simuliert Breiten- und Längenkoordinaten (auch bekannt als Latlot). SQL Server unterstützt eine Reihe von Methoden zum Arbeiten mit dem Datentyp „geography“. |
xml | Datentyp, der XML-Daten speichern kann (einschließlich Tags und Textknoten, mit Hierarchien) |
Mauszeiger | Der Datentyp, der für die Ausgabe von Variablen oder gespeicherten Prozeduren verwendet wird und einen Verweis auf einen Zeiger enthält |
Tisch | Ein Datentyp, der besonders nützlich ist, um eine temporäre Wertetabelle zu speichern. Diese Daten können für die spätere Verarbeitung verwendet werden, sie können in Funktionen, gespeicherten Prozeduren und Stapeln verwendet werden |
Reihenversion | Dieser Datentyp wird automatisch generiert und generiert eine eindeutige Binärzahl innerhalb der Datenbank |
Tabellen erstellen, bearbeiten, löschen
Tabelle erstellen (Tabelle erstellen)
Syntax zum Erstellen einer Tabelle:
-- Simple CREATE TABLE Syntax (common if not using options) CREATE TABLE { database_name.schema_name.table_name | schema_name.table_name | table_name } ( { <column_definition> } [ ,...n ] ) [ ; ]
Erklären:
- Datenbankname: Der Name der Datenbank, für die Sie eine Tabelle erstellen möchten
- Tabellenname: Der Name der Tabelle, die Sie erstellen möchten, bis zu 128 Zeichen
- Spaltenname: Der Name der Spalte in der Tabelle. Bis zu 128 Zeichen. Hinweis: Der Spaltenname muss nicht benannt werden, wenn der Datentyp der Spalte timestamp ist. Der Standardspaltenname der Spalte mit dem Datentyp timestamp ist „timestamp“.
- data_type: definiert den Datentyp (Datentyp) für die Spalte
Zum Beispiel:
USE AdventureWorks2019 CREATE TABLE dbo.CustomerInfo( CustomerID int NOT NULL, CustomerName nvarchar (40) NOT NULL ) GO
Kurze Syntax:
USE AdventureWorks2019 CREATE TABLE CusInfo( CusID int identity NOT NULL, CusName varchar(40) NOT NULL )
Beachten Sie, dass SQL Server das Schema implizit als dbo interpretiert, wenn der Standardwert initialisiert wird, ohne das Schema (Schema) zu definieren.
Tabelle ändern (Tabelle ändern)
Syntax:
Dokumente: https://docs.microsoft.com/en-us/sql/t-sql/statements/alter-table-transact-sql?view=sql-server-ver15
ALTER TABLE [[dabase_name.[schema_name].|schema_name.]table_name ALTER COLUMN ([<column_name>] [data_type] NULL/ NOT NULLm); | ADD ([<column_name>] [data_type] NULL/NOT NULL); | DROP COLUMN ([<column_name>]);
Erklären:
- ALTER TABLE: Tabelle bearbeiten
- ALTER COLUMN: definiert die zu bearbeitende Spalte
- HINZUFÜGEN: Eine oder mehrere Spalten zur Tabelle hinzufügen
- DROP COLUMN (<column_name>): definiert den Spaltennamen mit dem Namen <column_name>, der aus der Tabelle entfernt werden soll
Beispiel-Anweisung zum Hinzufügen von Spalten:
ALTER TABLE [dbo].[CustomerInfo] ADD [ContactNumber] [numberic](12,0) NOT NULL;
Beispiel einer Spaltenbearbeitungsanweisung:
ALTER TABLE [dbo].[CustomerInfo] ALTER COLUMN [CustomerID] numberic[12,0] NOTNULL
Beispiel-Anweisung zum Löschen von Spalten:
ALTER TABLE [dbo].[CustomerInfo] DROP COLUMN [ContactNumber];
Hinweis: Stellen Sie vor dem Löschen von Spalten sicher, dass Spalten keine Einschränkungen haben und gelöscht werden können. Bei einigen Constraints können Spalten nicht gelöscht werden, beispielsweise wenn die Spalte die Constraints CHECK, FOREIGN KEY, UNIQUE, PRIMARY KEY verwendet oder die Spalte standardmäßig definiert ist (DEFAULT) (was im nächsten Abschnitt behandelt wird). nächster Teil).
Drop-Tabelle (Drop-Tabelle)
Die DROP TABLe-Anweisung löscht die gesamte Tabellendefinition, ihre Daten und alle mit der Tabelle verbundenen Objekte wie Indizes, Trigger, Contrainst, Berechtigungsspezifikationen für die Tabelle.
Syntax:
DROP TABLE <table_name>
Beispiel Tabelle löschen:
DROP TABLE dbo.CustomerInfo
Befehle zum Ändern von Daten
Um die Daten in der Tabelle zu ändern, gibt es INSERT-, UPDATE- und DELETE-Anweisungen , die diese Aufgabe erledigen.
Siehe den Artikel über INSERT in SQL Server: https://hocvietcode.com/lenh-insert-trong-sql-server/
Siehe den Artikel über UPDATE in SQL Server: https://hocvietcode.com/lenh-update-trong-sql-server/
Siehe den Artikel über DELETE in SQL Server: https://hocvietcode.com/lenh-delete-trong-sql-server/
DEFAULT-Definition
Stellen Sie sich eine Situation vor, in der Produktdetails in einer SQL Server 2019-Tabelle gespeichert werden müssen, aber alle Werte für Produktdetails möglicherweise nicht einmal zum Zeitpunkt der Dateneinfügung bekannt sind. Gemäß den Regeln für Datenintegrität und -konsistenz sollten Spalten in einem Datensatz jedoch normalerweise einen Wert enthalten. Das Speichern von Nullwerten in Spalten, sodass der genaue Wert der Daten nicht bekannt ist, kann einige unerwünschte Probleme verursachen.
In solchen Fällen kann eine DEFAULT-Definition für die Spalte bereitgestellt werden, um sie als Standardwert zuzuweisen, wenn zum Zeitpunkt der Erstellung kein Wert angegeben ist. Beispielsweise ist es üblich, Null als Standard für die numerische Spalte anzugeben.
Die DEFAULT- Definition für eine Spalte kann zum Zeitpunkt der Tabellenerstellung erstellt oder zu einem späteren Zeitpunkt zur aktuellen Tabelle hinzugefügt werden. Wenn einer vorhandenen Spalte in einer Tabelle eine DEFAULT- Definition hinzugefügt wird, wendet SQL Server die neuen Standardwerte nur auf die neuen Datenzeilen an, die der Tabelle hinzugefügt werden.
Beispielsweise verwendet die Anweisung CREATE TABLE das Schlüsselwort DEFAULT, um einen Standardwert für die Spalte Price
CREATE TABLE StoreProduct (ProductID int NOT NULL, Name varchar(40) NOT NULL, Price money NOT NULL DEFAULT(100))
Wenn die Zeile mit dem folgenden Befehl hinzugefügt wird, hat die Spalte „Preis“ einen Standardwert von 100, falls kein Wert eingegeben wird.
INSERT INTO dbo.StoreProduct (ProductID,Name) VALUES (111,'Laptop Dell 5450') SELECT * FROM dbo.StoreProduct GO
Einige Spaltentypen können keine DEFAULT-Definitionen definieren:
- Ein Zeitstempel-Datentyp
- Spalte mit dem Attribut IDENTITY oder ROWGUIDCOL
IDENTITY-Eigenschaft (IDENTITY-Eigenschaft)
Die SQL Server IDENTITY-Eigenschaft wird verwendet, um Identitätsspalten zu erstellen, die automatisch generierte sequenzielle Werte enthalten können, die jede Zeile in einer Tabelle eindeutig identifizieren. Beispielsweise könnte eine Identitätsspalte erstellt werden, um automatisch eindeutige Studentenregistrierungsnummern zu generieren, wenn neue Zeilen in die Tabelle „Studenten“ eingefügt werden. Der Bezeichner für die erste in die Tabelle eingefügte Zeile wird als Startwert bezeichnet. Das Inkrement, auch bekannt als Identity Increment-Eigenschaft, wird dem Seed hinzugefügt, um einen zusätzlichen Bezeichner zu erstellen, der automatisch von SQL Server generiert wird, indem das Inkrement zum Seed hinzugefügt wird. Eine Identitätsspalte wird häufig für Primärschlüsselwerte verwendet.
Spalten, die das IDENTITY-Attribut verwenden, müssen Spalten mit ganzzahligen Daten sein:
- Dezimal
- int
- numerisch
- klein
- groß
- winzig
Die Spalte mit dem Attribut IDENTITY muss nicht auf den Wert SEED (Seed) gesetzt werden und den Inkrementwert ( Increment ) angeben, wenn nicht angegeben, sind die Werte SEED und INCREMENT standardmäßig gleich 1.
Syntax:
CREATE TABLE <table_name> (column_name data_type IDENTITY(seed_value,increment_value) NOT NULL)
Erklären:
- Seed_value: Der Seed-Wert beginnt mit der Initialisierung des Werts für die Identität
- increment_value: Der Wert wird jedes Mal erhöht, wenn die Datenbank einen neuen Datensatz hat
Zum Beispiel:
CREATE TABLE HRContactPhone (Person_ID int IDENTITY(500,1) NOT NULL, MobileNumber bigint NOT NULL)
Beim Einfügen von Daten in die Tabelle und Auswählen:
INSERT INTO HRContactPhone(MobileNumber) VALUES (0911222334) INSERT INTO HRContactPhone(MobileNumber) VALUES (0934333123) SELECT * FROM HRContactPhone GO
Global Unique Identifier
Zusätzlich zur Identitätseigenschaft unterstützt SQL Server auch global eindeutige Bezeichner. In einer vernetzten Umgebung erfordern mehrere Tabellen normalerweise eine Spalte, die einen global gemeinsamen eindeutigen Wert enthält. Stellen Sie sich eine Situation vor, in der Daten aus mehreren Datenbanksystemen, wie z. B. einer Bankdatenbank, an einem einzigen Ort konsolidiert werden müssen. Wenn Daten aus der ganzen Welt bei einer zentralen Stelle für die Aggregation und Berichterstattung zusammengeführt werden, verhindert die Verwendung global eindeutiger Werte, dass Kunden in verschiedenen Ländern dieselbe Kontonummer, Bank oder Kunden-ID haben. Um dies zu umgehen, stellt SQL Server global eindeutige Bezeichnerspalten bereit. Sie können für jede Tabelle erstellt werden, die eindeutige Werte für alle Computer im Netzwerk enthält. Nur auf der Identitätsspalte und einer global eindeutigen Bezeichnerspalte kann für jede Tabelle erstellt werden. Um global eindeutige Bezeichner zu generieren und mit ihnen zu arbeiten, wird eine Kombination aus ROWGUIDCOL , uniqueidentifier und den Funktionen NEWID() verwendet, um den Bezeichner zu generieren.
Zum Beispiel:
CREATE TABLE Emp_CellularPhone(Person_ID uniqueidentifier DEFAULT NEWID() NOT NULL, PersonName varchar(60) NOT NULL)
Trage die Daten dann in die Tabelle ein:
INSERT INTO Emp_CellularPhone(PersonName) VALUES ('William Smith') SELECT * FROM Emp_CellularPhone GO