Bài này cafedev chia sẻ cho ace về cách tạo bảng(table), xoá, after nó trong SQL.

1. Tạo bảng

Câu lệnh CREATE TABLE được sử dụng để tạo một bảng mới trong cơ sở dữ liệu.

Cú pháp

/*
Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
@author cafedevn
Contact: cafedevn@gmail.com
Fanpage: https://www.facebook.com/cafedevn
Group: https://www.facebook.com/groups/cafedev.vn/
Instagram: https://instagram.com/cafedevn
Twitter: https://twitter.com/CafedeVn
Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/
Pinterest: https://www.pinterest.com/cafedevvn/
YouTube: https://www.youtube.com/channel/UCE7zpY_SlHGEgo67pHxqIoA/
*/

CREATE TABLE table_name (
    column1 datatype,
    column2 datatype,
    column3 datatype,
   ....
); 

Các tham số cột(column) chỉ định tên của các cột trong bảng.

Tham số kiểu dữ liệu(datatype) chỉ định loại dữ liệu mà cột có thể giữ (ví dụ: varchar, số nguyên, ngày, v.v.).

Mẹo: Để biết tổng quan về các kiểu dữ liệu có sẵn, hãy truy cập Tài liệu tham khảo về kiểu dữ liệu đầy đủ của chúng tôi.

Ví dụ

Ví dụ sau tạo một bảng có tên “Persons” có năm cột: PersonID, LastName, FirstName, Address và City:

/*
Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
@author cafedevn
Contact: cafedevn@gmail.com
Fanpage: https://www.facebook.com/cafedevn
Group: https://www.facebook.com/groups/cafedev.vn/
Instagram: https://instagram.com/cafedevn
Twitter: https://twitter.com/CafedeVn
Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/
Pinterest: https://www.pinterest.com/cafedevvn/
YouTube: https://www.youtube.com/channel/UCE7zpY_SlHGEgo67pHxqIoA/
*/

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

Cột PersonID có kiểu int và sẽ chứa một số nguyên.

Các cột LastName, FirstName, Address và City thuộc loại varchar và sẽ chứa các ký tự và độ dài tối đa cho các trường này là 255 ký tự.

Bảng “Persons” trống bây giờ sẽ trông như thế này:

PersonIDLastNameFirstNameAddressCity
     

Mẹo: Bảng “Người” trống hiện có thể được lấp đầy bằng dữ liệu bằng câu lệnh SQL INSERT INTO

Tạo bảng bằng bảng khác

Bản sao của bảng hiện có cũng có thể được tạo bằng cách sử dụng CREATE TABLE.

Bảng mới có các định nghĩa cột giống nhau. Tất cả các cột hoặc các cột cụ thể có thể được chọn.

Nếu bạn tạo bảng mới bằng bảng hiện có, bảng mới sẽ được lấp đầy bằng các giá trị hiện có từ bảng cũ

Cú pháp

CREATE TABLE new_table_name AS
    SELECT column1, column2,...
    FROM existing_table_name
    WHERE ....; 

Ví dụ: SQL sau tạo một bảng mới có tên “TestTables” (là bản sao của bảng “Customers”):

 CREATE TABLE TestTable AS
SELECT customername, contactname
FROM customers;

2. Xoá bảng

Câu lệnh DROP TABLE được sử dụng để thả một bảng hiện có trong cơ sở dữ liệu.

Cú pháp

DROP TABLE table_name; 

Lưu ý: Hãy cẩn thận trước khi đánh rơi bàn. Xóa bảng sẽ làm mất thông tin đầy đủ được lưu trữ trong bảng!

Ví dụ:

Câu lệnh SQL sau loại bỏ bảng hiện có “Shippers”:

DROP TABLE Shippers;

SQL TRUNCATE TABLE

Câu lệnh TRUNCATE TABLE được sử dụng để xóa dữ liệu bên trong bảng, nhưng không xóa chính bảng đó.

TRUNCATE TABLE table_name; 

3. ALTER TABLE trong SQL

Câu lệnh ALTER TABLE được sử dụng để thêm, xóa hoặc sửa đổi các cột trong bảng hiện có.

Câu lệnh ALTER TABLE cũng được sử dụng để thêm và bỏ các ràng buộc khác nhau trên một bảng hiện có.

  • ALTER TABLE – ADD Column

Để thêm một cột trong bảng, hãy sử dụng cú pháp sau:

ALTER TABLE table_name
ADD column_name datatype; 

SQL sau thêm cột “Email” vào bảng “Customers”:

ALTER TABLE Customers
ADD Email varchar(255);
  • ALTER TABLE – DROP COLUMN

Để xóa một cột trong bảng, hãy sử dụng cú pháp sau (lưu ý rằng một số hệ thống cơ sở dữ liệu không cho phép xóa một cột):

ALTER TABLE table_name
DROP COLUMN column_name; 

SQL sau sẽ xóa cột “Email” khỏi bảng “Customers”:

Ví dụ:

ALTER TABLE Customers
DROP COLUMN Email;
  • ALTER TABLE – ALTER/MODIFY COLUMN

Để thay đổi kiểu dữ liệu của một cột trong bảng, hãy sử dụng cú pháp sau:

SQL Server / MS Access:

ALTER TABLE table_name
ALTER COLUMN column_name datatype; 

My SQL / Oracle (prior version 10G):

ALTER TABLE table_name
MODIFY COLUMN column_name datatype; 

Oracle 10G and later:

ALTER TABLE table_name
MODIFY column_name datatype; 

Ví dụ: SQL ALTER TABLE

Bảng Persions:

IDLastNameFirstNameAddressCity
1LinhNguyên30 Nguyễn hữu thọHCM
2HồLong25 Đinh Bộ LĩnhHN
3Hoá17 Văn HoáDN

Bây giờ chúng ta muốn thêm một cột có tên “DateOfBirth” trong bảng “Persions”.

Chúng tôi sử dụng câu lệnh SQL sau:

ALTER TABLE Persons
ADD DateOfBirth date; 

Lưu ý rằng cột mới, “DateOfBirth”, thuộc loại ngày tháng và sẽ chứa một ngày tháng. Kiểu dữ liệu chỉ định loại dữ liệu mà cột có thể chứa. Để có tài liệu tham khảo đầy đủ về tất cả các kiểu dữ liệu có sẵn trong MS Access, MySQL và SQL Server, hãy truy cập tài liệu tham khảo Kiểu dữ liệu đầy đủ của chúng tôi.

Bảng “Persions” bây giờ sẽ trông như thế này:

ALTER TABLE Persons
ADD DateOfBirth date; 

Lưu ý rằng cột mới, “DateOfBirth”, thuộc loại ngày tháng và sẽ chứa một ngày tháng. Kiểu dữ liệu chỉ định loại dữ liệu mà cột có thể chứa. Để có tài liệu tham khảo đầy đủ về tất cả các kiểu dữ liệu có sẵn trong MS Access, MySQL và SQL Server, hãy truy cập tài liệu tham khảo Kiểu dữ liệu đầy đủ của chúng tôi.

Bảng “Persions” bây giờ sẽ trông như thế này:

IDLastNameFirstNameAddressCityDateOfBirth

Ví dụ: Thay đổi Data Type

Bây giờ chúng ta muốn thay đổi kiểu dữ liệu của cột có tên “DateOfBirth” trong bảng “Persons”.

Chúng tôi sử dụng câu lệnh SQL sau:

ALTER TABLE Persons
ALTER COLUMN DateOfBirth year; 

lưu ý rằng cột “DateOfBirth” hiện thuộc loại năm và sẽ giữ một năm ở định dạng hai hoặc bốn chữ số.

Ví dụ: Xoá COLUMN

Tiếp theo, chúng tôi muốn xóa cột có tên “DateOfBirth” trong bảng “Persions”.

Chúng tôi sử dụng câu lệnh SQL sau:

ALTER TABLE Persons
DROP COLUMN DateOfBirth;

Full series tự học SQL từ cơ bản tới nâng cao tại đây nha.

Nếu bạn thấy hay và hữu ích, bạn có thể tham gia các kênh sau của cafedev để nhận được nhiều hơn nữa:

Chào thân ái và quyết thắng!

Đăng ký kênh youtube để ủng hộ Cafedev nha các bạn, Thanks you!