sql >> Database >  >> RDS >> Sqlserver

Wat is de primaire sleutelbeperking in de SQL Server-database - SQL Server / T-SQL-zelfstudie, deel 54

Wat is de primaire sleutelbeperking:

Primary Key Constraint is gemaakt om de uniciteit van records/rijen te garanderen. Primary Key Constraint kan worden gemaakt voor een enkele of een set kolommen, zolang de kolom/kolommen geen Null-waarden toestaan.
1) Primary Key Constraint creëert standaard een geclusterde index als deze nog niet bestaat Laten we zeggen dat je een nieuwe tabel aan het maken bent en je hebt een kolom met primaire sleutel toegevoegd, het gaat een geclusterde index maken.
In het onderstaande voorbeeld maken we de tabel dbo.Customer en we hebben CustomerId toegevoegd als primaire sleutelbeperking. Laten we eens kijken welk type index is gemaakt.
USE YourDatabaseName
GO

CREATE TABLE dbo.Customer (
    Customerid INT PRIMARY KEY
    ,FName VARCHAR(100)
    ,LName VARCHAR(100)
    ,SSN VARCHAR(10)
    )
 
 We kunnen de systeemweergave van sys.indexes opvragen om indexinformatie te krijgen 
SELECT *
FROM sys.indexes
WHERE object_name(object_id) = 'Customer'
 
 Zoals u kunt zien, is een geclusterde index gemaakt omdat er eerder geen clusterindex in deze tabel was. De naam voor de geclusterde index is opgemerkt, deze wordt gegenereerd door SQL Server. Het is altijd een goed idee om de juiste naam voor indexen op te geven volgens de naamgevingsconventie/standaarden die uw bedrijf gebruikt. 

2) Als de geclusterde index al is gemaakt op Kolom, Primair Sleutel gaat unieke index maken Als de geclusterde index al aanwezig is op de kolom/kolommen in een tabel en we proberen een primaire sleutel te maken, zal deze een unieke niet-geclusterde index maken.
Laten we de dbo.Customer-tabel verwijderen en opnieuw maken. Omdat we geen geclusterde index kunnen maken voor kolommen die Null-waarden accepteren, moeten we onze Columns Not Null definiëren.
USE YourDatabaseName
GO
Drop table dbo.Customer
GO

CREATE TABLE dbo.Customer (
    Customerid INT Not Null
    ,FName VARCHAR(100)
    ,LName VARCHAR(100)
    ,SSN VARCHAR(10) Not Null
    )

--Create Clustered Index on SSN Column
CREATE CLUSTERED INDEX IX_Customer_SSN 
    ON dbo.Customer (SSN); 


--Create Primary Key on CustomerID
Alter Table dbo.Customer
Add Constraint Pk_Customer_CustomerId Primary Key(CustomerId)
 
 
 
 Laten we eens kijken welk type indexen zijn gemaakt met behulp van de systeemweergave sys.indexes. Er moet één geclusterde index zijn zoals we die hebben gemaakt op SSN en er moet één unieke niet-geclusterde index zijn die moet worden gemaakt door Primary Key Constraint.
Wat is de primaire sleutelbeperking in SQL Server - SQL Server / TSQL-zelfstudie

Videodemo:wat is de beperking van de primaire sleutel in SQL Server en hoe maak je een primaire sleutel

  1. CREATE TABLE in SQL - Alles wat u moet weten over het maken van tabellen in SQL

  2. Hoe ORA-01775 te debuggen:een reeks synoniemen in een lus?

  3. Hoe maak je een schema in Oracle met SQL Developer?

  4. Hoe de som van meerdere kolommen in PostgreSQL te berekenen?