Thao tác với bảng trong MySQL
NỘI DUNG BÀI VIẾT
Trong bài viết trước chúng ta đã tìm hiểu về cách cài đặt MySQL, bài viết này hãy cùng nhau tìm hiểu về các câu lệnh được sử dụng để thao tác với bảng trong MySQL nhé.
Tạo bảng
Câu lệnh CREATE TABLE được sử dụng để tạo một table mới.
Cú pháp rút gọn
CREATE TABLE table_name
(
column1 datatype [ NULL | NOT NULL ],
column2 datatype [ NULL | NOT NULL ],
...
);
Trong đó, table_name là tên của table. column1 và column2 là tên của các cột, datatype là kiểu dữ liệu của từng cột.
Lưu ý: Đây là cú pháp rút gọn, hãy xem cú pháp đầy đủ của câu lệnh CREATE TABLE ở đây: https://dev.mysql.com/doc/refman/5.5/en/create-table.html
Ví dụ
Hãy xem đoạn mã tạo table contacts trong MySQL:
CREATE TABLE contacts
( contact_id INT(11) NOT NULL AUTO_INCREMENT,
last_name VARCHAR(30) NOT NULL,
first_name VARCHAR(25),
birthday DATE,
CONSTRAINT contacts_pk PRIMARY KEY (contact_id)
);
Bảng contacts sẽ có 5 cột và một cột là khoá chính:
- Cột contact_id có kiểu dữ liệu số nguyên (với tối đa 11 chữ số) và không thể chứa giá trị NULL. Giá trị của cột này sẽ được tự động tăng dần (Giá trị đầu tiên là 1, tiếp theo là 2, 3…).
- Cột last_name có kiểu dữ liệu VARCHAR (chuỗi – với tối đa 30 ký tự) và không thể chứa giá trị NULL.
- Cột first_name có kiểu dữ liệu VARCHAR (chuỗi – với tối đa 25 ký tự) và có thể chứa giá trị NULL.
- Cột birthday có kiểu dữ liệu ngày tháng và có thể chứa giá trị NULL.
- Khoá chính của bảng này có tên là contacts_pk và được gán cho cột contact_id.
Trong ví dụ sau đây, chúng ta sử dụng từ khoá DEFAULT để gán giá trị mặc định cho một cột.
CREATE TABLE suppliers
( supplier_id INT(11) NOT NULL AUTO_INCREMENT,
supplier_name VARCHAR(50) NOT NULL,
account_rep VARCHAR(30) NOT NULL DEFAULT 'TBD',
CONSTRAINT suppliers_pk PRIMARY KEY (supplier_id)
);
Trong ví dụ này, cột account_rep có kiểu dữ liệu là chuỗi (với tối đa 30 ký tự), không thể chứa giá trị NULL và mặc định thì giá trị của cột này là ‘TBD’.
Xoá
Câu lệnh DROP TABLE được sử dụng để xoá các table đã tạo trước đó.
Cú pháp rút gọn
DROP TABLE table_name1, table_name2, ...
Trong đó, table_name1 và table_name2 là tên của các table muốn xoá.
Lưu ý: Đây là cú pháp rút gọn, xem cú pháp đầy đủ ở đây: https://dev.mysql.com/doc/refman/5.5/en/drop-table.html
Ví dụ
Đoạn mã sau đây sẽ xoá bảng customers:
DROP TABLE customers;
Đoạn mã sau đây sẽ xoá 2 bảng là customers và suppliers:
DROP TABLE customers, suppliers;
Chỉnh sửa bảng
Câu lệnh ALTER TABLE được sử dụng để chỉnh sửa một table đang tồn tại.
Cú pháp rút gọn để thêm cột mới
ALTER TABLE table_name
ADD new_column_name column_definition;
Trong đó, table_name là tên bảng, new_column_name là tên của cột mới, column_definition là các mô tả cho cột mới (chẳng hạn như kiểu dữ liệu, NULL, giá trị mặc định…).
Ví dụ
Đoạn mã trong ví dụ sau đây sẽ thêm cột last_name vào cho table contacts:
ALTER TABLE contacts
ADD last_name varchar(40) NOT NULL
AFTER contact_id;
Chúng ta cũng có thêm nhiều cột một lúc bằng cách sử dụng cú pháp:
ALTER TABLE table_name
ADD new_column_name column_definition
[ FIRST | AFTER column_name ],
ADD new_column_name column_definition
[ FIRST | AFTER column_name ],
...
;
Ví dụ:
ALTER TABLE contacts
ADD last_name varchar(40) NOT NULL
AFTER contact_id,
ADD first_name varchar(35) NULL
AFTER last_name;
Cú pháp để chỉnh sửa mô tả của một cột
ALTER TABLE table_name
MODIFY column_name column_definition;
Trong đó table_name là tên của bảng, column_name là tên của cột, column_definition là mô tả mới của cột.
Ví dụ, đoạn mã sau sẽ sửa kiểu dữ liệu của cột last_name thành kiểu chuỗi (với tối đa 50 ký tự) và cho phép nó chứa giá trị NULL:
ALTER TABLE contacts
MODIFY last_name varchar(50) NULL;
Chúng ta cũng có thể chỉnh sửa nhiều cột một lúc bằng cách sử dụng cú pháp:
ALTER TABLE table_name
MODIFY column_name column_definition
[ FIRST | AFTER column_name ],
MODIFY column_name column_definition
[ FIRST | AFTER column_name ],
...
;
Cú pháp để xoá một cột trong bảng
ALTER TABLE table_name
DROP COLUMN column_name;
Trong đó, table_name là tên của bảng, column_name là tên của cột muốn xoá.
Ví dụ, đoạn mã sau sẽ xoá cột contact_type trong bảng contacts:
ALTER TABLE contacts
DROP COLUMN contact_type;
Cú pháp để thay đổi tên cột
ALTER TABLE table_name
CHANGE COLUMN old_name new_name
column_definition
Trong đó, table_name là tên bảng, old_name là tên hiện tại của cột, new_name là tên mới muốn đổi thành, column_definition là mô tả của cột.
Ví dụ, đoạn mã sau sẽ đổi tên cột contact_type thành ctype:
ALTER TABLE contacts
CHANGE COLUMN contact_type ctype
varchar(20) NOT NULL;
Cú pháp để đổi tên bảng
ALTER TABLE table_name RENAME TO new_table_name;
Trong đó, table_name là tên hiện tại của bảng, new_table_name là tên mới của bảng.
Ví dụ, đoạn mã sau sẽ đổi tên bảng contacts thành people:
ALTER TABLE contacts
RENAME TO people;
Leave a Reply