Cách sử dụng CREATE TABLE để tạo bạng, định nghĩa các cột với kiểu dữ liệu trong SQL, sử dụng khóa chính Primary key
Tóm Tắt
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) );
Chạy thử
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 int
và varchar
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) );
Chạy thử
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
Chạy thử
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Ý KÊNH, XEM CÁC VIDEO TRÊN XUANTHULAB
Đăng ký nhận bài viết mới