Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Co to jest ograniczenie klucza podstawowego w bazie danych programu SQL Server — samouczek SQL Server / T-SQL, część 54

Co to jest podstawowe ograniczenie klucza:

Ograniczenie klucza podstawowego jest tworzone w celu zapewnienia niepowtarzalności rekordów/wierszy. Ograniczenie klucza podstawowego można utworzyć na pojedynczej kolumnie lub zestawie kolumn, o ile kolumna/kolumny nie zezwalają na wartości Null.
1) Ograniczenie klucza podstawowego domyślnie tworzy indeks klastrowy, jeśli jeszcze nie istnieje Załóżmy, że tworzysz nową tabelę i dodałeś kolumnę z kluczem podstawowym, będzie ona tworzyć indeks klastrowy.
W poniższym przykładzie tworzymy tabelę dbo.Klient i dodaliśmy Identyfikator klienta jako ograniczenie klucza podstawowego. Sprawdźmy jaki typ indeksu jest tworzony.
USE YourDatabaseName
GO

CREATE TABLE dbo.Customer (
    Customerid INT PRIMARY KEY
    ,FName VARCHAR(100)
    ,LName VARCHAR(100)
    ,SSN VARCHAR(10)
    )
 
 Możemy wysłać zapytanie do widoku systemowego sys.indexes, aby uzyskać informacje o indeksie 
SELECT *
FROM sys.indexes
WHERE object_name(object_id) = 'Customer'
 
 Jak widać, indeks klastrowy jest tworzony, ponieważ wcześniej nie było indeksu klastrowego w tej tabeli. Zauważyliśmy nazwę indeksu klastrowego, jest on generowany przez SQL Server. Zawsze dobrze jest podać właściwą nazwę indeksom zgodnie z konwencją nazewnictwa/standardami, których używa Twoja firma. 

2) Jeśli indeks klastrowany jest już utworzony w kolumnie Kolumna, Podstawowa Kluczem jest utworzenie unikalnego indeksu Jeśli indeks klastrowany jest już obecny w kolumnie/kolumnach w tabeli i spróbujemy utworzyć klucz podstawowy, utworzy on Unique Non-clustered.
Upuśćmy i utwórzmy ponownie tabelę dbo.Customer. Ponieważ nie możemy utworzyć indeksu klastrowego na kolumnach, które akceptują wartości Null, musimy zdefiniować nasze kolumny Not Null.
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)
 
 
 
 Sprawdźmy, jakiego typu indeksy są tworzone za pomocą widoku systemowego sys.indexes. Powinien istnieć jeden indeks klastrowy, tak jak utworzyliśmy w SSN, i powinien istnieć jeden unikalny nieklastrowany, który powinien zostać utworzony przez ograniczenie klucza podstawowego.
Co to jest ograniczenie klucza podstawowego w programie SQL Server — samouczek dotyczący programu SQL Server / TSQL

Wideo demonstracyjne:co to jest ograniczenie klucza podstawowego w SQL Server i jak utworzyć klucz podstawowy

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Użyć liczby zmiennoprzecinkowej lub dziesiętnej dla kwoty w dolarach w aplikacji księgowej?

  2. SQL Server — dynamiczna tabela przestawna — wstrzyknięcie SQL

  3. LEFT JOIN vs. LEFT JOIN w SQL Server

  4. Typy kursorów programu SQL Server — Kursor ZESTAWU KLUCZY | Samouczek SQL Server / Samouczek TSQL

  5. Tworzenie sparametryzowanego VIEW w SQL Server 2008