Tabella (tabella) in SQL Server
- 12-09-2022
- Toanngo92
- 0 Comments
Le tabelle in SQL Server contengono dati organizzati in righe e colonne. Ogni colonna può contenere dati con un determinato tipo e dimensione di dati
Mục lục
Tipi di dati avanzati
Oltre ai tipi di dati di base come int, float nvarchar… SQL Server supporta anche alcuni tipi di dati avanzati come segue:
Nome | Descrivere |
ierachiide | È un tipo di dati sistematico a lunghezza variabile utilizzato per rappresentare la posizione di una gerarchia (stratificazione). |
geometria | È un tipo di dati spaziali geometrici, utilizzati per rappresentare oggetti su un sistema di coordinate piatto |
geografie | È un tipo di dati geospaziali, simula le coordinate di latitudine e longitudine (note anche come latlot). SQL Server supporta un set di metodi per l’utilizzo del tipo di dati geografico. |
xml | Tipo di dati in grado di memorizzare dati XML (inclusi tag e nodi di testo, con gerarchie) |
cursore | Tipo di dati utilizzato per l’output di una procedura memorizzata o variabile, contenente un riferimento a un puntatore |
tavolo | Un tipo di dati particolarmente utile per archiviare una tabella di valori temporanea. Questi dati possono essere utilizzati per elaborazioni successive, possono essere utilizzati in funzioni, procedure archiviate, batch |
versione riga | Questo tipo di dati viene generato automaticamente, generando un numero binario univoco all’interno del database |
Crea, modifica, elimina tabelle
Crea tabella (Crea tabella)
Sintassi per creare tabella:
-- 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 ] ) [ ; ]
Spiegare:
- database_name: il nome del database in cui si desidera creare una tabella
- table_name: il nome della tabella che vuoi creare, fino a 128 caratteri
- nome_colonna: il nome della colonna nella tabella. Fino a 128 caratteri. Nota: non è necessario nominare il nome della colonna quando il tipo di dati della colonna è timestamp. Il nome di colonna predefinito della colonna con il tipo di dati timestamp è ‘timestamp’.
- data_type: definisce il tipo di dati (tipo di dati) per la colonna
Per esempio:
USE AdventureWorks2019 CREATE TABLE dbo.CustomerInfo( CustomerID int NOT NULL, CustomerName nvarchar (40) NOT NULL ) GO
Sintassi breve:
USE AdventureWorks2019 CREATE TABLE CusInfo( CusID int identity NOT NULL, CusName varchar(40) NOT NULL )
Nota, se l’impostazione predefinita è inizializzata, senza definire lo schema (schema), SQL Server interpreterà implicitamente lo schema come dbo.
Modifica tabella (modifica tabella)
Sintassi:
Documenti: 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>]);
Spiegare:
- ALTER TABLE: modifica tabella
- ALTER COLUMN: definisce la colonna da modificare
- AGGIUNGI: aggiungi una o più colonne alla tabella
- DROP COLUMN (<nome_colonna>): definisce il nome della colonna denominata <nome_colonna> da rimuovere dalla tabella
Esempio di istruzione per aggiungere colonne:
ALTER TABLE [dbo].[CustomerInfo] ADD [ContactNumber] [numberic](12,0) NOT NULL;
Esempio di istruzione di modifica della colonna:
ALTER TABLE [dbo].[CustomerInfo] ALTER COLUMN [CustomerID] numberic[12,0] NOTNULL
Esempio di istruzione per eliminare le colonne:
ALTER TABLE [dbo].[CustomerInfo] DROP COLUMN [ContactNumber];
Nota: prima di eliminare le colonne, assicurarsi che le colonne non abbiano vincoli e possano essere eliminate. In alcuni vincoli, le colonne non possono essere eliminate, ad esempio, se la colonna utilizza i vincoli CHECK,FOREIGN KEY, UNIQUE, PRIMARY KEY, o la colonna è definita per impostazione predefinita (DEFAULT) (che sarà trattata nella sezione successiva). parte successiva).
Drop table (drop table)
L’istruzione DROP TABLe eliminerà l’intera definizione della tabella, i relativi dati e tutti gli oggetti associati alla tabella come indici, trigger, vincoli, specifiche di autorizzazione per la tabella.
Sintassi:
DROP TABLE <table_name>
Esempio di tabella di eliminazione:
DROP TABLE dbo.CustomerInfo
Comandi per modificare i dati
Per modificare i dati nella tabella, ci sono istruzioni INSERT, UPDATE, DELETE che fanno questo lavoro.
Vedere l’articolo su INSERT in SQL Server: https://hocvietcode.com/lenh-insert-trong-sql-server/
Vedere l’articolo sull’AGGIORNAMENTO in SQL Server: https://hocvietcode.com/lenh-update-trong-sql-server/
Vedere l’articolo su DELETE in SQL Server: https://hocvietcode.com/lenh-delete-trong-sql-server/
DEFAULT Definizione
Considera una situazione in cui i dettagli del prodotto devono essere archiviati in una tabella di SQL Server 2019, ma tutti i valori per i dettagli del prodotto potrebbero non essere noti anche al momento dell’inserimento dei dati. Tuttavia, in base alle regole di integrità e coerenza dei dati, le colonne di un record dovrebbero in genere contenere un valore. La memorizzazione di valori nulli in colonne in modo tale che il valore esatto dei dati non sia noto può causare alcuni problemi indesiderati.
In questi casi, è possibile fornire una definizione DEFAULT per la colonna per assegnarla come valore predefinito se non viene fornito alcun valore al momento della creazione. Ad esempio, è comune specificare zero come valore predefinito per la colonna numerica.
La definizione DEFAULT per una colonna può essere creata al momento della creazione della tabella o aggiunta in una fase successiva alla tabella corrente. Quando una definizione DEFAULT viene aggiunta a una colonna esistente in una tabella, SQL Server applica i nuovi valori predefiniti solo a quelle nuove righe di dati che vengono aggiunte alla tabella.
Ad esempio, l’istruzione CREATE TABLE utilizza la parola chiave DEFAULT per definire un valore predefinito per la colonna Prezzo
CREATE TABLE StoreProduct (ProductID int NOT NULL, Name varchar(40) NOT NULL, Price money NOT NULL DEFAULT(100))
Quando la riga viene aggiunta utilizzando il comando seguente, la colonna Prezzo avrà un valore predefinito di 100 nel caso in cui non venga inserito alcun valore.
INSERT INTO dbo.StoreProduct (ProductID,Name) VALUES (111,'Laptop Dell 5450') SELECT * FROM dbo.StoreProduct GO
Alcuni tipi di colonna non possono definire definizioni DEFAULT:
- Un tipo di dati timestamp
- Colonna con attributo IDENTITY o ROWGUIDCOL
IDENTITÀ Proprietà (proprietà IDENTITÀ)
La proprietà SQL Server IDENTITY viene utilizzata per creare colonne di identità che possono contenere valori sequenziali generati automaticamente che identificano in modo univoco ogni riga di una tabella. Ad esempio, è possibile creare una colonna di identità per generare automaticamente numeri di registrazione degli studenti univoci ogni volta che vengono inserite nuove righe nella tabella Studenti. L’identificatore per la prima riga inserita nella tabella è chiamato valore seme. L’incremento, noto anche come proprietà Incremento identità, viene aggiunto al seme per creare un identificatore aggiuntivo che viene generato automaticamente da SQL Server aggiungendo l’incremento al seme. Una colonna di identità viene comunemente utilizzata per i valori delle chiavi primarie.
Le colonne che utilizzano l’attributo IDENTITY devono essere colonne con dati interi:
- decimale
- int
- numerico
- piccolo
- grande
- minuscolo
Non è necessario che la colonna con l’attributo IDENTITY sia impostata sul valore SEED (seed) e specificare il valore di incremento ( incremento ), se non specificato, i valori SEED e INCREMENT sono pari a 1 di default.
Sintassi:
CREATE TABLE <table_name> (column_name data_type IDENTITY(seed_value,increment_value) NOT NULL)
Spiegare:
- valore_seme: il valore seme inizia a inizializzare il valore per l’identità
- increment_value: il valore incrementato ogni volta che il database ha un nuovo record
Per esempio:
CREATE TABLE HRContactPhone (Person_ID int IDENTITY(500,1) NOT NULL, MobileNumber bigint NOT NULL)
Quando si inseriscono i dati nella tabella e si seleziona:
INSERT INTO HRContactPhone(MobileNumber) VALUES (0911222334) INSERT INTO HRContactPhone(MobileNumber) VALUES (0934333123) SELECT * FROM HRContactPhone GO
Identificatore univoco globale
Oltre alla proprietà identity , SQL Server supporta anche identificatori univoci a livello globale. In genere, in un ambiente di rete, più tabelle possono richiedere una colonna che includa un valore univoco comune a livello globale. Si consideri una situazione in cui i dati provenienti da più sistemi di database come un database bancario devono essere consolidati in un’unica posizione. Quando i dati provenienti da tutto il mondo vengono raccolti presso un’autorità centrale per l’aggregazione e il reporting, l’utilizzo di valori univoci a livello globale impedisce ai clienti di paesi diversi di avere lo stesso numero di conto bancario o ID cliente. Per aggirare questo problema, SQL Server fornisce colonne di identificatori univoci a livello globale. Possono essere creati per ogni tabella contenente valori univoci su tutti i computer della rete. Solo sulla colonna Identity e una colonna di identificatore univoco globale possono essere create per ogni tabella. Per generare e utilizzare identificatori univoci a livello globale, per generare l’identificatore viene utilizzata una combinazione di ROWGUIDCOL , uniqueidentifier e le funzioni NEWID().
Per esempio:
CREATE TABLE Emp_CellularPhone(Person_ID uniqueidentifier DEFAULT NEWID() NOT NULL, PersonName varchar(60) NOT NULL)
Quindi inserisci i dati nella tabella:
INSERT INTO Emp_CellularPhone(PersonName) VALUES ('William Smith') SELECT * FROM Emp_CellularPhone GO