Web888.vn
  • Shop
  • Blog
Đăng nhập
  • Đăng nhập / Đăng ký

Please enter key search to display results.

Home
  • Microsoft SQL Server
Tabella dei vincoli (vincolo) SQL Server forte

Tabella dei vincoli (vincolo) SQL Server forte

  • 12-09-2022
  • Toanngo92
  • 0 Comments

Mục lục

  • Introduzione dei vincoli (vincoli)
  • CHIAVE PRIMARIA (Chiave primaria)
  • UNICO (Unico)
  • CHIAVE ESTERA (Chiave straniera)
  • DAI UN’OCCHIATA
  • NON NULLO

Introduzione dei vincoli (vincoli)

Una delle funzioni importanti in SQL Server è mantenere e rafforzare l’integrità dei dati. Esistono diversi mezzi per raggiungere questo obiettivo, ma uno dei metodi più comunemente usati e preferiti è utilizzare i vincoli. Un vincolo è un attributo assegnato a una colonna o a un insieme di colonne in una tabella per impedire l’immissione di un qualche tipo di valore di dati incoerente. I vincoli vengono utilizzati per applicare le regole della logica aziendale e imporre l’integrità dei dati.

I vincoli possono essere creati durante la creazione della tabella, fanno parte della definizione della tabella, possono essere inclusi nella tabella durante la creazione o inclusi dopo la creazione.I vincoli possono essere classificati come vincoli di colonna e vincoli di tabella:

  • Vincoli di tabella: possono essere applicati a più colonne in una tabella ed è dichiarato indipendente dalla definizione di colonna. Il vincolo di tabella deve essere utilizzato quando è presente più di una colonna in un vincolo
  • Vincolo di colonna: indicato come parte della definizione di una colonna e si applica solo a quella colonna.

Tipi di vincoli in SQL Server:

  • CHIAVE PRIMARIA
  • UNICO
  • CHIAVE STRANIERA
  • DAI UN’OCCHIATA
  • NON NULLO

CHIAVE PRIMARIA (Chiave primaria)

una tabella ha in genere una chiave primaria costituita da una colonna univoca o da una combinazione di colonne per identificare in modo univoco ogni riga della tabella. Il vincolo PRIMARY KEY viene utilizzato per generare una chiave primaria allo scopo di garantire l’integrità dell’entità nella tabella.

Nota: in una tabella è possibile creare solo una CHIAVE PRIMARIA.

Due righe in una tabella non possono avere lo stesso valore di chiave primaria e una colonna che è una chiave primaria non può avere un valore NULL . Pertanto, quando un vincolo di chiave primaria viene aggiunto alle colonne della tabella esistenti, SQL Server verifica se vengono seguite le regole per la chiave primaria. Se le colonne esistenti non sono conformi alle regole della chiave primaria, il vincolo non verrà aggiunto e verrà restituito un errore.

Documenti: https://docs.microsoft.com/en-us/sql/relational-databases/tables/create-primary-keys?view=sql-server-ver15

Sintassi per aggiungere la chiave primaria alla colonna durante l’aggiunta della tabella:

CREATE TABLE <table_name> (Column_Name datatype PRIMARY KEY [,column_list])

Per esempio:

create database empDB GO use empDB GO create table EmpContactPhone (Employee_ID int primary key, MobileNumber bigint, serviceProvider varchar(30), LandlineNumber bigint)

Dopo aver eseguito correttamente il comando, il database empDB viene creato con la colonna Employee_ID come chiave primaria:

Sintassi per aggiungere la chiave primaria alla colonna durante la modifica della tabella:

ALTER TABLE <table_name> ADD PRIMARY KEY (<column_name>)

Per esempio:

create database empDB GO use empDB GO create table EmpContactPhone (Employee_ID int, MobileNumber bigint, serviceProvider varchar(30), LandlineNumber bigint) use empDB GO alter table EmpContactPhone alter column Employee_ID int not null; GO alter table EmpContactPhone ADD PRIMARY KEY(Employee_ID) ;

UNICO (Unico)

I vincoli univoci vengono utilizzati per garantire che solo i valori univoci vengano inseriti in una colonna o in un insieme di colonne. Consente agli sviluppatori di assicurarsi che non vengano inseriti valori duplicati. Le chiavi primarie sono sempre univoche. Le chiavi UNIQUE impongono l’integrità dell’entità perché una volta applicati i vincoli, nessuna riga nella tabella può avere gli stessi valori per le colonne. Il vincolo UNIQUE consente valori null. Una tabella può avere più di un vincolo UNIQUE.

Sintassi:

create table <table_name> ([column_list,] <column_name> <data_type> UNIQUE [,column_list])

Per esempio:

create table EmpContactPhoneUnique (Employee_ID int, MobileNumber bigint unique, serviceProvider varchar(30), LandlineNumber bigint)

Con la sintassi precedente, quando si inseriscono dati nella colonna MobileNumber se sono presenti duplicati diversi da , SQL riporterà un errore, ad esempio:

insert into EmpContactPhoneUnique values (1,0782222567,'vinaphone','84') insert into EmpContactPhoneUnique values (2,0782222567,'vinaphone','84')

CHIAVE ESTERA (Chiave straniera)

Una chiave esterna in una tabella è una colonna che punta a una chiave primaria oa una colonna univoca in una tabella. I vincoli di chiave esterna vengono utilizzati per imporre l’integrità referenziale. Una chiave esterna può essere intesa come una relazione tra due tabelle per formare uno schema di database relazionale.

Nota: la chiave esterna di questa tabella deve essere associata alla chiave primaria di un’altra tabella, altrimenti l’istruzione di inizializzazione darà un errore

Documenti: https://docs.microsoft.com/en-us/sql/relational-databases/tables/create-foreign-key-relationships?view=sql-server-ver15

La sintassi per le chiavi esterne è la seguente:

CREATE TABLE <table_name1>([column_list,]) <column_name> <datatype> FOREIGN KEY REFFERENCES <table_name> (<pk_column_name> [,column_list])

Spiegare:

  • nome_tabella: il nome della tabella a cui fa riferimento la colonna della chiave primaria
  • <pk_column_name>: nome della colonna della chiave primaria della tabella

Per esempio:

create database empDB GO use empDB GO create table EmpContactPhone (Employee_ID int, MobileNumber bigint, serviceProvider varchar(30), LandlineNumber bigint) use empDB GO alter table EmpContactPhone alter column Employee_ID int not null; GO alter table EmpContactPhone ADD PRIMARY KEY(Employee_ID) ; create table EmpPhoneExpenses (Expense_ID int primary key identity, Employee_ID int FOREIGN KEY REFERENCES EmpContactPhone(Employee_ID),Amount bigint)
Database di diagrammi che mostra il contatto con chiave esterna

Nell’esempio precedente, comprendiamo che la colonna Employee_ID della tabella EmpContactPhone ha una chiave esterna e la associamo alla colonna Employee_ID che è la chiave primaria della tabella EmpContactPhone .

DAI UN’OCCHIATA

Questo vincolo viene utilizzato per verificare il limite di valori che possono essere inseriti nella colonna. Il vincolo CHECK impone l’integrità dei dati.

Ad esempio, potrebbe essere introdotto un vincolo di verifica se il valore inserito nella colonna che rappresenta l’età del votante deve essere maggiore o uguale a 18.

Se i dati immessi per la colonna non corrispondono alla condizione, l’inserimento avrà esito negativo.
Il vincolo di controllo funziona specificando una condizione di ricerca, che può restituire VERO, FALSO o non definito. I valori che restituiscono FALSO verranno rifiutati. È possibile specificare più vincoli TEST per una singola colonna. Un singolo vincolo CHECK può essere applicato anche a più colonne creandolo a livello di tabella.

Sintassi:

Documenti: https://docs.microsoft.com/en-us/sql/relational-databases/tables/create-check-constraints?view=sql-server-2017

Per esempio:

create table Employee (ID int primary key identity, Name nvarchar(30), Phone varchar(30), Age int check (Age > 18))

Il passaggio successivo, prova a testare i dati di inserimento nella tabella dei dipendenti con dati che violano il vincolo:

insert into Employee values (N'Toan Ngo Vinh','0911111111',15)
Errore restituito da SQL Server in caso di violazione del vincolo

NON NULLO

Il vincolo not null garantisce che il valore di una colonna non possa essere null. Utilizzato per garantire l’integrità e la logica dei dati, in modo simile al vincolo CHECK

Bài viết liên quan:

Tabella (tabella) in SQL Server
Introduzione ai modelli di database, introduzione al concetto di RDBMS (Sistema di gestione di database correlato)
Modello entità-relazionale (modello ER) e normalizzazione dei dati (normalizzazione)

THÊM BÌNH LUẬN Cancel reply

Dịch vụ thiết kế Wesbite

NỘI DUNG MỚI CẬP NHẬT

Dati JSON in SQL Server

Funzionalità avanzate di SQL in SQL Server 2019

Presentazione di Azure SQL

Installa manualmente PHP su sistemi operativi Linux e Unix

Installa PHP manualmente su Mac OS

Giới thiệu

web888.vn là chuyên trang chia sẻ và cập nhật tin tức công nghệ, chia sẻ kiến thức, kỹ năng. Chúng tôi rất cảm ơn và mong muốn nhận được nhiều phản hồi để có thể phục vụ quý bạn đọc tốt hơn !

Liên hệ quảng cáo: [email protected]

Kết nối với web888

© web888.vn - Tech888 Co .Ltd since 2019

Đăng nhập

Trở thành một phần của cộng đồng của chúng tôi!
Registration complete. Please check your email.
Đăng nhập bằng google
Đăng kýBạn quên mật khẩu?

Create an account

Welcome! Register for an account
The user name or email address is not correct.

Your personal data will be used to support your experience throughout this website, to manage access to your account, and for other purposes described in our privacy policy.

Registration confirmation will be emailed to you.
Log in Lost your password?

Reset password

Recover your password
Password reset email has been sent.
The email could not be sent. Possible reason: your host may have disabled the mail function.
A password will be e-mailed to you.
Log in Register
×