Database
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Database

Cách tạo khóa chính trong SQL

Vấn đề:

Bạn muốn tạo khóa chính cho một bảng trong cơ sở dữ liệu.

Ví dụ:

Chúng tôi muốn có khóa chính cho bảng có tên product .

Giải pháp 1 (bảng mới):

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

Thảo luận:

Để tạo một bảng mới với một cột được xác định là khóa chính, bạn có thể sử dụng từ khóa PRIMARY KEY ở cuối định nghĩa của cột đó. Trong ví dụ của chúng tôi, chúng tôi tạo bảng product sử dụng CREATE TABLE mệnh đề, với tên của các cột và kiểu dữ liệu tương ứng của chúng trong dấu ngoặc đơn. Chúng tôi chọn id cột làm khóa chính của bảng này, vì vậy chúng tôi chỉ định PRIMARY KEY ở cuối định nghĩa của cột này.

Hãy nhớ rằng bạn chỉ có thể tạo một khóa chính cho một bảng nhất định.

Giải pháp 2 (bảng mới):

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

Thảo luận:

Một cách khác để xác định khóa chính trong quá trình tạo bảng mới là sử dụng PRIMARY KEY mệnh đề ở cuối các định nghĩa cột. Trong trường hợp này, chúng tôi chỉ định một hoặc nhiều cột làm đối số cho PRIMARY KEY mệnh đề; các cột này trở thành khóa chính cho bảng.

Lưu ý rằng cách tiếp cận này cho phép các khóa chính được tạo với nhiều cột. Trong ví dụ này, khóa chính cho bảng product được tạo bởi hai cột:nameproducer .

Giải pháp 3 (bảng hiện có):

ALTER TABLE product
ADD PRIMARY KEY (id);

Thảo luận:

Cũng có thể xác định khóa chính cho một bảng hiện có chưa có khóa chính.

Ở đây, bảng được thay đổi bằng cách sử dụng ALTER TABLE mệnh đề. Bảng (trong ví dụ của chúng tôi, product ) được đặt tên theo từ khóa ALTER TABLE , rồi đến ADD PRIMARY KEY mệnh đề theo sau với tên của cột được sử dụng làm khóa chính. Lưu ý rằng bảng phải tồn tại trước khi lệnh này được thực thi và bảng không được có khóa chính.

Giải pháp 4 (bảng hiện có, ràng buộc khóa chính):

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

Thảo luận:

Sử dụng một truy vấn như thế này nếu bạn muốn đặt tên cho một ràng buộc khóa chính cho một bảng hiện có. Đây, ràng buộc khóa chính, PK_product_id , được tạo từ cột id . Nếu bạn không chỉ định tên ràng buộc, cơ sở dữ liệu sẽ tạo một tên ràng buộc mặc định (tên này sẽ thay đổi theo cơ sở dữ liệu).


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mô hình Cơ sở dữ liệu cho Khảo sát Trực tuyến. Phần 4

  2. Cách xóa cơ sở dữ liệu trong cPanel

  3. Cách tìm Bản ghi với NULL trong một cột

  4. Cải thiện hỗ trợ cho việc xây dựng lại số liệu thống kê song song

  5. 10 lý do hàng đầu tại sao bạn nên học SQL