Database
 sql >> Baza danych >  >> RDS >> Database

Jak utworzyć klucz podstawowy w SQL?

Problem:

Chcesz utworzyć klucz podstawowy dla tabeli w bazie danych.

Przykład:

Potrzebujemy klucza podstawowego dla tabeli o nazwie product .

Rozwiązanie 1 (nowa tabela):

CREATE TABLE product (
id INT PRIMARY KEY,
name VARCHAR(100) NOT NULL,
producer VARCHAR(100) NOT NULL,
price DECIMAL(7,2)
);

Dyskusja:

Aby utworzyć nową tabelę z kolumną zdefiniowaną jako klucz podstawowy, możesz użyć słowa kluczowego PRIMARY KEY na końcu definicji tej kolumny. W naszym przykładzie tworzymy tabelę product za pomocą CREATE TABLE klauzulę, z nazwami kolumn i odpowiadającymi im typami danych w nawiasach. Jako klucz podstawowy tej tabeli wybieramy identyfikator kolumny, dlatego wyznaczamy PRIMARY KEY na końcu definicji tej kolumny.

Pamiętaj, że możesz utworzyć tylko jeden klucz podstawowy dla danej tabeli.

Rozwiązanie 2 (nowa tabela):

CREATE TABLE product (
name VARCHAR(100) NOT NULL,
producer VARCHAR(100) NOT NULL),
price DECIMAL(7,2),
PRIMARY KEY(name, producer)
);

Dyskusja:

Innym sposobem zdefiniowania klucza podstawowego podczas tworzenia nowej tabeli jest użycie PRIMARY KEY klauzula na końcu definicji kolumn. W takim przypadku wyznaczamy jedną lub więcej kolumn jako argument PRIMARY KEY klauzula; te kolumny stają się kluczem podstawowym tabeli.

Zauważ, że to podejście pozwala na tworzenie kluczy podstawowych z wieloma kolumnami. W tym przykładzie klucz podstawowy tabeli product składa się z dwóch kolumn:name i producer .

Rozwiązanie 3 (istniejąca tabela):

ALTER TABLE product
ADD PRIMARY KEY (id);

Dyskusja:

Możliwe jest również zdefiniowanie klucza podstawowego dla istniejącej tabeli, która nie ma jeszcze klucza podstawowego.

Tutaj tabela jest zmieniana za pomocą ALTER TABLE klauzula. Tabela (w naszym przykładzie product ) ma nazwę po słowie kluczowym ALTER TABLE , a następnie ADD PRIMARY KEY klauzula następuje z nazwą kolumny, która ma być użyta jako klucz podstawowy. Zwróć uwagę, że tabela musi już istnieć przed wykonaniem tego polecenia, a tabela nie może mieć jeszcze klucza podstawowego.

Rozwiązanie 4 (istniejąca tabela, ograniczenie klucza podstawowego):

ALTER TABLE product
ADD CONSTRAINT PK_product_id PRIMARY KEY (id);

Dyskusja:

Użyj takiego zapytania, jeśli chcesz nazwać ograniczenie klucza podstawowego dla istniejącej tabeli. Tutaj ograniczenie klucza podstawowego, PK_product_id , jest generowany z kolumny id . Jeśli nie określisz nazwy ograniczenia, baza danych wygeneruje domyślną nazwę ograniczenia (nazwa będzie się różnić w zależności od bazy danych).


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SCD typu 4

  2. Nieoczekiwany efekt uboczny dodania filtrowanego indeksu

  3. Jak obsługiwać dzielenie przez zero w SQL?

  4. Najlepsze oprogramowanie bazodanowe dla programistów (edycja 2022)

  5. Omówienie polecenia DBCC SHRINKFILE