Mysql cơ bản trên Ubuntu (Phần II)
Mysql
40
Tutorial
17
TIL
500
White

Hùng Nguyễn Văn viết ngày 22/04/2017

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:

{@youtube: https://youtu.be/hKjFWxrs264}

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.

Bình luận


White
{{ comment.user.name }}
Bỏ hay Hay
{{comment.like_count}}
Male avatar
{{ comment_error }}
Hủy
   

Hiển thị thử

Chỉnh sửa

White

Hùng Nguyễn Văn

6 bài viết.
1 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Cùng một tác giả
White
2 0
Kiểu biến trong Java Biến local Phạm vi trong phương thức, constructor, khối. Tồn tại cùng phương thưc, constructor, khối. Cần có giá trị khởi...
Hùng Nguyễn Văn viết 10 tháng trước
2 0
White
2 0
MongoDB Replication với Docker Bước 1: Lấy 1 image mongo về docker pull mongo Bước 2: Tạo 1 network trong docker tên là mymongocluster doc...
Hùng Nguyễn Văn viết 10 tháng trước
2 0
Bài viết liên quan
Male avatar
19 0
Mysql innodb internal là một chủ đề khá sâu. Bản thân tôi cũng chưa bao quát hết. Bài viết này chỉ cung cấp một cái nhìn sơ lược. Để các bạn khôn...
manhdung viết gần 3 năm trước
19 0
White
23 2
(Ảnh) Tiêu đề chỉ là câu khách :v, thực ra là có một vài điểm về mysql explain mà chắc chưa nhiều bạn biết, tớ cũng hay quên nên note lại cho nhớ ...
LinhPT viết hơn 2 năm trước
23 2
{{like_count}}

kipalog

{{ comment_count }}

bình luận

{{liked ? "Đã kipalog" : "Kipalog"}}


White
{{userFollowed ? 'Following' : 'Follow'}}
6 bài viết.
1 người follow

 Đầu mục bài viết

Vẫn còn nữa! x

Kipalog vẫn còn rất nhiều bài viết hay và chủ đề thú vị chờ bạn khám phá!