WEB CƠ BẢN

Những kiến thức cơ bản trong việc viết mã MySQL


- Ở bài học đầu tiên thì các bạn đã được tìm hiểu sơ qua mô hình lưu trữ dữ liệu trong MySQL, nếu muốn lưu trữ dữ liệu thì trước tiên chúng ta cần phải tạo cơ sở dữ liệu (database), kế đến là tạo các bảng (table) nằm bên trong cơ sở dữ liệu, rồi cuối cùng là chèn dữ liệu vào bên trong cái bảng.

MySQL
ID Name Year
ID Name Year
1 Nguyễn Thiên 1993
2 Tiểu Long Nữ 1995
3 Tần Quỳnh 1989
(1) tạo cơ sở dữ liệu
(2) tạo bảng
(3) chèn dữ liệu vào bảng

- Cứ mỗi một "hành động dữ liệu" ở phía trên, nếu muốn thực hiện thì về cơ bản chúng ta cần phải cho thực thi một câu lệnh tương ứng với hành động đó.

1) Tìm hiểu sơ lược về câu lệnh trong MySQL

- Trong hệ quản trị cơ sở dữ liệu MySQL, một câu lệnh sẽ đại diện cho một hành động dữ liệu, chẳng hạn như: tạo cơ sở dữ liệu, xóa cơ sở dữ liệu, tạo bảng, sửa bảng, xóa bảng, chèn hàng vào bảng, cập nhật hàng, xóa hàng, truy xuất dữ liệu từ cơ sở dữ liệu, . . . .

- Thông thường thì một câu lệnh sẽ có ba thành phần chính:

  • Thành phần thứ nhất là các từ khóa.
  • Thành phần thứ hai là những cái tên do chúng ta khai báo.
  • Thành phần thứ ba là một dấu chấm phẩy ; dùng để xác định việc kết thúc câu lệnh.
Ví dụ:

- Bên dưới là một câu lệnh, nó dùng để tạo một cái cơ sở dữ liệu có tên là ThuVienLapTrinh

CREATE DATABASE ThuVienLapTrinh;

- Trong câu lệnh phía trên:

  • CREATE DATABASE là từ khóa, nó mô tả cho chức năng "tạo cơ sở dữ liệu"
  • ThuVienLapTrinh là cái tên do tôi khai báo (bởi vì tôi muốn cơ sở dữ liệu có tên là ThuVienLapTrinh cho nên tôi khai báo như thế)
  • Nằm ở vị trí cuối cùng là một dấu chấm phẩy ; dùng để xác định việc kết thúc câu lệnh.

- Tùy vào mức độ phức tạp của "hành động dữ liệu" mà câu lệnh có thể chứa nhiều từ khóa hoặc nhiều cái tên do chúng ta khai báo.

- Ví dụ: Câu lệnh bên dưới được dùng để tạo một cái bảng có tên là sinhvien, trong cú pháp của nó chứa rất nhiều từ khóa & cái tên.

CREATE TABLE sinhvien(
	mssv INT PRIMARY KEY,
	hoten VARCHAR(255),
	sodienthoai INT,
	thanhpho VARCHAR(255)
);

2) Các quy tắc viết mã lệnh trong MySQL

Vấn đề chữ in hoa & chữ thường

- Trong hệ quản trị cơ sở dữ liệu MySQL thì các từ khóa & cái tên không có phân biệt trường hợp chữ in hoa hay chữ thường, cho nên các bạn muốn viết nó dưới dạng nào cũng được.

Ví dụ:

- Bốn câu lệnh bên dưới đều có chung một ý nghĩa.

CREATE DATABASE THUVIENLAPTRINH;
create database thuvienlaptrinh;
CrEAte daTaBAsE thuVienLAptrInh;
CREATE DATABASE thuvienlaptrinh;

- Tuy nhiên, thay vì viết bừa bãi thì chúng tôi khuyến khích các bạn nên viết các từ khóa ở dạng chữ in hoa, còn những cái tên do ta khai báo thì viết ở dạng chữ thường (giống như câu lệnh thứ tư trong ví dụ trên), bởi vì đó là một tiêu chuẩn trình bày được đại đa số lập trình viên áp dụng, nó giúp chúng ta phân biệt được đâu là từ khóa của hệ thống, còn đâu là những cái tên do chúng ta khai báo.

Vấn đề khoảng trắng & ngắt xuống dòng.

- Trong hệ quản trị cơ sở dữ liệu MySQL thì vấn đề khoảng trắng & ngắt xuống dòng nằm ở giữa các thành phần không quá gò bó, chúng ta có thể thêm một hoặc nhiều dấu khoảng trắng (ngắt xuống dòng) tùy thích, miễn sao các bạn cảm thấy dễ nhìn là được.

Ví dụ:

- Ba câu lệnh bên dưới đều có chung một ý nghĩa.

CREATE DATABASE thuvienlaptrinh;
CREATE
DATABASE
thuvienlaptrinh;
CREATE

          DATABASE



                                                           thuvienlaptrinh;

Quy tắc đặt tên

- Khi chúng ta khai báo một cái tên (ví dụ như khi khai báo tên của cơ sở dữ liệu mà mình muốn tạo) thì cái tên đó chỉ được phép chứa các ký tự là CHỮ CÁI, SỐ, DẤU GẠCH DƯỚI, nó tuyệt đối không được chứa các ký tự đặc biệt hoặc bắt đầu bằng một chữ số.

Ví dụ:
CREATE DATABASE thu5vien4;   --ĐÚNG
CREATE DATABASE _thu5vien;   --ĐÚNG
CREATE DATABASE _thu_vien;   --ĐÚNG
CREATE DATABASE 5thu4vien;   --SAI (vì cái tên bắt đầu bằng một chữ số)
CREATE DATABASE thu*vien$;   --SAI (vì cái tên có chứa ký tự đặt biệt)

3) Tìm hiểu sơ lược về kịch bản trong MySQL

- Kịch bản (hay còn được gọi là đoạn mã) là một tập hợp gồm nhiều câu lệnh MySQL, khi chúng ta cho chạy một cái kịch bản thì các câu lệnh MySQL nằm ở bên trong cái kịch bản sẽ được thực thi lần lượt theo thứ tự từ trên xuống dưới, nếu gặp phải câu lệnh bị lỗi thì việc thực thi sẽ kết thúc.

Ví dụ:

- Cái kịch bản bên dưới có năm câu lệnh. Trong đó, câu lệnh thứ nhất dùng để tạo một cái bảng có tên là SinhVien, bốn câu lệnh còn lại dùng để chèn các hàng vào bên trong cái bảng.

- Khi chúng ta cho chạy cái kịch bản thì chỉ có ba câu lệnh đầu tiên là thực thi được, đến câu lệnh thì thứ tự thì bị lỗi (vì tên của cái bảng viết sai) nên việc thực thi kết thúc.

CREATE TABLE SinhVien (MSSV INT, HoTen VARCHAR(255));
INSERT INTO SinhVien VALUES (1, "Nguyễn Thành Nhân");
INSERT INTO SinhVien VALUES (2, "Tả Khưu Ninhh");
INSERT INTO 47SinhVien VALUES (3, "Quốc Quốc Thiên Thư");
INSERT INTO SinhVien VALUES (4, "Võ Thành Trung");