Bài 5: Một Số Câu Lệnh SQL Trong MySQl Khi Lập Trình PHP
Có thể bạn quan tâm

Hệ quản trị CSDL MySQL hỗ trợ khá nhiều câu lệnh để tương tác với CSDL. Trong đó có một số câu lệnh thương dùng cho lập trình PHP để hỗ trọ cho việc truy suất CSDL và hiển thị lên web. Một số câu lệnh thường dùng như sau:
I. Câu lệnh SELECT .... FROM
Câu lệnh SELECT ... FROM giúp chúng ta lấy dữ liệu trong bảng
Cú pháp:
SELECT danh_sach_cac_cot FROM ten_bangVí dụ: Xuất ra danh sách các bài viết, thông tin cần lấy gồm: ma,tieu_de,tom_tat,ngay_dang
SELECT ma,tieu_de,tom_tat,ngay_dang FROM bai_viet* Một số thành phần mở rộng trong câu lệnh SELECT ... FROM
- Truy vấn có điều kiện WHERE
Cú pháp:
SELECT danh_sach_cac_cot FROM ten_bang WHERE dieu_kien_locVí dụ: Xuất ra danh sách các bài viết có ngay_tao lớn hơn hoặc bằng ngày 20/10/2015, thông tin cần lấy gồm: ma,tieu_de,tom_tat,ngay_dang
SELECT ma,tieu_de,tom_tat,ngay_dang FROM bai_viet WHERE ngay_tao >= '2015:10:20'Một số toán tử trong mệnh đề WHERE: Ngoài các toán tử đã biết ở Bài 4: Một số toán tử thường dùng trong MySQL khi lập trình php
Cần chú ý thêm một số toán tử thương được sử dụng trong mệnh đề WHERE như sau:
| Toán tử | Ý nghĩa | Ví dụ |
| LIKE | Lọc dữ liệu gần giống với chuỗi cần tìm | Tìm các bài viết có tiêu đề chứa từ 'php'. WHERE tieu_de LIKE '%php%'Chú ý: % Đại diện cho nhiều kí tự, _ Đại diện cho 1 kí tự. |
| IN | Lọc dữ liệu nằm trong danh sách | Tìm các bài viết có mã là 3,4,7,9 WHERE ma IN(3,4,7,9) |
| BETWEEN | Lọc dữ liệu nằm giữa hai giá trị | Lấy ra danh sách bài viết trong năm 2015 WHERE ngay_tao BETWEEN '2015:1:1' AND '2015:12:31' |
- Nhóm dữ liệu với GROUP BY
Cú pháp:
SELECT danh_sach_cac_cot FROM ten_bang [WHERE dieu_kien_loc] GROUP BY danh_sach_cot_can_nhomMột số hàm thường đi chung với GROUP BY
| HÀM | Ý NGHĨA |
| AVG | Tính giá trị trung bình |
| COUNT | Đếm số lượng |
| MIN | Lấy giá trị nhỏ nhất |
| MAX | Lấy giá trị lớn nhất |
| SUM | Tính tổng |
Ví dụ: Thống kê số lượng bài viết trong mỗi chủ đề. Danh sách cần lấy ma_chu_de, ten_chu_de, so_luong
SELECT cd.ma as ma_chu_de,cd.ten as ten_chu_de,count(bv.ma) as so_luong FROM bai_viet bv,chu_de cd WHERE bv.ma_chu_de = cd.ma GROUP BY bv.ma_chu_de- Điều kiện lọc sau khi gom nhóm HAVING
Cú pháp:
SELECT danh_sach_cac_cot FROM ten_bang [WHERE dieu_kien_loc] GROUP BY danh_sach_cot_can_nhom HAVING dieu_kien_loc_sau_khi_nhomVí dụ: Thống kê các chủ đề có số lượng bài viết lớn hơn 10. Danh sách cần lấy ma_chu_de, ten_chu_de, so_luong
SELECT cd.ma as ma_chu_de,cd.ten as ten_chu_de,count(bv.ma) as so_luong FROM bai_viet bv,chu_de cd WHERE bv.ma_chu_de = cd.ma GROUP BY bv.ma_chu_de HAVING COUNT(bv.ma) >10- Sắp xếp dữ liệu với ORDER BY
Cú pháp:
SELECT danh_sach_cac_cot FROM ten_bang [WHERE dieu_kien_loc] [GROUP BY danh_sach_cot_can_nhom] ORDER BY danh_sach_cac_cot_can_sap_xep [DESC]Chú ý: DESC dùng để sắp xếp giảm dần. Nếu không có DESC thì sắp xếp tăng dần
Ví dụ: Xuất ra danh sách các bài viết và sắp xếp theo ngày đăng giảm dần, thông tin cần lấy gồm: ma, tieu_de, tom_tat, ngay_dang
SELECT ma,tieu_de,tom_tat,ngay_dang FROM bai_viet ORDER BY ngay_dang DESC- Giới hạn số dòng cần lấy LIMIT
Cú pháp:
SELECT danh_sach_cac_cot FROM ten_bang [WHERE dieu_kien_loc] [GROUP BY danh_sach_cot_can_nhom] [ORDER BY danh_sach_cac_cot_can_sap_xep] LIMIT n,mChú ý: n là vị trí bắt đầu, m là vị trí kết thúc; n<=m
Ví dụ: Lấy ra danh sách 5 bài viết mới nhất theo ngày đăng. Thông tin cần lấy gồm: ma,tieu_de,tom_tat,ngay_dang
SELECT ma,tieu_de,tom_tat,ngay_dang FROM bai_viet ORDER BY ngay_dang DESC LIMIT 0,5II. Truy vấn con
Truy cấn con là một câu lệnh SELECT được lồng trong các câu lệnh truy vấn khác nhằm thực hiện các truy vấn phức tạp.
Chú ý:
- Truy vấn con phải nằm trong dấu ngoặc đơn ()
- Truy vấn con chỉ được tham chiếu đến 1 cột hoặc một biểu thức.
Kết quả trả về của truy vấn con có thể là một giá trị hoặc một danh sách
2.1. Truy vấn con trả về một giá trị
Ví dụ:
SELECT ma,tieu_de,tom_tat,ngay FROM bai_viet WHERE ngay = (SELECT MAX(ngay) FROM bai_viet)2.2. Truy vấn con trả về một danh sách các giá trị
Ví dụ:
SELECT bv.ma,bv.ten,bv.tom_tat,bv.ngay,(SELECT COUNT(*) FROM chu_de cd WHERE cd.ma = bv.ma) as so_luong FROM bai_viet bvIII. Câu lệnh INSERT INTO
Câu lệnh INSERT INTO cho phép chúng ta thêm mới một hay nhiều dòng dữ liệu vào bảng.
Cú pháp:
INSERT INTO Ten_bang [(Danh sách các cột)] VALUES (Danh sách các giá trị)Ví dụ:
INSERT INTO bai_viet (ma,tieu_de,tom_tat,ngay) VALUES (1,"Hướng Dẫn Lập TRình PHP","Website hỗ trợ lập trình php từ căn bản đến nâng cao.",2016-01-01)IV. Câu lệnh UPDATE
Câu lệnh UPDATE dùng để cập nhật hay chỉnh sửa lại dữ liệu bên trong bảng.
Cú pháp:
UPDATE Tên_Bảng SET Tên_cột = Giá_trị WHERE Điều_kiện_cập_nhậtVí dụ:
UPDATE bai_viet SET ngay = 2016-01-02 WHERE ma=1V. Câu lệnh DELETE
Câu lệnh DELETE dùng để xóa một dòng trong bảng.
Cú pháp:
DELETE FROM tên_bảng WHERE Điều_kiện_xóaVí dụ:
DELETE FROM bai_viet WHERE ma=1Lập trình PHP chúc các bạn thành công!!!
Từ khóa » Câu Lệnh Truy Vấn Sql Trong Php
-
Truy Xuất Dữ Liệu MySQL Trong PHP
-
Bài 09: Select Dữ Liệu MySQL Bằng PHP
-
Các Hàm, Câu Lệnh PHP Và SQL Xử Lý Họ Tên Số Lượng Lớn - Kiến Càng
-
Câu Lệnh SELECT | MySQL & PHP
-
Sử Dụng Câu Lệnh SELECT Trong PHP Và MySQL - Học Lập Trình
-
Bài 26: Select Dữ Liệu MySQL Bằng PHP - Học Lập Trình PHP Cơ Bản
-
Truy Vấn (select) Dữ Liệu Và Câu Lệnh Where Trong MySQL Với PHP
-
Các Hàm PHP Dùng Làm Việc Với Cơ Sở Dữ Liệu MySQL - Web Cơ Bản
-
Select Dữ Liệu Từ MySQL Trong PHP - Học Lập Trình PHP Online
-
PHP: Thao Tác Trên Dữ Liệu (Data) - V1Study
-
Thực Thi Nhiều Truy Vấn SQL Trong Một Câu Lệnh Với PHP - HelpEx
-
Bài 05: Xuất Dữ Liệu Trong PHP - Vi
-
Bài 17: Các Thao Tác Với MySQL Trong Lập Trình PHP - Nắng Việt
-
Thao Tác Với MySQL Database Sử Dụng MySQLi Extension Trong ...