TSQL (Transact Structured Query Language) là thực hiện ngôn ngữ truy vấn có cấu trúc (SQL) của Microsoft. TSQL được thiết kế để nhận, tương tác và thêm dữ liệu vào CSDL SQL Server. Vào giữa những năm 70, IBM đã thiết lập ra một chuẩn được gọi là Structed Enghlish Query Language được gọi tắt là SEQUEL. Sau này, tên viết tắt SEQUEL được rút gọn thành SQL. SQL là một loại ngôn ngữ máy tính phổ biến để tạo, sửa, và lấy dữ liệu từ một hệ quản trị cơ sở dữ liệu quan hệ. SQL được thừa nhận là tiêu chuẩn của ANSI (American National Standards Institute) vào năm 1986 và ISO (International Organization
Chương Phát biểu T-SQL dạng truy vấn liệu 3.1 Giới thiệu ngôn ngữ T-SQL SQL 3.2 Cú pháp chung câu lệnh SELECT 3.3 Mệnh đề FROM 3.4 Danh sách chọn câu lệnh SELECT 3.5 Chỉ định điều kiện truy vấn liệu 3.6 Tạo bảng liệu từ kết truy vấn câu lệnh SELECT SQL Server 2005 Chương Phát biểu T-SQL dạng truy vấn liệu 3.7 Sắp xếp kết truy vấn 3.8 Toán tử Union 3.9 Phép nối 3.10 Thống kê liệu với GROUP BY 3.11 Truy vấn (Subquery) 3.12 Truy vấn (Subquery) SQL Server 2005 3.1 Giới thiệu ngôn ngữ T-SQL SQL • T-SQL (Transact - Structured Query Language) thực ngôn ngữ truy vấn có cấu trúc (SQL) Microsoft • T-SQL thiết kế để nhận, tương tác thêm liệu vào CSDL SQL Server SQL Server 2005 3.1 Giới thiệu ngôn ngữ T-SQL SQL • Vào năm 70, IBM thiết lập chuẩn gọi Structed Enghlish Query Language gọi tắt SEQUEL Sau này, tên viết tắt SEQUEL rút gọn thành SQL • SQL loại ngôn ngữ máy tính phổ biến để tạo, sửa, lấy liệu từ hệ quản trị sở liệu quan hệ • SQL thừa nhận tiêu chuẩn ANSI (American National Standards Institute) vào năm 1986 ISO (International Organization for Standardization) năm 1987 SQL Server 2005 3.1 Giới thiệu ngôn ngữ T-SQL SQL • Tiêu chuẩn SQL trải qua số phiên bản: Nă m Tên khác Tên 198 SQL-86 SQL-87 Chú giải Được công bố ANSI Được phê chuẩn ISO năm 1987 198 SQL-89 199 SQL-92 SQL2 199 SQL:199 SQL3 9 200 SQL:200 3 SQL Server 2005 3.1 Giới thiệu ngôn ngữ T-SQL SQL • Hầu hết sản phẩm CSDL dựa SQL thiết lập chuẩn ANSI SQL-92 (năm 1992 ANSI SQL xem xét lại biết với tên ISO ANSI SQL-92) chúng không xem xét để làm phù hợp theo đặc tả ANSI SQL-99 hay ANSI SQL-2003 • SQL Server 2000 thực theo ANSI SQL-92 • SQL Server 2005 thực theo ANSI SQL-99 SQL Server 2005 3.2 Cú pháp chung câu lệnh Select • Câu lệnh SELECT sử dụng để truy xuất liệu từ dòng cột hay nhiều bảng, khung nhìn • Ngoài ra, câu lệnh cung cấp khả thực thao tác truy vấn thống kê liệu phức tạp khác SQL Server 2005 3.2 Cú pháp chung câu lệnh Select SELECT [ALL | DISTINCT][TOP n] danh_sách_chọn [INTO tên_bảng_mới] FROM danh_sách_bảng/khung_nhìn [WHERE điều_kiện] [GROUP BY danh_sách_cột] [HAVING điều_kiện] [ORDER BY cột_sắp_xếp] [COMPUTE danh_sách_hàm_gộp [BY danh_sách_cột]] SQL Server 2005 3.2 Cú pháp chung câu lệnh Select • Câu lệnh SELECT sử dụng để tác động lên bảng liệu kết câu lệnh hiển thị dạng bảng, tức tập hợp dòng cột (ngoại trừ trường hợp sử dụng câu lệnh SELECT với mệnh đề COMPUTE) SQL Server 2005 3.3 Danh sách chọn câu lệnh SELECT • Danh sách chọn câu lệnh SELECT sử dụng để định trường, biểu thức cần hiển thị cột kết truy vấn • Các trường, biểu thức định sau từ khoá SELECT phân cách dấu phẩy • Sử dụng danh sách chọn câu lệnh SELECT bao gồm trường hợp sau: SQL Server 2005 10 3.12 TRUY VẤN CON • Truy vấn câu lệnh SELECT lồng vào bên câu lệnh SELECT, INSERT, UPDATE, DELETE bên truy vấn khác • Loại truy vấn sử dụng để biểu diễn cho truy vấn điều kiện truy vấn liệu cần phải sử dụng đến kết truy vấn khác SQL Server 2005 76 3.12.1 CÚ PHÁP TRUY VẤN CON • Một truy vấn phải viết cặp dấu ngoặc • Trong hầu hết các trường hợp, truy vấn thường phải có kết cột • Mệnh đề COMPUTE ORDER BY không phép sử dụng truy vấn • Các tên cột xuất truy vấn có thể các cột các bảng truy vấn SQL Server 2005 77 3.12.1 CÚ PHÁP TRUY VẤN CON • Một truy vấn thường sử dụng làm điều kiện mệnh đề WHERE HAVING truy vấn khác • Nếu truy vấn trả giá trị, có thể sử dụng thành phần bên biểu thức (chẳng hạn xuất phép so sánh bằng) SQL Server 2005 78 3.12.1 CÚ PHÁP TRUY VẤN CON • Khi cần thực phép kiểm tra giá trị biểu thức có xuất (không xuất hiện) tập giá trị truy vấn hay không, bạn có thể sử dụng toán tử IN (NOT IN) sau: • WHERE biểu_thức [NOT] IN (truy_vấn_con) SQL Server 2005 79 3.12.1 CÚ PHÁP TRUY VẤN CON Ví dụ 1: Hiển thị tên khoa có quản lý lớp Ví dụ 2: Hiển thị masv, họ đệm, tên, tên lớp chưa thi học phần SQL Server 2005 80 3.12.2 Phép so sánh kết truy vấn • Kết truy vấn có thể sử dụng để thực phép so sánh số học với biểu thức truy vấn cha Trong trường hợp này, truy vấn sử dụng dạng: WHERE biểu_thức phép_toán_số_học [ANY|ALL] (truy_vấn_con) • Trong truy vấn phải có kết bao gồm cột SQL Server 2005 81 3.12.2 Phép so sánh kết truy vấn • Ví dụ 1: Cho biết tất thông tin học phần có số tín lớn số tín học phần có mã tindc • Ví dụ 2: Cho biết masv, hodem, ten sinh viên có điểm thi môn có mã tinvp cao điểm • Ví dụ 3: Cho biết họ tên sinh viên lớp Đồ họa có năm sinh trùng với năm sinh sinh viên lớp Dữ liệu SQL Server 2005 82 3.12.3 Sử dụng từ khóa EXISTS •Từ khóa EXISTS sử dụng kết hợp với truy vấn dạng: WHERE [NOT] EXISTS (truy_vấn_con) •Để kiểm tra xem truy vấn có trả dòng kết hay không Từ khóa EXISTS (tương ứng NOT EXISTS) trả giá trị True kết truy vấn có dòng •Điều khác biệt việc sử dụng EXISTS với hai cách nêu danh sách chọn truy vấn có thể có nhiều hai cột SQL Server 2005 83 3.12.3 Sử dụng từ khóa EXISTS Ví dụ: Cho biết họ tên sinh viên chưa có điểm thi học phần SQL Server 2005 84 Truy vấn tương quan •Cú pháp SELECT column1, column2, FROM table1 outer WHERE column1 operator (SELECT colum1, column2 FROM table2 WHERE outer.expr2) expr1 = SQL Server 2005 85 Truy vấn tương quan Ý nghĩa: •Truy vấn tương quan sử dụng câu lệnh truy vấn phải trả kết hay tập hợp kết khác cho hàng ứng viên câu lệnh •Mặt khác, truy vấn tương quan sử dụng để trả lời phần câu truy vấn mà câu trả lời phụ thuộc vào giá trị hàng ứng viên câu lệnh xử lý •Câu lệnh tham chiếu đến cột bảng câu lệnh SQL Server 2005 86 Truy vấn tương quan •Chú ý: Chúng ta có thể sử dụng toán tử ANY, ALL Exists câu lệnh truy vấn tương quan SQL Server 2005 87 Truy vấn tương quan Truy vấn tương quan sử dụng trường hợp xử lý hàng Mỗi câu truy vấn thực lần thực xử lý hàng câu lệnh Thực thi câu lệnh lồng •Câu lệnh thực trước trả giá trị •Câu lệnh thực lần, sử dụng kết câu lệnh trả SQL Server 2005 88 Truy vấn tương quan SQL Server 2005 89 Truy vấn tương quan Thực thi câu lệnh tương quan •Lấy hàng ứng viên •Thực thi câu lệnh sử dụng giá trị hàng ứng viên •Sử dụng kết từ câu lệnh để loại không hàng ứng viên •Lặp lại không hàng ứng viên SQL Server 2005 90 .. .Chương Phát biểu T -SQL dạng truy vấn liệu 3. 7 Sắp xếp kết truy vấn 3. 8 Toán tử Union 3. 9 Phép nối 3. 10 Thống kê liệu với GROUP BY 3. 11 Truy vấn (Subquery) 3. 12 Truy vấn (Subquery) SQL Server. .. SQL- 89 199 SQL- 92 SQL2 199 SQL: 199 SQL3 9 200 SQL: 200 3 SQL Server 2005 3. 1 Giới thiệu ngôn ngữ T -SQL SQL • Hầu hết sản phẩm CSDL dựa SQL thiết lập chuẩn ANSI SQL- 92 (năm 1992 ANSI SQL xem xét... ANSI SQL- 92) chúng không xem xét để làm phù hợp theo đặc tả ANSI SQL- 99 hay ANSI SQL- 20 03 • SQL Server 2000 thực theo ANSI SQL- 92 • SQL Server 2005 thực theo ANSI SQL- 99 SQL Server 2005 3. 2 Cú