Tạo bảng SQL CREATE TABLE

Một cơ sở dữ liệu chứa trong nó hàng trăm bảng, mỗi bảng có chứa trong nó các quy tắc riêng nàm trong mô tả cơ sở dữ liệu. Bảng xây dựng theo cấu trúc gồm cột và hàng. Các cột của bảng tương tứng lưu trữ nhiều kiểu dữ liệu khác nhau, có thể là số, chữ, ngày tháng thậm chí là file.

Mệnh đề CREATE TABLE để tạo ra bảng mới. Quy tắc cơ bản nó phải đưa ra định nghĩa tên các cột và kiểu dữ liệu của cột. Cú pháp cơ bản nhất như sau:

CREATE TABLE table_name
(
    column_name1 data_type(size),
    column_name2 data_type(size),
    column_name3 data_type(size),
    ....
    columnN data_type(size)
)
  • column_names là tên các cột muốn tạo trong bảng
  • data_type tham số định nghĩa kiểu dữ liệu mà cột lưu trữ, ví dụ int lưu trữ số nguyên
  • size chỉ ra chiều dài lớn nhất của dữ liệu.

Ví dụ 1: Tạo bảng

Tạo bảng có tên là Persons, bảng đó có các cột: PersionID dữ liệu số nguyên, LastName, FirstName, Address, City là text dài 255 ký tự

CREATE TABLE Persons (
    PersonID int,
    LastName varchar(255),
    FirstName varchar(255),
    Address varchar(255),
    City varchar(255)
);

Sau khi thi hành lệnh trên, SQL sẽ tạo ra bảng, bạn có thể dùng các lệnh SQL khác nhau đã biết để kiểm tra.

Bạn có thể thực hành các câu lệnh SQL ví dụ trên CSDL mẫu SQLite có sẵn tại SQLite và thực hành lệnh SQL

Trong câu lệnh trên bạn có thấy đã sử dụng intvarchar là kiểu dữ liệu cho cột

Kiểu dữ liệu trong SQL

Trong SQL có nhiều kiểu dữ liệu, mỗi hệ CSDL khác nhau (SQLServer, MySQL, Access, SQLite ...) lại thêm vào một số dữ liệu riêng nên khi sử dụng hệ CSDL cần tham khảo hướng dẫn của hệ CSDL đó để biết cụ thể kiểu dữ liệu mà nó hỗ trợ, dưới đây là một số hay dùng

Kiểu dữ liệu trong MySQL

Kiểu Mô tả
CHAR(size) Lưu trữ chuỗi chiều dài cố định (size), tối đa 255 ký tự.
VARCHAR(size) Chuỗi ký tự. Khai báo chiều dài tối đã size tới 255 ký tự. Nếu nhập giá trị > 255 nó tự chuyển sang kiểu TEXT
TINYTEXT Chuỗi ký tự với chiều dài tối đa 255 chữ
TEXT Chuỗi ký tự, dài tối đa 65,535 chữ
BLOB Lưu trữ BLOBs (Binary Large OBjects). Lưu giữ tới 65,535 bytes dữ liệu.
MEDIUMTEXT Chuỗi ký tự, dài tối đa 16,777,215
MEDIUMBLOB Lưu trữ BLOBs (Binary Large OBjects). Lưu được 16,777,215
LONGTEXT Chuỗi ký tự, dài tới 4,294,967,295 chữ
LONGBLOB BLOBs (Binary Large OBjects). Lưu tới 4,294,967,295 byte (4GB)
ENUM(x,y,z,etc.) Cho phép bạn lưu trữ dữ liệu kiểu ENUM, giá trị mộ tả bở ENUM có thể tới 65535 giá trị khác nhau. Nếu giá trị chèn vào không thuộc danh sách giá trị, một giá trị trống được thay thế.
Ví dụ bạn định nghĩa ENUM('red','green','blue') khi tạo cột, thì cột đó có thể gán các gí trị 'red', 'green', 'blue'
SET Tương tự ENUM nhưng mô tả tối đa 64 giá trị
DATE() Ngày dạng YYYY-MM-DD
DATETIME() Ngày giờ dạng YYYY-MM-DD HH:MI:SS
TIMESTAMP() Thời gian UNIX
TIME() Giờ HH:MI:SS
YEAR() Năm 2 số

Kiểu dữ liệu SQLite

Tham khảo danh sách đầy đủ các kiểu dữ liệu SQLite hỗ trợ tại: SQLite

Kiểu dữ liệu MS SQL Server

Tham khảo danh sách đầy đủ các kiểu dữ liệu MS SQL Server hỗ trợ tại: MS SQL Server

Kiểu dữ liệu MS Access

Tham khảo danh sách đầy đủ các kiểu dữ liệu MS Access hỗ trợ tại: MS Access

Khóa chính Primary Key

Khóa chính là giá trị duy nhất cho một bản ghi (dòng) trong bảng. Một bảng có thể định nghĩa một cột là khóa chính Primary, Khóa chính giúp cho việc tìm kiếm, lọc dữ liệu.

Để thiết lập khóa chính khi tạo bảng sử dụng thêm: PRIMARY KEY(tên-cột)

Ví dụ tạo bảng trên, sửa lại và thiết lập PersonID là khóa chính

CREATE TABLE Persons (
    PersonID int,
    LastName varchar(255),
    FirstName varchar(255),
    Address varchar(255),
    City varchar(255),
    PRIMARY KEY(PersonID)
);

Sau khi chạy lệnh trên, bảng được tạo và lức này bạn có thể sử dụng INSERT INTO để chèn dữ liệu

Đăng ký theo dõi ủng hộ kênh