Truy vấn nâng cao HIENLTH - Database.

Slides:



Advertisements
Similar presentations
THÁNH CẢ GIUSE VÀ … CHIẾC CẦU THANG KỲ DIỆU
Advertisements

GV: Nguyễn Thị Thúy Hiền PHÒNG GD&ĐT PHÚ VANG TRƯỜNG THCS PHÚ THƯỢNG.
5.
KIỂM TRA BÀI CŨ: CÂU 1: Chuột là thiết bị dùng để làm gì? a.Nhập dữ liệu b.Xuất dữ liệu c.Xử lý và lưu trữ d.Tất cả đều sai.
Cài đặt Moodle Cài đặt Moodle trên môi trường Windows Cục CNTT-Bộ GD&ĐT.
11 B4. Phân tích dữ liệu. 22 Những nội dung chính Sử dụng thống kê trong NCKHƯD Vai trò của thống kê trong NCKHSPƯD PHÂN TÍCH DỮ LIỆU 1. Mô tả dữ liệu.
Kỹ năng Trích dẫn và Lập danh mục tài liệu tham khảo
Chào mừng quý thầy cô và các em TRƯỜNG THPT TRẦN VĂN KỶ TỔ LÝ – TIN - KTCN.
BÀI 3. ĐƯỜNG THẲNG VÀ MẶT PHẲNG SONG SONG SỞ GD&ĐT ĐIỆN BIÊN TRƯỜNG THCS-THPT TẢ SÌN THÀNG BÀI DỰ THI SOẠN GIẢNG E-LEARNING Chương II ĐƯỜNG THẲNG VÀ MẶT.
Rèn luyện nghiệp vụ sư phạm 3
KIỂM TRA BÀI CŨ 1) Thế nào là đơn thức ? Cho ví dụ về đơn có biến là x, y, có bậc là 3. 2.a) Thế nào là bậc của đơn thức có hệ số khác 0 ? Muốn nhân hai.
Javascript Giáo viên: TS. Trương Diệu Linh Bộ môn Truyền thông & Mạng
Các kiểu dữ liệu trong VB
Giáo viên: Nguyễn Ngọc Thúy Hằng Đơn vị: Trường THPT Lê Quý Đôn
L/O/G/O NGUYÊN LÝ KẾ TOÁN Nguyễn Hữu Quy (MBA,CPA,APC)
TRAO ĐỔI KINH NGHIỆM PHƯƠNG PHÁP ÔN LUYỆN & KỸ NĂNG THI TOEIC
NGƯỜI HƯỚNG DẪN: TS. NGUYỄN AN TẾ 1. Giới thiệu về XML Cấu trúc XML Mô hình XML Tuyết và Vân them nội dung vào đ ây NỘI DUNG.
1 BÀI 6 BẤM CÁP VÀ CHIA SẺ DỮ LIỆU MẠNG. 2 Nội Dung  Bấm cáp xoắn đôi đúng chuẩn Phương pháp bấm cáp chuẩn A Phương pháp bấm cáp chuẩn B  Kết nối máy.
TỔNG QUAN VỀ NGÔN NGỮ LẬP TRÌNH C/C++
GIÁO TRÌNH ĐÀO TẠO MICROSOFT OFFICE ACCESS 2003
1. Quyền Admistrator, quyền Standard hoặc Limited 2. Kiểm tra kết nối mạng nội bộ, Internet 3. Một số nội dung của Quy nội bộ số 72/QyĐ-KTNB 4. L ư u ý.
Tác tử thông minh.
Ngôn ngữ lập trình C/C++
SỬ DỤNG EXCEL ĐỂ TRÍCH KHẤU HAO TSCĐ
Đầu tiên chỉ là 1 giao thức đơn giản
CHƯƠNG 9 PHẦN MỀM POWERPOINT
LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG C++
Chương 3: Thiết kế Phần mềm
Chương 1 : Xây dựng CSDL Giáo viên: Phạm Mỹ Hạnh.
Kỹ Năng Ghi Nhận - Affirmation
Chương 8 KẾT NỐI VỚI SQL SERVER & ỨNG DỤNG TRÊN C#
Vấn đề ngôn ngữ lập trình
MỘT SỐ HƯỚNG DẪN KHI SOẠN CÂU HỎI TRẮC NGHIỆM
Ràng buộc toàn vẹn (Integrity Constraint)
Hệ quản trị Cơ sở dữ liệu Giới thiệu
Dược Thảo Lợi Hại Ra Sao Kính thưa quí bạn, slide show nầy nói về những điều cần lưu ý khi tìm đọc các thông tin về các loại thuốc phụ trợ hoặc bổ sung,
Bài 0. Oracle DBMS và SQL*Plus
Chương 1: Khái quát về dự án đầu tư.
Ra quyết định kinh doanh
IP & SUBMASK.
Theo mặc định toàn bộ dung lượng dùng lưu trữ, các thư mục hiện có trong các Partition , các dịch vụ hệ thống đã được chia sẽ cho mọi người được phép sử.
Nơi Microsoft Oulook Chứa Và Data
Policy Analysis Tools of the Trade NMDUC 2009.
13 August 2001 Area Filling Tô màu Chris Weigle - Comp 136.
Quản lý hệ thống file.
Con trỏ Bài 8.
Cấu hình đơn giản cho Router
Ring ? Bus ? ? Mesh ? Start ?. Ring ? Bus ? ? Mesh ? Start ?
Môn: Lập trình Hướng đối tượng (Object Oriented Programming)
TÀI LIỆU GIẢNG DẠY IC3 GS4 SPARK
GIÁO TRÌNH ĐÀO TẠO TRƯỜNG ĐẠI HỌC SÀI GÒN
Bài 8 (6 tiết): CÂY (TREE) A. CÂY VÀ CÂY NHỊ PHÂN (2 tiết)
HỆ ĐIỀU HÀNH MẠNG.
ỨNG DỤNG HIV INFO 3.0 QUẢN LÝ SỐ LIỆU NGƯỜI NHIỄM HIV/AIDS
File Transfer Protocol (FTP) là cơ chế truyền tin dưới dạng tập tin (file). Thông qua giao thức TCP/IP FTP là dịch vụ đặc biệt vì nó dùng tới 2 port Port.
Chapter 05 BẢO MẬT TRONG HỆ THỐNG WLAN
CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT
ÔN TẬP Chuyển các số sau từ hệ thập phân sang nhị phân, bát phân, thập lục phân: Chuyển các số sau từ hệ nhị phân.
Mảng Bài 7.
BÀI 29: LỌC DỮ LIỆU TỪ DANH SÁCH DỮ LIỆU
Chương 4 - CÁC MÔ ĐUN ĐiỀU KHIỂN TRONG HỆ THỐNG CƠ ĐiỆN TỬ
Data Integrity TÍNH TOÀN VẸN DỮ LiỆU.
Chương 4: FORMS Microsoft Access.
1. Đổi chỗ trực tiếp – Interchange Sort
Lớp DH05LN GIÁO VIÊN PHỤ TRÁCH ThS. NGUYỄN QUỐC BÌNH
Please click through slides at your leisure
Chương 3. Lập trình trong SQL Server TRIGGER
SỞ GIÁO DỤC VÀ ĐÀO TẠO ĐIỆN BIÊN TRƯỜNG THPT MÙN CHUNG
Company LOGO CĂN BẢN VỀ MẠNG NGUYEN TAN THANH Xem lại bài học tại
Quản trị rủi ro Những vấn đề căn bản Nguyễn Hưng Quang 07/11/2015 NHẬT HOA IC&T.
Presentation transcript:

Truy vấn nâng cao HIENLTH - Database

Truy vấn là gì? SQL Server Truy vấn Dữ liệu trong các bảng Khởi tạo Người sử dụng Khởi tạo Đưa ra một câu hỏi cần quan tâm Trả lời câu hỏi – Trả về tập hợp kết quả Xử lý bởi SQL Nâng Cao – HIENLTH – Slide 2

Cú pháp – Thứ tự truy vấn SELECT <danh sách các cột> FROM <danh sách các bảng> WHERE <điều kiện> GROUP BY <danh sách các cột gom nhóm> HAVING <điều kiện trên nhóm> ORDER BY Cột ASC|DESC SQL Nâng Cao – HIENLTH – Slide 3

Câu lệnh SELECT trong truy vấn Truy vấn trên nhiều hàng và cột Có thể truy vấn trên nhiều bảng hoặc nhiều CSDL. Xác định các cột yêu cầu trong truy vấn được chỉ ra. Các cột kết quả có cùng thứ tự trong truy vấn. SQL Nâng Cao – HIENLTH – Slide 4

Truy vấn trên nhiều bảng Có 3 cách để kết nối dữ liệu từ nhiều bảng - Kết nối: Kết nối các hàng từ nhiều bảng - Các truy vấn con - Truy vấn con là truy vấn nằm trong một truy vấn khác - Các phép kết nối - Kết nối các cột từ nhiều bảng. SQL Nâng Cao – HIENLTH – Slide 5

Các truy vấn con Truy vấn con : là một câu lệnh SELECT lồng trong câu lệnh SELECT khác Truy vấn cha Select <Column Name> From Table WHERE <Column Name> = Select <Column Name> From <Table> WHERE <Column> = <Criteria > Toán tử Truy vấn con SQL Nâng Cao – HIENLTH – Slide 6

Điều kiện kết ở mệnh đề FROM Kết bằng Kết ngoài SELECT <danh sách các cột> FROM R1 [INNER] JOIN R2 ON <biểu thức> WHERE <điều kiện> SELECT <danh sách các cột> FROM R1 LEFT|RIGHT [OUTER] JOIN R2 ON <biểu thức> WHERE <điều kiện> SQL Nâng Cao – HIENLTH – Slide 7

Nhận xét IN và EXISTS IN EXISTS <tên cột> IN <câu truy vấn con> Thuộc tính ở mệnh đề SELECT của truy vấn con phải có cùng kiểu dữ liệu với thuộc tính ở mệnh đề WHERE của truy vấn cha EXISTS Không cần có thuộc tính, hằng số hay biểu thức nào khác đứng trước Không nhất thiết liệt kê tên thuộc tính ở mệnh đề SELECT của truy vấn con Những câu truy vấn có = ANY hay IN đều có thể chuyển thành câu truy vấn có EXISTS SQL Nâng Cao – HIENLTH – Slide 8

Sử dụng EXISTS và NOT EXISTS Nó có chức năng kiểm tra sự tồn tai. EXISTS được sử dụng để kiểm tra sự tồn tại của các hàng được truy vấn Truy vấn con không trả về bất kỳ dữ liệu nào, nó trả về TRUE hoặc FALSE SQL Nâng Cao – HIENLTH – Slide 9

Các truy vấn lồng nhau Ví dụ Truy vấn lồng 2 cấp Các truy vấn lồng nhau được truy vấn trong các truy vấn con Ví dụ Truy vấn lồng 2 cấp SQL Nâng Cao – HIENLTH – Slide 10

Sự liên quan giữa các truy vấn con Truy vấn con liên quan đến truy vấn cha Truy vấn con định lại giá trị cho mọi lần lặp trong trong truy vấn cha. Ví dụ SQL Nâng Cao – HIENLTH – Slide 11

Phép toán tập hợp trong SQL SQL có cài đặt các phép toán Hội (UNION) Giao (INTERSECT) Trừ (EXCEPT) Kết quả trả về là tập hợp Loại bỏ các bộ trùng nhau Để giữ lại các bộ trùng nhau UNION ALL INTERSECT ALL EXCEPT ALL SQL Nâng Cao – HIENLTH – Slide 12

Phép toán tập hợp trong SQL (tt) Cú pháp SELECT <ds cột> FROM <ds bảng> WHERE <điều kiện> UNION [ALL] SELECT <ds cột> FROM <ds bảng> WHERE <điều kiện> INTERSECT [ALL] SELECT <ds cột> FROM <ds bảng> WHERE <điều kiện> EXCEPT [ALL] SQL Nâng Cao – HIENLTH – Slide 13

Phép toán tập hợp trong SQL Toán tử kết hợp : Kết nối hai hoặc nhiều câu lệnh SELECT vào một tập hợp kết quả Toán tử Union SELECT statement UNION [ALL] SELECT statement Mệnh đề ALL không loại bỏ được sự trùng lặp dữ liệu SQL Nâng Cao – HIENLTH – Slide 14

Phép toán tập hợp trong SQL Mỗi lệnh select phải có cấu trúc giống nhau Kiểu dữ liệu trong các cột phải tương thích với nhau và có cùng số lượng cột Ví dụ: SELECT empno, ename, sal FROM emp UNION SELECT empno, ename, sal FROM ret_emp SQL Nâng Cao – HIENLTH – Slide 15

Truy vấn trên tất cả các hàng Ví dụ SQL Nâng Cao – HIENLTH – Slide 16

Dùng lệnh Select lựa chọn các cột Ví dụ SQL Nâng Cao – HIENLTH – Slide 17

Sử dụng mệnh đề WHERE với lệnh Select Mệnh đề WHERE trong truy vấn dùng để lọc bớt số lượng hàng hiển thị trong truy vấn dựa trên điều kiện đã chỉ ra. Cú pháp: SELECT <Column Name> FROM <table Name> WHERE <Condition> Ví dụ SQL Nâng Cao – HIENLTH – Slide 18

Các toán tử quan hệ và mệnh đề WHERE Chúng ta có thể sử dụng các loại điều kiện tìm kiếm khác nhau và các toán tử so sánh trong mệnh đề WHERE . Bảng dưới đây liệt kê danh sách các toán tử so sánh có thể sử dụng trong truy vấn. Toán tử Ý nghĩa = Bằng > Lớn hơn < Nhỏ hơn >= Lớn hơn hoặc bằng <= Nhỏ hơn hoặc bằng Không bằng <> ! Phủ định SQL Nâng Cao – HIENLTH – Slide 19

Các ký tự đại diện Ký tự đại diện Diễn giải Ví dụ ‘_’ Một ký tự đơn Select Branch_Code From Branch Where Branch_Code Like ‘L__’ % Một chuỗi có độ dài bất kỳ Select Route_Code From FlightSchedule Where Route_Code Like ‘AMS-%’ [] Một ký tự đơn thuộc khoảng nằm trong ngoặc Select Airbusno From FlightSchedule Where Airbusno Like ‘AB0[1-5]’ [^] Bất kỳ một ký tự nào không thuộc trong khoảng nằm trong ngoặc Select Airbusno From FlightSchedule Where Airbusno Like ‘AB0[^1-5]’ SQL Nâng Cao – HIENLTH – Slide 20

Sử dụng các ký tự đại diện với toán tử LIKE Ví dụ SQL Nâng Cao – HIENLTH – Slide 21

Các hàm xử lý chuỗi Hàm LEN(s): Lấy chiều dài chuỗi s Hàm LEFT(s,n): Lấy n ký tự tính từ bên trái chuỗi s Hàm RIGHT(s,n): Lấy n ký tự tính từ bên phải chuỗi s Hàm SUBSTRING(s,k,n): Lấy n ký tự trong chuỗi s tính từ vị trí k Hàm CHARINDEX(s1, s2): Trả về vị trí xuất hiện của chuỗi s1 trong chuỗi s2 Hàm LTRIM(s), RTRIM(s), LOWER, UPPER, ASCII, CHAR, REVERSE, SPACE, STR, UNICODE SQL Nâng Cao – HIENLTH – Slide 22

CAST and CONVERT CAST ( expression AS data_type ) CONVERT (data_type [(length)],expression [,style]) Ví dụ: CAST ( (5 + 2 * 7 - 8) AS NVARCHAR(6)) + N’Đồng’ CONVERT (INT, LEFT(‘4 + 6 = 10’, 1)) SQL Nâng Cao – HIENLTH – Slide 23

Các hàm toán học ABS, ACOS, ASIN, ATAN, CEILING, COS, COT, DEGREES, EXP, FLOOR, LOG, LOG10, PI, POWER, RADIANS, RANK, ROUND, SIGN, SIN, SQUARE, SQRT, TAN SQL Nâng Cao – HIENLTH – Slide 24

Sử dụng toán tử logic phủ định (Not) Ví dụ SQL Nâng Cao – HIENLTH – Slide 25

Sử dụng toán tử logic AND Ví dụ SQL Nâng Cao – HIENLTH – Slide 26

Sử dụng toán tử logic OR Ví dụ SQL Nâng Cao – HIENLTH – Slide 27

Mệnh đề ORDER BY Mệnh đề ORDER BY sắp xếp truy vấn trên một hoặc nhiều cột Có thể sắp xếp tăng dần (ASC) hoặc giảm dần (DESC) Mặc định, các bản ghi được sắp xếp theo thứ tự tăng dần (ASC). SQL Nâng Cao – HIENLTH – Slide 28

Hiển thị dữ liệu được sắp xếp với lệnh SELECT và mệnh đề ORDER BY Ví dụ SQL Nâng Cao – HIENLTH – Slide 29

Mệnh đề DISTINCT Để loại trừ các bản ghi lặp lại sử dụng DISTINCT với lệnh SELECT Cú pháp: SELECT DISTINCT <column1> FROM <tablename> Ví dụ: SELECT DISTINCT deptno FROM emp SQL Nâng Cao – HIENLTH – Slide 30

Sử dụng mệnh đề DISTINCT Ví dụ Mỗi kiểu (type) được trả về là duy nhất SQL Nâng Cao – HIENLTH – Slide 31

Hàm kết hợp COUNT MIN MAX SUM AVG COUNT(*) đếm số dòng COUNT(<tên thuộc tính>) đếm số giá trị khác NULL của thuộc tính COUNT(DISTINCT <tên thuộc tính>) đếm số giá trị khác nhau và khác NULL của thuộc tính MIN MAX SUM AVG Các hàm kết hợp được đặt ở mệnh đề SELECT SQL Nâng Cao – HIENLTH – Slide 32

Các hàm xử lý ngày giờ Thể hiện ngày giờ trong phép chọn: SELECT * FROM CAUTHU WHERE NGAYSINH BETWEEN ‘5-11-1980’ AND ‘5-11-1990’ Lấy ngày hiện tại: GETDATE() Hàm DAY(d): Lấy ngày trong d Hàm MONTH(d): Lấy tháng trong d Hàm YEAR(d): Lấy năm trong d SQL Nâng Cao – HIENLTH – Slide 33

Các hàm xử lý ngày giờ Hàm DATEPART(p,d): lấy thông tin ngày, tháng, năm, giờ, phút, hoặc giây trong d, với p thuộc bảng sau: SQL Nâng Cao – HIENLTH – Slide 34

Các hàm xử lý ngày giờ Hàm DATEADD(p,n,d): tìm ngày cách d một khoảng n ngày, tháng, năm, giờ, phút, hoặc giây,…(phụ thuộcvào p ∈ Z) Ví dụ: Muốn xác định sau ngày 30/4/2008, 60 ngày là ngày nào ?  DATEADD(“dd”, 60, ’04/30/2008’) = 29/06/2008 Muốn xác định sau ngày 30/4/2008, 15 tuần là ngày nào?  DATEADD(“ww”, 15, ’04/30/2008’) = 13/08/2008 SQL Nâng Cao – HIENLTH – Slide 35

Các hàm xử lý ngày giờ Hàm DATEDIFF(p, d1, d2): tính khoảng cách giữa hai ngày d1 và d2 (khoảng ngày, tháng, năm, giờ, phút, hoặc giây,…phụ thuộc vào p) Ví dụ: Giả sử ngày hiện hành là ngày 30/04/2008, muốn xác định còn bao nhiêu ngày nữa đến ngày 02/09/2008? DATEDIFF(“dd”, ’04/30/2008’, ’09/02/2008’) = 125 Giả sử ngày hiện hành là ngày 30/04/2008, muốn xác định còn bao nhiêu tuần nữa đến ngày 02/09/2008? DATEDIFF(“ww”, ’04/30/2008’, ’09/02/2008’) = 18 SQL Nâng Cao – HIENLTH – Slide 36

Mệnh đề COMPUTE Mệnh đề COMPUTE sinh ra những giá trị tổng kết rị và xuất hiện trên các hàng thêm vào, là một tập hợp kết quả của các hàm tập hợp. Giá trị tổng kết xuất hiện như là một hàng bổ sung. Các hàng chi tiết và hàng tổng kết có thể nhìn thấy trong cùng một kết quả của câu truy vấn. Cú pháp: COMPUTE <Expression1>, <Expression2> SQL Nâng Cao – HIENLTH – Slide 37

Sử dụng COMPUTE Ví dụ SQL Nâng Cao – HIENLTH – Slide 38

Sử dụng COMPUTE BY Nếu trong ví dụ trước thay vì sử dụng COMPUTE, ta sử dụng mệnh đề COMPUTE BY thì kết quả sẽ được hiển thị như sau SQL Nâng Cao – HIENLTH – Slide 39

Mệnh đề SELECT INTO Bất kỳ khi nào chúng ta muốn tạo lập một bảng dựa trên một bảng khác và lưu trữ nó với một tập kết quả lấy được từ bảng tồn tại chúng ta sử dụng cấu trúc SELECT INTO. SELECT INTO cũng có thể sử dụng để kết nối dữ liệu từ nhiều bảng vào một bảng. Table 1 SELECT INTO Table 2 SQL Nâng Cao – HIENLTH – Slide 40

Sử dụng SELECT INTO Ví dụ dưới đây tạo lập một bảng mới gọi là publishers2 dựa trên bảng đã có publishers. Bảng mới cũng có nội dung giống bảng publishers. SQL Nâng Cao – HIENLTH – Slide 41