DELETE xóa dữ liệu (Bài trước)
(Bài tiếp) Data Type MySQL

Tạo bảng trong SQL - mệnh đề CREATE TABLE

Một cơ sở dữ liệu có thể chứa trong nó hàng trăm bảng, mỗi bảng có 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 có thể thiết lập lưu giá trị kiểu dữ liệu cụ thể như là số, chữ, ngày tháng thậm chí là file (chuỗi nhị phân).

Mệnh đề CREATE TABLE trong SQL dùng để 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_type1(size),
    column_name2 data_type2(size),
    column_name3 data_type3(size),
    ....
    columnN data_typeN(size)
)
  • column_name 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 nếu kiểu dữ liệu đó yêu cầu (cần tham khảo các kiểu dữ liệu tùy hệ quản trị CSDL).

Ví dụ 1: Tạo bảng mới trong SQL

Hãy 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.

Ở đây có một file CSDL mẫu dạng SQLite, bạn có thể tải về nghiên cứu, thực hành: CSDL SQLite mẫu. Hoặc sử dụng trực tiếp công cụ Online: Chạy 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 các hệ quản trị CSDL - 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 SQLite

SQLite cung cấp hệ thống kiểu động, có không bắt buộc chỉ định kiểu khi tạo cột cho bảng, kiểu của cột căn cứ vào kiểu giá trị lưu trữ vào cột. Các dữ liệu lưu vào cột sẽ được SQLite phân tích và lưu trữ là Storage Class (Storage Class là cơ chế lưu dữ liệu của SQLite), có 5 Storage Class:

Storage Class Ý nghĩa
NULL Không có thông tin gì
INTEGER Các số nguyên, có thể có 1, 2,3, 4, 8 byte.
REAL Các số thực 8 byte
TEXT Dữ liệu chuỗi
BLOB Dữ liệu nhị phân

Các kiểu dữ liệu trong chuẩn SQL được sử dụng thì SQLite tự động sử dụng Storage Classe tương ứng, vậy bạn có thể sử dụng các kiểu dữ liệu sau

Kiểu dữ liệu Storage Class
INT INTEGER TINYINT SMALLINT MEDIUMINT BIGINT UNSIGNED BIG INT INT2 INT8 INTEGER
CHARACTER(20) VARCHAR(255) VARYING CHARACTER(255) NCHAR(55) NATIVE CHARACTER(70) NVARCHAR(100) TEXT CLOB TEXT
BLOB BLOB
REAL DOUBLE DOUBLE PRECISION FLOAT REAL
NUMERIC DECIMAL(10,5) BOOLEAN DATE DATETIME NUMERIC (INTEGER và REAL)

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 trong MySQL

Tham khảo chi tiết tại: kiểu dữ liệu trong MySQL

Kiểu dữ liệu MS SQL Server

Tham khảo chi tiết tại: kiểu dữ liệu trong 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 trong SQL, Sử dụng Pk khi tạo bảng

Khóa chính (Pk) 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. Hài dòng dữ liệu khác nhau của bản, thì khóa chính sẽ khác nhau.

Để 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)
);

Nếu muốn thiết lập cột PersonID không được gán NULL thì cho thêm NOT NULL, giá trị cột tự gán tăng dần thì thêm AUTO_INCREMENT

PersonID int NOT NULL AUTO_INCREMENT

Cú pháp trên áp dụng được cho SQLite, MySQL. Còn đối với SQL Server bạn tạo khóa chính với cú pháp như sau: tại cột cần thiết lập khóa chính cho thêm vào PRIMARY KEY

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

Trong SQL Server nếu viết là cột PersonID là

PersonID int NOT NULL PRIMARY KEY

Cột đó là khóa chính và không được phép để NULL.

Trong SQL Server nếu viết là cột PersonID là

PersonID int IDENTITY(1,1) PRIMARY KEY

Cột đó tự động gán giá trị tăng dần.

Chú ý nếu bảng Persons đã có trong database! Bạn có thể xóa nó bằng DROP để tạo lại (hoặc thay đổi cấu trúc bảng đang tồn tại để tránh mất dữ liệu với TABLE ALTER)

DROP TABLE Persons

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ý nhận bài viết mới
DELETE xóa dữ liệu (Bài trước)
(Bài tiếp) Data Type MySQL