Câu lệnh SQL CREATE TABLE thêm một bảng mới vào cơ sở dữ liệu. Bạn có thể chỉ định tên các cột trong bảng mới và kiểu dữ liệu mỗi cột lưu trữ. Bạn cũng có thể khai báo các ràng buộc (constraints) liên quan đến cách dữ liệu được biểu diễn trong bảng.
Trước khi chạy truy vấn và lưu trữ dữ liệu trong cơ sở dữ liệu, bạn cần tạo một bảng để chứa dữ liệu. Bảng là nơi lưu trữ tất cả dữ liệu trong cơ sở dữ liệu. Mỗi bảng chứa các cột, mỗi cột chứa dữ liệu về một bản ghi đơn lẻ trong bảng.
Chúng ta dùng câu lệnh CREATE TABLE để tạo bảng mới trong cơ sở dữ liệu (tương tự như câu lệnh CREATE DATABASE để tạo cơ sở dữ liệu). Trong hướng dẫn này, chúng ta sẽ thảo luận cơ bản về bảng trên máy chủ SQL và khám phá cách tạo chúng.
SQL CREATE TABLE
Câu lệnh SQL CREATE TABLE thêm bảng mới vào cơ sở dữ liệu dựa trên cấu trúc bạn đã định nghĩa. Bạn phải chỉ định tên từng cột, các ràng buộc liên quan và kiểu dữ liệu cho mỗi cột. Bạn có thể thay đổi cấu trúc bảng sau khi đã tạo.
Cú pháp câu lệnh CREATE TABLE:
CREATE TABLE ten_bang ( ten_cot kieu_du_lieu rang_buoc, ten_cot1 kieu_du_lieu1 rang_buoc1 );
Bạn có thể thêm bao nhiêu cột tùy ý. Để chỉ định nhiều cột, kết thúc mỗi dòng định nghĩa cột bằng dấu phẩy. Trong cú pháp trên, chúng ta tạo hai cột.
Bạn bắt buộc chỉ định ít nhất: tên từng cột và kiểu dữ liệu cột đó lưu trữ. Tên bảng cũng bắt buộc. Ràng buộc (Constraints) là tùy chọn. Ràng buộc SQL đề cập đến các điều kiện tiên quyết phải đáp ứng trước khi dữ liệu được thêm vào bảng.
Ví dụ CREATE TABLE SQL
Phòng nhân sự yêu cầu tạo bảng cơ sở dữ liệu lưu thông tin nhân viên. Bảng cần lưu các thông tin sau:
- Tên
- Chi nhánh
- Địa chỉ
- Chức danh
- Số giải "nhân viên tháng" đã đạt được
Để tạo bảng này, dùng câu lệnh CREATE TABLE:
CREATE TABLE employees ( name varchar(20), email varchar(50), branch varchar(30), address varchar(75), title varchar(75), employee_month_awards integer );
Chúng ta tạo bảng với 6 cột. 5 cột đầu có kiểu dữ liệu varchar — chuỗi độ dài biến đổi. Nghĩa là chuỗi có thể dài tùy ý, tối đa độ dài đã khai báo.
- Tên: tối đa 20 ký tự.
- Địa chỉ: tối đa 75 ký tự.
- Cột cuối
employee_month_awardslà integer — lưu số giải thưởng mỗi nhân viên nhận được.
Bạn có thể dùng bất kỳ kiểu dữ liệu được công nhận nào: khóa chính (primary key), khóa ngoại (foreign key), varchar, boolean, v.v.
Sau khi tạo bảng, bạn có thể bắt đầu chạy truy vấn và chèn dữ liệu. Nhớ rằng bảng mới tạo sẽ rỗng, bạn cần nạp dữ liệu bằng câu lệnh SQL INSERT.
Tạo bảng SQL từ bảng khác
Điều gì xảy ra nếu bạn muốn tạo bảng sử dụng cấu trúc của bảng khác? SQL cũng cho phép, dùng câu lệnh CREATE TABLE. Bảng mới sẽ có cùng định nghĩa cột. Bạn có thể chỉ định sao chép một phần hoặc tất cả cột từ bảng khác sang bảng mới.
Chúng ta muốn tạo bảng chứa thông tin tất cả cấp điều hành (executives) trong công ty. Bản ghi điều hành đã có trong bảng employees.
Để tạo bảng mới chứa tất cả dữ liệu điều hành từ bảng employees:
CREATE TABLE executives AS SELECT name, email, address WHERE title = 'Executive*' FROM employees;
Cơ sở dữ liệu tạo bảng tên executives, là bản sao của bảng hiện có. Bảng mới bao gồm cột name, email, address từ bảng employee, và chỉ bao gồm dữ liệu từ nhân viên là điều hành.
Nếu bảng employee rỗng, chỉ cấu trúc được sao chép — tên, email, địa chỉ. Nhưng nếu bảng employee có dữ liệu, dữ liệu sẽ được sao chép sang bảng mới. Chỉ bản ghi mà nhân viên là điều hành mới được sao chép.
Vậy bảng mới có danh sách tên, email, địa chỉ của tất cả người có chức danh bắt đầu bằng "Executive".
Kết luận
Câu lệnh SQL CREATE TABLE tạo bảng mới trong cơ sở dữ liệu hiện có. Để dùng câu lệnh này, bạn cần định nghĩa cấu trúc cho mỗi cột sẽ xuất hiện trong bảng mới.
Bạn muốn tìm hiểu thêm về SQL? Xem hướng dẫn How to Learn SQL của chúng tôi. Hướng dẫn chứa danh sách sách hay, tài nguyên trực tuyến và khóa học giúp bạn xây dựng kiến thức SQL.