Bài 35 - MYSQL PHẦN III - SQL NÂNG CAO

 

LAB PHP (CB) 14

LÀM VIỆC VỚI HỆ QUẢN TRỊ CSDL MYSQL

(PHẦN III – MYSQL NÂNG CAO)

A – LÝ THUYẾT

I – MỘT SỐ CÚ PHÁP THAO TÁC VỚI SQL NÂNG CAO

1 – Cú pháp sql AND & OR

Cách dùng AND và OR để kết nối hai hay nhiều điều kiện trong mệnh đề WHERE. 

Ví dụ:

SELECT * FROM thanhvien WHERE tai_khoan = “admin” AND mat_khau = “admin” 

Ví dụ:

SELECT * FROM thanhvien WHERE id_thanhvien = 2 OR id_thanhvien = 3

2 – Cú pháp sql LIKE

Cách dùng LIKE trong MySQL để tìm kiếm sự tồn tại của một mẫu trong Cột dữ liệu

Cú pháp:

SELECT ten_cot FROM ten_bang WHERE ten_cot LIKE mau_can_tim

Chú ý: Mẫu cần tìm có dạng như sau: “%abcxyz%”, trong đó có hoặc không cần sử dụng %, ký tự % dùng để dại diện cho một ký tự hoặc nhóm ký tự bất kỳ nào đó 

Ví dụ:

SELECT * FROM thanhvien WHERE tai_khoan LIKE "%mi%"

3 – Cú pháp sql ORDER BY

Cách dùng từ khóa ORDER BY để trả về các hàng được sắp xếp theo một thứ tự định trước

a)      Sắp xếp theo thứ tự tăng dần

Cú pháp:

SELECT ten_cot FROM ten_bang ORDER BY ten_cot ASC

 Ví dụ:

SELECT * FROM thanhvien ORDER BY id_thanhvien ASC

b)     Sắp xếp theo thứ tự giảm dần

Cú pháp:

SELECT ten_cot FROM ten_bang ORDER BY ten_cot DESC 

Ví dụ:

SELECT * FROM thanhvien ORDER BY id_thanhvien DESC

4 – Cú pháp sql LIMIT

Cách dùng LIMIT dùng để lựa chọn ra số mẩu tin mong muốn trong Bảng dữ liệu

Cú pháp:

SELECT ten_cot FROM ten_bang LIMIT vi_tri_lay, so_mau_tin_muon_lay

Chú ý: Nếu chúng ta không điền tham số vị trí lấy thì mặc định vị trí này có giá trị là 0, tức là lấy từ mẩu tin đầu tiên từ trên xuống

Ví dụ:

SELECT * FROM thanhvien LIMIT 1, 1

5 – Cú pháp sql RAND()

Cách dùng RAND() để lấy ra số mẩu tin một cách ngẫu nhiên

Cú pháp:

SELECT * FROM ten_bang ORDER BY RAND() LIMIT so_mau_tin_muon_lay

Ví dụ:

SELECT * FROM thanhvien ORDER BY RAND() LIMIT 1, 1 

6 – Cú pháp sql INNER JOIN

Giải thích cách chọn thông tin từ nhiều bảng

Cú pháp:

SELECT ten_cot FROM ten_bang_1 INNER JOIN tean_bang_2  ON ten_bang_1.ten_cot_chung = ten_bang_2.ten_cot_chung 

Ví dụ:

SELECT tai_khoan, mat_khau, ho_ten, gioi_tinh FROM thanhvien INNER JOIN chitiet_thanhvien ON thanhvien.id_thanhvien = chitiet_thanhvien. id_thanhvien 

B – THỰC HÀNH

I – BÀI TẬP THỤC HÀNH

Bài 1:

            Thực hiện việc tạo 2 Bảng danhmuc_sanpham và san pham trong CSDL appleshop với cấu trúc các Bảng như sau

danhmuc_sanpham

id_dm

ten_dm

 

Đồng thời thêm 5 đến 10 thông tin danh mục sản phẩm vào trong Bảng trên

 

sanpham

id_sp

id_dm

ten_sp

gia_sp

anh_mo_ta

chi_tiet_sp

dac_biet

xem_nhieu

 

Đồng thời thêm 5 đến 10 thông tin sản phẩm vào trong Bảng trên

 

Bài 2:

            Lọc toàn bộ thông tin của các sản phẩm trong Bảng sanpham

 

Bài 3:

            Lọc toàn bộ thông tin của các cột ten_sp, gia_sp, chi_tiet_sp trong Bảng sanpham

 

Bài 4:

            Lọc toàn bộ thông tin của tất cả các sản phẩm có giá trị của trường dac_biet = 1

 

Bài 5:

            Lọc toàn bộ thông tin của tất cả các sản phẩm có giá trị của trường dac_biet = 1 và giá lớn hơn 5.000.000

 

Bài 6:

            Lọc toàn bộ thông tin của tất cả các sản phẩm có giá trị của trường ten_sp chứa chuỗi ký tự “phone”

 

Bài 7:

            Lọc toàn bộ thông tin của tất cả các sản phẩm và sắp xếp theo id_sp từ cao xuống thấp

 

Bài 8:

            Lọc toàn bộ thông tin của tất cả các sản phẩm và sắp xếp theo ten_sp từ thấp đến cao

 

Bài 9:

            Lọc ra tất cả thông tin của 2 sản phẩm từ trên xuống

 

Bài 10:

            Chỉ lọc ra tất cả thông tin của 2 sản phẩm bắt đầu từ sản phẩm thứ 2

 

Bài 11:

            Lọc ra tất cả thông tin của 2 sản phẩm ngẫu nhiên trong Bảng sanpham

 

Bài 12:

            Lọc ra thông tin về ten_sp, gia_sp, chi_tiet_sp, ten_dm của tất cả các sản phẩm

 

>>Xem bài trước: Bài 34 - MYSQL PHẦN II - SQL CƠ BẢN


>>Xem bài tiếp theo: BÀi 36 PHP VÀ MYSQL


No comments:

Post a Comment