Mysql cơ bản trên Ubuntu (Phần II)

Link video hướng dẫn video

Tạo bảng Cơ sở dữ liệu

Sau khi chọn cơ sở dữ liệu (database) để thao tác:

use database_name;

Cấu trúc:

CREATE TABLE IF NOT EXISTS table_name(
    <column_name> <data_type> DEFAULT <default_value> [column constraints],
    ...
    <column_name> <data_type> DEFAULT <default_value> [column constraints],
    <table constraint>,
    ...
    <table constraint>
) type = table_type;

Phân tích cấu trúc:

IF NOT EXISTS => Đoạn này là điều kiện chỉ tạo bảng khi chưa có bảng nào trong cơ sở dữ liệu có tên như vậy (tránh trùng). table_name => Tên của bảng. column_name => Tên của cột. data_type => Kiểu dữ liệu của cột. Ví dụ: INT, VARCHAR,... default_value => giá trị mặc định được gán khi khởi tạo hàng mà không có giá trị nào được gán. column constraints => Ràng buộc mức cột. Ví dụ: NOT NULL, PRIMARY KEY, FOREIGN KEY, UNIQUE, AUTO_INCREMENT,... table constraint => Ràng buộc mức bảng, nó tạo ra ràng buộc cho nhiều cột. Ví dụ: (Cũng như cột trừ NOT NULL). table_type => Xác định kiểu bảng dữ liệu khi lưu trữ, để nhắm cho những mục đích lưu trữ khác nhau. Ví dụ: MyISAM, InnoDB, BerkeleyDB, (BDB), MERGE, HEAP...


Ví dụ 1:

CREATE TABLE IF NOT EXISTS demo_table_1(
	follower INT(11) NOT NULL PRIMARY KEY,
	following INT(11)
) ENGINE=InnoDB DEFAULT charset=utf8;

Phân tích ví dụ:

demo_table_1 => Là tên của bảng. follower, following => Là tên của các cột. INT => Kiểu dữ liệu số nguyên (4 bytes) NOT NULL => Là ràng buộc giá trị (value) của cột không được NULL. PRIMARY KEY => Là ràng buộc khóa chính. InnoDB => Kiểu lưu trữ hỗ trợ giao dịch an toàn, hỗ trợ khóa ngoài.


Ví dụ 2:

CREATE TABLE IF NOT EXISTS demo_table(
	number INT(11),
	name VARCHAR(50) NOT NULL,
	rate INT(11) DEFAULT 0,
	secret VARCHAR(50),
	follower INT(11) AUTO_INCREMENT,
	test VARCHAR(50),
	PRIMARY KEY (number),
	UNIQUE (test,secret),
	CONSTRAINT fk_follower FOREIGN KEY (follower)
	REFERENCES demo_table_1 (follower) ON DELETE RESTRICT ON UPDATE CASCADE
)ENGINE=InnoDB DEFAULT CHARSET=utf8;

Phân tích ví dụ: (Phân tích thêm một số thứ chưa có ở ví dụ trên)

VARCHAR => Kiểu dữ liệu chuổi ký tự. AUTO_INCREMENT => Ràng buộc tự động tăng giá trị so với giá trị có hàng có trước trong bảng. UNIQUE => Ràng buộc giá trị mỗi hàng là duy nhất không trùng nhau. CONSTRAINT fk_follower => Đặt tên cho ràng buộc phía trước nó là: fk_follower. Giúp cho việc thông báo lỗi liên quan đến các ràng buộc, hay khi thao tác với các ràng buộc. FOREIGN KEY => Ràng buộc khóa ngoài. REFERENCES demo_table_1 (follower) => Tạo một số ràng buộc liên quan đến khóa ngoài tại cột follower của bảng demo_table_1. ON DELETE RESTRICT => Không cho xóa hàng khi còn có tham chiếu tới. ON UPDATE CASCADE => Khi dữ liệu bảng được tham chiếu thay đổi sẽ tự động cập nhật dữ liệu cho bảng tham chiếu tới. Ở Ví dụ này là khi thay đổi follower tại bảng demo_table_1 thì follower trên bảng demo_table sẽ được cập nhật.

Để hiển thị thông tin về bảng:

DESCRIBE table_name;

Ví dụ:

DESCRIBE demo_table_1;

Kết quả:

Field Type Null Key Default Extra
follower int(11) NO PRI NULL
following int(11) YES NULL

Insert dữ liệu vào bảng

Cấu trúc

insert into `table_name`
(`colunm_1`, `colunm_2`, ..., `colunm_n` )
values 
(<value_11>, <value_12>, ..., <value_1n>),
(<value_21>, <value_22>, ..., <value_2n>),
...
(<value_n1>, <value_n2>, ..., <value_nn>);

Ví dụ:

insert into `demo_table_1`
(`follower`, `following` )
values 
(11, 12),
(55, 32);

Kết quả:

follower following
11 12
55 32

Xóa bảng

Cấu trúc:

DELETE
FROM table_name
WHERE <condition>

Ví dụ:

DELETE
FROM demo_table_1
WHERE follower = 11;

Update bảng

Cấu trúc:

UPDATE table_name
SET colunm_name = <value>
WHERE <condition>;

Ví dụ:

UPDATE demo_table_1
SET follower = 96
WHERE following = 32 ;

Xóa bảng:

DROP TABLE IF EXISTS demo_table;

Video:

Cảm ơn mọi người đã đọc bài viết. Nếu có bất kỳ ý kiến hay góp ý gì hãy để lại bình luận ở dưới.