Mysql cơ bản trên Ubuntu (Phần II)
Mysql
44
Tutorial
19
TIL
594
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 1 năm 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 1 năm trước
2 0
Bài viết liên quan
White
11 4
(Link) (Link) (Link) Ở 2 phần tut trước, mình đã hướng dẫn khá chi tiết cách viết một ứng dụng camera có tích hợp chức năng nhận diện khuôn mặ...
HoangPH viết 3 năm trước
11 4
{{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á!