Tổng quan về cấu trúc và cú pháp của MySQL.
MySQL là hệ
thống cơ sở dữ liệu quan hệ. Ý nghĩa cơ bản của MySQL là nó có thể lưư trữ
thông tin ở những vùng khác nhau và liên kết chúng lại với nhau. Chúng ta có
thể chứa bất cứ thứ gì trong một cơ sở dữ liệu. Ví dụ như những thông tin liên
quan đến một người: chẳng hạn như first name, last name, address, phone….
MySQL cho phép
bạn tạo những thông tin riêng lẻ trên bảng hoặc những khu vực chứa thông tin
thích hợp. Trong MySQL mỗi bảng bao gồm những trường dữ liệu (field) riêng lẻ.
1.
Cấu trúc MySQL
Bởi vì MySQL là hệ quản lý dữ liệu
quan hệ, nó cho phép chúng ta tạo những bảng thông tin riêng, hoặc những vùng
thông tin thích hợp. Trong hệ thống cơ sở dữ liệu không quan hệ, tất cả những
thông tin được lưu trữ trong một bảng lớn
tạo nên những khó khăn trong việc sắp xếp và chỉ có thể chép dữ liệu mà
bạn muốn. Trong SQL, mỗi bảng bao gồm những phần riêng biệt, biễu diễn mỗi thông tin.
Bạn có thể tạo ra cơ sở dựa trên những loại thông tin mà bạn lưu trữ. Những
bảng riêng biệt của MySQL liên kết với nhau nơi mà giá trị của vùng phổ biến là
như nhau.
Ví dụ: Cho rằng bảng bao gồm tên khách hàng, địa chỉ và số ID, bảng khác
bao gồm số ID, nơi ở, ….Vùng chung là số ID, thông tin được lưu trữ trong hai
bảng riêng biệt sẽ liên kết với nhau nơi mà số ID là như nhau. Điều này cho
chúng ta thông tin về khách hàng cùng lúc.
Khi bạn tạo một bảng ban đầu, bạn cần nói với MySQL server kiểu nào của
thông tin sẽ lưu trữ trong mỗi bảng. Các kiểu khác nhau được cho trong bảng
sau:
Loại
MySQL
|
Diễn
tả
|
Ví
dụ
|
Char(length)
|
Mọi
ký tự đều có thể là loại này, nhưng có chiều dài cố định
|
Trạng
thái của khách hàng có 2 ký tự
|
Varchar(length)
|
Mỗi
ký tự đều có thể trong loại này, dữ liệu có thể thay đổi chiều dài từ 0 đến
255 ký tự.
|
Địa
chỉ của khách hàng có chữ và số, thay đổi trong chiều dài
|
Int(length)
|
Có
chiều dài từ -2147483648 đến 2147483647.
|
Số
sản phẩm trao tay
|
Int(length)
unsigned
|
Lưu trữ số từ 0 đến 4294967295.
|
ID
khách hàng
|
Text
|
Kích
thước dữ liệu là 65536 ký tự.
|
Cho
phép đoạn text dài hơn được lưu trữ, không có loại giới hạn đến 255 ký tự.
|
Decimal(length,
dec)
|
Có
thể lưu trữ số thập phân
|
Giá
cả
|
Enum(“option1”, “option2”,..
|
Lưu
trữ giá trị chắc chắn như đúng hoặc sai
|
Giới
tính của người dùng nam hoặc nữ
|
Date
|
Lưu
trữ ngày như yyyy-mm-dd
|
Ngày
sinh nhật,…
|
Time
|
Lưu
trữ giờ như hh:mm:ss
|
Giờ
một hoạt động mới được đưa vào trang Web
|
Datetime
|
Lưu
trữ ngày và giờ như yyyy-mm-dd hh:mm:ss
|
Ngày
và giờ sau khi người đến thăm trang Web
|
Mặc dù những loại trên đáp ứng được nhu cầu cần thiết, một bảng các kiểu
cho dưới đây cũng thường gặp.
Loại
MySQL
|
Diễn
giải
|
tinyint(length)
|
Lưu
trữ số nguyên từ -128 đến 127 (thêm tham số unsigned thì cho phép lưu trữ từ
0 đến 255)
|
smallint(length)
|
Lưu
trữ số nguyên từ -32768 đến 32767 (thêm tham số unsigned thì cho phép lưu trữ
từ 0 đến 65535)
|
loại
MySQL
|
Diễn
giải
|
mediumint(length)
|
Lưu
trữ số từ -8388608 đến 8388607 (thêm tham số unsigned cho phép lưu trữ từ 0
đến 16777215)
|
bigint(length)
|
Lưu
trữ số từ -9223372036854775808 đến -9223372036854775807 (nếu thêm tham số
unsigned cho phép lưu trữ từ 0 đến 184467440709551615)
|
Tinytext
|
Cho
phép lưu trữ trên 255 ký tự
|
mediumtext
|
Cho
phép lưu trữ trên 1677215 ký tự
|
longtext
|
Cho
phép lưu trữ trên 4294967295 ký tự
|
Blob
|
Bằng
với kiểu text, trừ trường hợp dương khi sắp xếp và so sánh, cho phép lưu trữ
trên 65535 ký tự
|
tinyblob
|
Bằng
với kiểu tinytext, trừ trường hợp dương khi sắp xếp và so sánh
|
mediumblob
|
Bằng
với kiểu mediumtext, trừ trường hợp dương khi sắp xếp và so sánh
|
longblob
|
Bằng
với kiểu longtext, trừ trường hợp dương khi sắp xếp và so sánh
|
year(length)
|
Lưu
trữ một năm trong 4 ký tự mặc định.
|
Trước
tiên, trường sẽ chứa cả chữ và số?
Nếu
trả lời có như varchar, text, char, tinytext, mediumtext, longtext, blob,
tinyblob, mediumblolb, longblob. Sau đó cần quan tâm có bao nhiêu ký tự được
lưu trữ? Nó sẽ biến đổi thế nào?
·
Có bao nhiêu ký tự được lưu trữ? Thay
đổi thế nào?
·
0 đến 255 ký tự, chiều dài thay
đổi: sử dụng varchar nếu bạn muốn xóa tất cả những khoảng trắng, giá trị mặc
định. Sử dụng longtext nếu bạn thay đổi về chiều dài. Sử dụng blob nếu bạn
không giữ về khoảng cách.
·
256->65536 ký tự: Sử dụng text
nếu bạn không cần trường hợp dương trong tìm kiếm, sắp xếp, so sánh. Dùng blob
nếu cần trường hợp dương.
·
65537->1677215 ký tự: Sử dụng
mediumtext nếu bạn không cần trường hợp dương trong tìm kiếm, sắp xếp, so sánh.
Dùng mediumblob nếu cần trường hợp dương.
·
1677216->4294967295 ký tự: Sử
dụng longtext nếu bạn không cần trường hợp dương trong tìm kiếm, sắp xếp, so
sánh. Dùng longblob nếu cần trường hợp dương
Nếu
trả lời có thì có lẽ chứa chữ cái và số, nhưng phải một trong số có giới hạn về
giá trị enum
Nếu
trả lời không, nó bao gồm thời gian, ngày tháng
My SQL server của bạn muốn
biết vùng dữ liệu của bạn có rỗng hay không, bạn dùng NULL hoặc NOT NULL. Nếu
vùng dữ liệu được định nghĩa là NOT NULL thì người dùng bắt buộc phải nhập dữ
liệu vào. Nếu dùng NULL thì vùng dữ liệu sẽ không chứa giá trị gì hết.
MySQl sử dụng INDEXES để
giải quyết việc nghiên cứu dòng thông tin. INDEXES làm việc thế nào? Bạn tưởng
tượng bạn có một cái phòng đầy ắp, toàn những thứ bạn có được mà chưa bao giờ
bạn đụng đến. Bạn muốn tìm lại thông tin gì đó, bạn phải mất khá nhiều thời
gian để làm việc này. Bạn cảm thấy khó chịu và bạn bắt đầu sắp xếp chúng, tổ
chức lại chúng.
Bạn thử tưởng tượng lượng
thông tin được lưu trữ trong bảng, vào thời gian nào đó bạn cần tìm vài thứ,
bạn bắt đầu tìm tất cả những dòng, bạn sẽ làm gì nếu có 10000 dòng? Chuyện gì
sẽ xảy ra?
Bằng cách sử dụng hệ thống
chọn lọc bên trong, MySQl sẽ giúp bạn tìm nhanh chóng và chính xác, nó làm được
điều này nhờ sử dụng INDEXES, cũng được biết như một khóa.
MySQL yêu cầu INDEX trong
mỗi bảng, vì thế có vài thứ được đến. Thông thường, bạn sử dụng khóa chính,
hoặc tạo ra sự duy nhất để giữ dữ liệu riêng lẻ. Trường này phải “not null” và
“unique”
Chúng ta có
thể sử dụng UNIQUE để thể hiện tính độc quyền, không thể chèn thêm dữ liệu, khi
thêm vào chương trình sẽ báo lỗi.
Bạn có thể thiết kế vùng tăng tự động bằng cách dùng lệnh Auto_Increment, ta có thể
đặt lệnh cho bất cứ vùng nào trong bảng.
Bạn có thể làm
những chí định khác khi tạo cơ sở dữ liệu, nhưng tốt hơn cho người sử dụng. Để biết
thêm về danh sách những tham số, bạn có thể tham khảo thêm :www.mysql.com
Những phiên
bản mới gần đây của My SQL thường sử dụng 5 loại chính
. MyISAM
. MERGE
. MEMORY
. InnoDB
. BDB
Các lệnh và
cấu trúc của MySQL thường dùng:
§ . CREATE: Tạo mới một cơ
sở dữ liệu hoặc một bảng
§ . ALTER: Thay đổi bảng
§ . SELECT: Chọn dữ liệu
§ . DELETE: Xóa dữ liệu từ
bảng
§ . DESCRIBE: Cho biết cấu
trúc và chi tiết của bảng
§ . INSERT INTO tablename
VALUES: Đặt giá trị vào bảng
§ . UPDATE: Sửa đổi dữ liệu
trong bảng
§ . DROP: Xóa toàn bộ bàng
hoặc cơ sở dữ liệu
0 nhận xét:
Đăng nhận xét