Tìm hiểu về cơ sở dữ liệu MySQL

Tìm hiểu về cơ sở dữ liệu MYSQL

MySQL là một cơ sở dữ liệu quan hệ miễn phí hiện nay đã được hãng Oracle mua lại từ hãng Sun. Nó thường được sử dụng kết hợp với PHP để lưu trữ dữ liệu của ứng dụng website khi người dùng thao tác trên website của chúng ta. Nếu các bạn đã từng học SQL Server một hệ cơ sở dữ liệu quan hệ của Microsoft thì khi tiếp cận với MySQL sẽ dễ dàng hơn, vì chúng vẫn được xây dựng giống nhau về tư tưởng, kiến trúc.

Ở bài viết này mình sẽ hướng dẫn cho các bạn hiểu cơ bản những kiến thức về MySQL, các câu lệnh truy vấn, kiến trúc lưu trữ, … sau đó ở bài viết sau mình sẽ hướng dẫn các bạn kết hợp lập trình PHP để kết nối với cơ sở dữ liệu này để có thể khai thác, truy vấn dữ liệu.

Tìm hiểu về cơ sở dữ liệu MySQL

Tìm hiểu về cơ sở dữ liệu MySQL

Khái niệm về Database, Table và Field.

  • Database: là một CSDL (cơ sở dữ liệu), trong CSDL bao gồm các table
  • Table: là bảng dữ liệu, trong table bao gồm các field
  • Field: là trường dữ liệu.

Để dễ hiểu hơn cho các bạn, mình sẽ ví dụ cho các bạn về bài toán quản lý trung tâm đào tạo tiếng anh và mình có database với tên: friday với các table (bảng) như sau:

Table Name Mô tả
tbl_classes Bảng lớp học
tbl_students Bảng học viên
tbl_teachers Bảng giảng viên
tbl_scores Bảng điểm

Trong database friday này lưu trữ 4 bảng để lưu trữ dữ liệu của một trung tâm đào tạo tiếng anh. Mỗi table lại lưu trữ các field (trường dữ liệu) với các kiểu dữ liệu khác nhau. Mình sẽ ví dụ cho các bạn về bảng: tbl_students học viên như sau:

Field Name Kiểu dữ liệu Mô tả
student_id integer Số thứ tự học viên (Theo thứ tự tăng dần)
student_user varchar(25) Tài khoản đăng nhập
student_pass varchar(32) Mật khẩu đăng nhập
student_fullname varchar(50) Họ tên học viên
student_gender boolean Giới tính học viên
student_email varchar(64) Email của học viên
student_phone varchar(15) Số điện thoại liên hệ của học viên

Như chúng ta thấy, cấu trúc của MySQL là: Database -> Table -> Field.

Ngoài ra, các field có nhiều kiểu dữ liệu khác nữa như BLOB, date, …  Tương tự với các table khác, khi phân tích thiết kế cơ sở dữ liệu, chúng ta cần lưu trữ cái gì thì tạo ra table và các field để lưu trữ chúng.

Câu lệnh truy vấn cơ sở dữ liệu

1. Lệnh: Insert

Lệnh Insert là câu lệnh SQL dùng để chèn một bản ghi vào table

Cú pháp:

INSERT INTO table_name (field1, field2) VALUES (‘value1’, ‘value2’);

  • table_name: là tên của bảng
  • field: là trường dữ liệu, các field được tách nhau bởi dấu phẩy
  • value: là giá trị tương ứng với các field cũng được tách nhau bởi dấu phẩy

Ví dụ:

2. Lệnh Update

Lệnh Update là câu lệnh SQL dùng để cập nhật giá trị cho một hoặc nhiều bản ghi đang có trong bảng (tùy vào điều kiện giới hạn số bản ghi thực hiện của bạn).

Cú pháp:

UPDATE table_name SET field1 = ‘value1’, field2 = ‘value2’ WHERE điều_kiện

  • table_name: là bảng dữ liệu cần cập nhật
  • field = ‘value’: các trường và giá trị tương ứng cần cập nhật
  • WHERE điều_kiện: Điều kiện giới hạn số bản ghi cần thực hiện (nếu không có điều kiện WHERE) MySQL sẽ xử lý toàn bộ các bản ghi trên bảng.

Ví dụ:

Câu lệnh này sẽ thực hiện sửa tên của bản ghi có mã giảng viên = 1, chính là bản ghi mình vừa thực hiện INSERT vào.

3. Lệnh Delete

Lệnh Delete là câu lệnh SQL dùng để xóa một hay nhiều bản ghi

Cú pháp:

DELETE FROM table_name WHERE điều_kiện

  • table_name: là tên bảng dữ liệu cần xóa
  • WHERE điều_kiện: là các điều kiện để giới hạn số bản ghi bị tác động (nếu bỏ trống toàn bộ các bản ghi trong bảng này sẽ bị xóa bỏ)

Ví dụ:

Câu lệnh này sẽ thực hiện xóa bản ghi có mã giảng viên = 1

4. Lệnh SELECT

Câu lệnh SELECT là câu lệnh SQL dùng để truy vấn các bản ghi trong cơ sở dữ liệu của bạn. Đây là câu lệnh SQL được sử dụng nhiều nhất, tùy biến nhất để giải quyết mọi yêu cầu khai thác dữ liệu của bài toán.

Cú pháp:

SELECT field1, field2, FROM table_name WHERE điều_kiện ORDER BY field ASC|field DESC|rand() LIMIT Số bản ghi|Giá trị đầu, giá trị cuối

  • Field1, Field2 là các trường dữ liệu cần truy vấn
  • table_name là bảng dữ liệu cần truy suất
  • WHERE điều_kiện là các điều kiện để có được dữ liệu mong muốn
  • ORDER BY field ASC lệnh sắp xếp dữ liệu tăng dần
  • ORDER BY field DESC lệnh sắp xếp dữ liệu giảm dần
  • ORDER BY rand() lệnh lấy ngẫu nhiên
  • LIMIT số_bản_ghi lấy n bản ghi
  • LIMIT o,n: lấy n bản ghi từ vị trí o

Ví dụ:

Câu lệnh trên sẽ lấy được toàn bộ các trường dữ liệu của mã giảng viên = 1

Lưu ý: Để có thể đơn giản hóa hơn các thao tác quản trị trong MySQL, các bạn có thể xem bài viết: Hướng dẫn sử dụng phpMyAdmin để quản lý MySQL

Lời kết

Trong MYSQL câu lệnh SELECT là câu lệnh cần được chúng ta tìm hiểu sâu nhất. Mỗi một yêu cầu về dữ liệu khác nhau lại có một câu lệnh khác nhau được viết ra. Chúng ta cần phải dựa trên một nền kiến thức cú pháp và tư duy logic để có thể giải quyết được những yêu cầu khai thác dữ liệu đa dạng trên thực tế. Mình sẽ hướng dẫn các bạn chi tiết hơn ở những bài viết sau nhé!. Chúc các bạn có thêm những kiến thức lập trình web bổ ích.