Ngôn ngữ SQL – Truy vấn đơn giản

8 0 0
Ngôn ngữ SQL – Truy vấn đơn giản

Đang tải... (xem toàn văn)

Thông tin tài liệu

Ngôn ngữ SQL – Truy vấn đơn giản

Ngôn ngữ SQL – Truy vấn đơn giản Tổng quát Một cách tổng quát, khối select gồm có mệnh đề chính: Select: Xác định cột cần đưa kết From: Xác định bảng cần lấy thông tin Where: Xác định mẫu tin thỏa yêu cầu chọn lọc để đưa kết Ngoài ra, để mở rộng khả ngôn ngữ, khối select-from-where bổ sung thêm mệnh đề group by, having, order by, hàm hỗ trợ tính tốn: max, min, count, sum, avg Sau cú pháp tổng quát câu truy vấn liệu: SELECT [tính chất] FROM [WHERE ] [GROUP BY ] [HAVING ] [ORDER BY Diễn giải : Tính chất : Một từ khóa: ALL (chọn tất dòng bảng), DISTINCT (lọai bỏ cột trùng lắp thông tin), DISTINCTROW (lọai bỏ dịng trùng lắp thơng tin), TOP (chọn n dòng thỏa mãn điều kiện) Danh sách thuộc tính_1: tên thuộc tính cho biết thơng tin cần lấy Chú ý: Các thuộc tính cách dấu:‘,’ Nếu lấy tất thuộc tính bảng tbl dùng: tbl.* Nếu sau FROM có bảng lấy tất thuộc tính bảng dùng select * Nếu tồn thuộc tính sau select xuất bảng sau FROM phải định rõ thuộc tính thuộc bảng Danh sách bảng: bảng chứa thơng tin cần lấy Khi tìm kiếm thơng tin nhiều bảng phải kết nối bảng lại với (điều kiện kết đặt sau where) Alias: bí danh (tên tắt) bảng dùng cho bảng có tên dài Điều kiện_1: điều kiện để lọc liệu Danh sách thuộc tính_2: liệu gom nhóm theo cột này, ưu tiên từ trái sang Điều kiện_2: điều kiện lọc lại liệu sau thực tính tóan liệu Điều kiện áp dụng liệu thỏa mãn điều kiện_1 Danh sách thuộc tính_3: Sắp xếp liệu theo cột nào, thứ tự tăng (ASC) giảm (DESC) Mặc định liệu theo thứ tự tăng dần Việc xếp thực theo thứ tự ưu tiên từ trái qua phải Truy vấn đơn giản SELECT FROM tên_bảng Sau select, * dùng với ý nghĩa lấy toàn cột bảng Dùng từ khoá distinct để loại bỏ trùng all để lấy tất liệu Mặc định khơng để có dùng từ khóa all Sau select dùng biểu thức số học như: +, -, *, /, thực tốn tử thuộc tính VD: Cho biết danh sách tất nhân viên với tất thông tin: SELECT * FROM NHANVIEN A Tìm kiếm có xếp Để xếp thứ tự liệu, ta sử dụng mệnh đề ORDER BY: SELECT… FROM… ORDER BY thuộc_ tính_1[ASC|DESC], huộc_tính_2[ASC|DESC], Tập_thuộc_tính gồm thuộc tính nhiều thuộc tính độ ưu tiên tính từ trái sang phải VD: Với câu lệnh: select * from Table1 order by B desc,A asc bảng đây: A An Bình Chi Hùng Kết quả: B 8 10 A B Hùng 10 Chi An Bình Đầu tiên xếp thứ tự theo B trước, sau đó, với giá trị B ngang xếp theo A B Tìm kiếm với điều kiện đơn giản Để hỗ trợ tìm kiếm có điều kiện, sử dụng mệnh đề WHERE câu lệnh SELECT với vị trí sau: AND OR SELECT… FROM… WHERE (điều_kiện_1) AND/OR (điều_kiện_n) VD: SINHVIEN (MASV, HOTEN, NGSINH, LOP) Cho danh sách sinh viên lớp TH01: SELECT * FROM SINHVIEN WHERE LOP=’TH01’ Chú ý: Khi thuộc tính nhận giá trị null, cần cẩn thận sử dụng để so sánh với nhiều điều kiện liên tiếp BETWEEN AND , NOT BETWEEN … AND Cho biết nhân viên sinh khoảng năm 1955 đến 1960 SELECT * FROM NHANVIEN WHERE YEAR(NGSINH) BETWEEN 1955 AND 1960 Hoặc: SELECT * FROM NHANVIEN WHERE YEAR(NGSINH)>=1955 AND YEAR(NGSINH) SELECT DATE('2003-12-31 01:02:03'); + -+ | DATE('2003-12-31 01:02:03') | + -+ | 2003-12-31 | + -+ row in set (0.00 sec) Hàm DATEDIFF(expr1,expr2) DATEDIFF() trả expr1 – expr2 biểu diễn dạng số ngày từ date tới date khác Hai tham số expr1 expr2 biểu thức biểu diễn date datetime Chỉ phần biểu thức sử dụng để tính tốn mysql> SELECT DATEDIFF('1997-12-31 23:59:59','1997-12-30'); + -+ | DATEDIFF('1997-12-31 23:59:59','1997-12-30') | + -+ | | + -+ row in set (0.00 sec) Function Mô tả NOW() Trả ngày tháng thời gian CURDATE() Trả ngày CURTIME() Trả thời gian DATE() Trích xuất phần biểu thức ngày / thời gian EXTRACT() Trả phần ngày tháng DATE_ADD() Thêm khoảng thời gian định vào ngày DATE_SUB() Bớt khoảng thời gian định từ ngày DATEDIFF() Trả số lượng ngày hai khoảng ngày tháng Hiển thị liệu ngày tháng/thời gian định dạng DATE_FORMAT() khác VD: DDH(MADH, NGAYDH, MAKH) CTDH(MADH, MAHH, SOLUONG, DONGIA) Cho biết đơn đặt hàng đặt trước ngày 01/01/2001 SELECT MADH, NGAYDH FROM DDH WHERE DATEDIF (NGAYDH,’01/01/2001’)>0 Cho biết đơn đặt hàng đặt trước ngày 01/01/2001 tuần SELECT MADH, NGAYDH FROM DDH WHERE DATEDIF (NGAYDH,’01/01/2001’)>7 D Sử dụng hàm tìm kiếm Cho biết họ tên nhân viên tuổi nhân viên SELECT HONV, TENLOT, TENNV, DATEDIFF(NGSINH, now()) as TUOI FROM NHANVIEN Cho biết năm sinh nhân viên SELECT HONV, TENLOT, TENNV, YEAR(NGSINH) as NAMSINH FROM NHANVIEN Bài tập bản: Truy vấn đơn giản Tìm nhân viên làm việc phịng số Tìm nhân viên có mức lương 30000 Tìm nhân viên có mức lương 25,000 phòng nhân viên có mức lương 30,000 phịng Cho biết họ tên đầy đủ nhân viên TP HCM Cho biết họ tên đầy đủ nhân viên có họ bắt đầu ký tự ‘N’ Cho biết ngày sinh địa nhân viên Dinh Ba Tien Cho biết nhân viên có năm sinh khoảng 1960 đến 1965 Cho biết nhân viên năm sinh nhân viên Cho biết nhân viên tuổi nhân viên Truy vấn có sử dụng phép kết 10 Với phòng ban, cho biết tên phòng ban địa điểm phịng 11 Tìm tên người trưởng phịng phịng ban 12 Tìm tên địa tất nhân viên phòng "Nghiên cứu" 13 14 15 16 17 Với đề án Hà Nội, cho biết tên đề án, tên phòng ban, họ tên ngày nhận chức trưởng phòng phịng ban chủ trì đề án Tìm tên nữ nhân viên tên người thân họ Với nhân viên, cho biết họ tên nhân viên họ tên người quản lý trực tiếp nhân viên Với nhân viên, cho biết họ tên nhân viên đó, họ tên người trưởng phịng họ tên người quản lý trực tiếp nhân viên Tên nhân viên phịng số có tham gia vào đề án "San pham X" nhân viên "Nguyen Thanh Tung" quản lý trực tiếp

Ngày đăng: 15/03/2023, 15:27

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan