Mysql cơ bản trên Ubuntu (Phần II)
Bài đăng này đã không được cập nhật trong 7 năm
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.
All rights reserved