10
Ngày 21 tháng 7 năm 2014 Đề cương bài giảng : Lý thuyết cơ sở dữ liệu: Truy vấn dữ liệu - VOER http://voer.edu.vn/c/truy-van-du-lieu/725a560a/8a8f7ef7 1/10 ĐỀ CƯƠNG BÀI GIẢNG : LÝ THUYẾT CƠ SỞ DỮ LIỆU KHOA HỌC VÀ CÔNG NGHỆ Truy vấn dữ liệu Tác giả: Khoa CNTT ĐHSP KT Hưng Yên Tweet 0 0 0 Truy vấn cơ bản Cú pháp cơ bản của câu lệnh select + Gồm 3 mệnh đề SELECT <danh sách các cột> FROM <danh sách các bảng> WHERE <điều kiện> <danh sách các cột> Tên các cột cần được hiển thị trong kết quả truy vấn <danh sách các bảng> Tên các bảng liên quan đến câu truy vấn <điều kiện> Biểu thức boolean xác định dòng nào sẽ được rút trích Nối các biểu thức: AND, OR, và NOT Phép toán: < , > , <= , >=, <> , =,LIKE và BETWEEN SQL và đại số quan hệ GIÁO TRÌNH 0 Thích 0 Chia sẻ

Đề Cương Bài Giảng _ Lý Thuyết Cơ Sở Dữ Liệu_ Truy Vấn Dữ Liệu - VOER

Embed Size (px)

Citation preview

Page 1: Đề Cương Bài Giảng _ Lý Thuyết Cơ Sở Dữ Liệu_ Truy Vấn Dữ Liệu - VOER

Ngày 21 tháng 7 năm 2014 Đề cương bài giảng : Lý thuyết cơ sở dữ liệu: Truy vấn dữ liệu - VOER

http://voer.edu.vn/c/truy-van-du-lieu/725a560a/8a8f7ef7 1/10

ĐỀ CƯƠNG BÀI GIẢNG : LÝ THUYẾT CƠ SỞ DỮ LIỆUKHOA HỌC VÀ CÔNG NGHỆ

Truy vấn dữ liệuTác giả: Khoa CNTT ĐHSP KT Hưng Yên

Tweet 0 0 0

Truy vấn cơ bản

Cú pháp cơ bản của câu lệnh select

+ Gồm 3 mệnh đề

SELECT <danh sách các cột>

FROM <danh sách các bảng>

WHERE <điều kiện>

<danh sách các cột>

Tên các cột cần được hiển thị trong kết quả truy vấn

<danh sách các bảng>

Tên các bảng liên quan đến câu truy vấn

<điều kiện>

Biểu thức boolean xác định dòng nào sẽ được rút trích

Nối các biểu thức: AND, OR, và NOT

Phép toán: < , > , <= , >=, <> , =,LIKE và BETWEEN

SQL và đại số quan hệ

GIÁO TRÌNH

0Thích 0Chia sẻ

Page 2: Đề Cương Bài Giảng _ Lý Thuyết Cơ Sở Dữ Liệu_ Truy Vấn Dữ Liệu - VOER

Ngày 21 tháng 7 năm 2014 Đề cương bài giảng : Lý thuyết cơ sở dữ liệu: Truy vấn dữ liệu - VOER

http://voer.edu.vn/c/truy-van-du-lieu/725a560a/8a8f7ef7 2/10

Mệnh đề select

Câu lệnh SELECT được dùng để truy xuất dữ liệu từ một bảng. Kết quả trả về dưới dạng bảng được lưu trong

1 bảng, gọi là bảng kết quả - result table (còn được gọi là tập kết quả - result set).

a) Cú pháp

Cú pháp của câu lệnh SELECT như sau:

SELECT tên_các_cộtFROM tên_bảng

b) Truy xuất nhiều cột

Để truy xuất các cột mang tên LastName và FirstName , ta dùng một câu lệnh SELECT như sau:

SELECT LastName, FirstName FROM Persons

Bảng Persons:

Kết quả trả về:

Page 3: Đề Cương Bài Giảng _ Lý Thuyết Cơ Sở Dữ Liệu_ Truy Vấn Dữ Liệu - VOER

Ngày 21 tháng 7 năm 2014 Đề cương bài giảng : Lý thuyết cơ sở dữ liệu: Truy vấn dữ liệu - VOER

http://voer.edu.vn/c/truy-van-du-lieu/725a560a/8a8f7ef7 3/10

c) Truy xuất tất cả các cột

Để truy xuất tất cả các cột từ bảng Persons, ta dùng ký hiệu * thay cho danh sách các cột:

SELECT * FROM Persons

Kết quả trả về:

d) Tập kết quả

Kết quả trả về từ một câu truy vấn SQL được lưu trong 1 tập kết quả (result set). Hầu hết các hệ thống chương

trình CSDL cho phép duyệt qua tập kết quả bằng các hàm lập trình như Move-To-First-Record, Get-

Record-Content, Move-To-Next-Record v.v...

e) Dấu chẩm phảy (;) phía sau câu lệnh

Dấu chẩm phảy là một cách chuẩn để phân cách các câu lệnh SQL nếu như hệ thống CSDL cho phép nhiều

câu lệnh SQL được thực thi thông qua một lời gọi duy nhất.

Các câu lệnh SQL trong bài viết này đều là các câu lệnh đơn (mỗi câu lệnh là một và chỉ một lệnh SQL). MS

Access và MS SQL Server không đỏi hỏi phải có dấu chấm phảy ngay sau mỗi câu lệnh SQL, nhưng một số

chương trình CSDL khác có thể bắt buộc bạn phải thêm dấu chấm phảy sau mỗi câu lệnh SQL (cho dù đó là

câu lệnh đơn). Xin nhắc lại, trong bài viết này chúng ta sẽ không dùng dấu chấm phảy ở cuối câu lệnh SQL.

Mệnh đề where

Mệnh đề WHERE được dùng để thiết lập điều kiện truy xuất.

Page 4: Đề Cương Bài Giảng _ Lý Thuyết Cơ Sở Dữ Liệu_ Truy Vấn Dữ Liệu - VOER

Ngày 21 tháng 7 năm 2014 Đề cương bài giảng : Lý thuyết cơ sở dữ liệu: Truy vấn dữ liệu - VOER

http://voer.edu.vn/c/truy-van-du-lieu/725a560a/8a8f7ef7 4/10

Để truy xuất dữ liệu trong bảng theo các điều kiện nào đó, một mệnh đề WHERE có thể được thêm vào câu

lệnh SELECT.

a) Cú pháp

Cú pháp mệnh đề WHERE trong câu lệnh SELECT như sau:

SELECT tên_cột[,…] FROM tên_bảng[,…]WHERE tên_cột phép_toán giá_trị[and/or …]

Trong mệnh đề WHERE, các phép toán được sử dụng là

Phép toán Mô tả= So sánh bằng<> So sánh không bằng> Lớn hơn< Nhỏ

hơn>= Lớn hơn hoặc bằng<= Nhỏ hơn hoặc bằngBETWEEN Nằm giữa một

khoảngLIKE So sánh mẫu chuỗi

Lưu ý: Trong một số phiên bản của SQL, phép toán <> có thể được viết dưới dạng !=

b) Sử dụng mệnh đề WHERE

Để lấy danh sách những người sống ở thành phố Sandnes, ta sử dụng mệnh đề WHERE trong câu lệnh

SELECT như sau:

SELECT * FROM PersonsWHERE City = 'Sandnes'

Bảng Persons:

Kết quả trả về:

Page 5: Đề Cương Bài Giảng _ Lý Thuyết Cơ Sở Dữ Liệu_ Truy Vấn Dữ Liệu - VOER

Ngày 21 tháng 7 năm 2014 Đề cương bài giảng : Lý thuyết cơ sở dữ liệu: Truy vấn dữ liệu - VOER

http://voer.edu.vn/c/truy-van-du-lieu/725a560a/8a8f7ef7 5/10

c) Sử dụng dấu nháy

Lưu ý rằng ở ví dụ trên ta đã sử dụng hai dấu nháy đơn (') bao quanh giá trị điều kiện 'Sandnes'.

SQL sử dụng dấu nháy đơn bao quanh các giá trị ở dạng chuỗi văn bản (text). Nhiều hệ CSDL còn cho phép

sử dụng dấu nháy kép ("). Các giá trị ở dạng số không dùng dấu nháy để bao quanh.

Với dữ liệu dạng chuỗi văn bản:

Câu lệnh đúng:SELECT * FROM Persons WHERE FirstName = 'Tove'

Câu lệnh sai:SELECT * FROM Persons WHERE FirstName = Tove

Với dữ liệu dạng số:

Câu lệnh đúng:SELECT * FROM Persons WHERE Year > 1965

Câu lệnh sai:SELECT * FROM Persons WHERE Year > '1965'

d) Toán tử Like

Toán tử like được sử dụng trong trường hợp so sánh gần đúng, có thể sử dụng các toán tử đại diện(wildcard

operators) trong bảng dưới đây

Mệnh đề order by

Page 6: Đề Cương Bài Giảng _ Lý Thuyết Cơ Sở Dữ Liệu_ Truy Vấn Dữ Liệu - VOER

Ngày 21 tháng 7 năm 2014 Đề cương bài giảng : Lý thuyết cơ sở dữ liệu: Truy vấn dữ liệu - VOER

http://voer.edu.vn/c/truy-van-du-lieu/725a560a/8a8f7ef7 6/10

Mệnh đề ORDER BY được sử dụng để sắp xếp kết quả trả về.

Sắp xếp các dòng

Mệnh đề ORDER BY được dùng để sắp xếp các dòng.

Ví dụ bảng Orders:

Ví dụ:

Để lấy danh sách các công ty theo thứ tự chữ cái (tăng dần):

SELECT Company, OrderNumber FROM OrdersORDER BY Company

Kết quả trả về:

Ví dụ:

Lấy danh sách các công ty theo thứ tự chữ cái (tăng dần) và hoá đơn đặt hàng theo thứ tự số tăng dần:

SELECT Company, OrderNumber FROM OrdersORDER BY Company, OrderNumber

Kết quả trả về:

Page 7: Đề Cương Bài Giảng _ Lý Thuyết Cơ Sở Dữ Liệu_ Truy Vấn Dữ Liệu - VOER

Ngày 21 tháng 7 năm 2014 Đề cương bài giảng : Lý thuyết cơ sở dữ liệu: Truy vấn dữ liệu - VOER

http://voer.edu.vn/c/truy-van-du-lieu/725a560a/8a8f7ef7 7/10

Ví dụ:

Lấy danh sách các công ty theo thứ tự giảm dần:

SELECT Company, OrderNumber FROM OrdersORDER BY Company DESC

Kết quả trả về:

Kết nối bảng

Trong quá trình truy vấn, dữ liệu có thể được lấy từ một hoặc nhiều bảng trong CSDL, nếu số lượng bảng từ 2

trở lên chúng ta phải thực hiện việc kết nối giữa các bảng, biểu thức kết nối ta sẽ đặt trong mệnh đề where (ở

đây chúng ta đang đề cập đến kết nối bằng)

Quay trở lại với CSDL quản lý vật tư trong bài 10, giả sử muốn hiển thị tên nhân viên đã xuất vật tư trong ngày

‘12/07/2008’, chúng ta sẽ thiết kế câu truy vấn như sau:

SELECT TEN_NV FROM NHAN_VIEN, PHIEU_XUATWHERE MA_NV = MANV_XUAT AND NGAY_XUAT

='08/12/2008'

Câu truy vấn trên thực hiện trên hai bảng là NHAN_VIEN và PHIEU_XUAT, điều kiện kết nối giữa hai bảng là

MA_NV = MANV_XUAT.

Page 8: Đề Cương Bài Giảng _ Lý Thuyết Cơ Sở Dữ Liệu_ Truy Vấn Dữ Liệu - VOER

Ngày 21 tháng 7 năm 2014 Đề cương bài giảng : Lý thuyết cơ sở dữ liệu: Truy vấn dữ liệu - VOER

http://voer.edu.vn/c/truy-van-du-lieu/725a560a/8a8f7ef7 8/10

Các bài tập về truy vấn cơ bản

Cho các bảng trong cơ sở dữ liệu quản lý vật tư ( hình vẽ ở dưới )

Hãy viết các câu truy vấn để trả lời các câu hỏi sau

Hiển thị tên và ngày sinh của những nhân viên sinh năm 1980

Hiển thị thông tin bao gồm mã, tên và ngày sinh của những nhân viên đã xuất vật tư trong tháng 6 năm 2008.

Hiển thị mã vật tư và số lượng đã xuất trong ngày 12 tháng 8 năm 2008

Hiển thị tên và đơn giá của tất cả vật tư sắp xếp theo chiều tăng của đơn giá

Hiển thị tên vật tư và số tiền tương ứng của những vật tư đã được xuất trong phiếu có số phiếu xuất là ‘001’

Tweet 0 0 00Thích 0Chia sẻ

Plugin xã hội của Facebook

Cũng đăng trên Facebook Đăng với tư cách của Ngoc Vuquoc (Không phải bạn?) Bình luận

Viết bình luận

TẢI VỀ TÁI SỬ DỤNG(/user/reuse/m/8a8f7ef7/1)

(/profile/13)

Khoa CNTT ĐHSP KT Hưng Yên (/profile/13)

47 GIÁO TRÌNH (/PROFILE/13?TYPES=2) | 1411 TÀI LIỆU (/PROFILE/13?TYPES=1)

Đề cương bài giảng : Lý thuyết cơ sở dữ liệu

Bài 1: Các khái niệm về hệ cơ sở dữ liệu

Bài 2: Mô hình thực thể - Liên kết

Bài 3: Tổng kết mô hình thực thể liên kết - Câu hỏi ôn tập

Bài 4: Mô hình quan hệ, các rằng buộc quan hệ

Bài 5: Chuyển đổi mô hình ER thành mô hình quan hệ

Bài 6: Các phép toán đại số quan hệ

Bài 7: Các nguyên tắc thiết kế lược đồ quan hệ và phụ thuộc hàm

Bài 8: Chuẩn hóa lược đồ quan hệ

Bài 9: Tổng kết và kểm tra giữa kỳ

Bài 10: Giới thiệu ngôn ngữ truy vấn cấu trúc (SQL)

Bài 11: Thực hành câu lệnh create database, create table, alter table, drop table

Bài 12: Truy vấn dữ liệu

Page 9: Đề Cương Bài Giảng _ Lý Thuyết Cơ Sở Dữ Liệu_ Truy Vấn Dữ Liệu - VOER

Ngày 21 tháng 7 năm 2014 Đề cương bài giảng : Lý thuyết cơ sở dữ liệu: Truy vấn dữ liệu - VOER

http://voer.edu.vn/c/truy-van-du-lieu/725a560a/8a8f7ef7 9/10

ĐÁNH GIÁ:

Các Phương Pháp Ðảm Bảo Data Integrity (/m/cac-phuong-phap-am-bao-data-integrity/3df3a818)

Tìm hiểu JNDI và dịch vụ quản lí trên CosNaming của Corba (/m/tim-hieu-jndi-va-dich-vu-quan-li-tren-cosnaming-

cua-corba/c91a184a)

Thực hành một số dạng truy vấn khác và câu lệnh cập nhật dữ liệu (/m/thuc-hanh-mot-so-dang-truy-van-khac-va-

cau-lenh-cap-nhat-du-lieu/74df69c8)

Nhận dạng và xác thực điện tử (/m/nhan-dang-va-xac-thuc-dien-tu/d2d97958)

Truy xuất dữ liệu sử dụng công nghệ ADO (/m/truy-xuat-du-lieu-su-dung-cong-nghe-ado/dd06d9de)

Thị trường (/m/thi-truong/1582c2fb)

Bài toán 8 quân hậu (/m/bai-toan-8-quan-hau/a5a1e2a6)

Sử dụng câu lệnh Debug.Print (/m/su-dung-cau-lenh-debugprint/06299e4a)

Các tiêu chuẩn ổn định (/m/cac-tieu-chuan-on-dinh/6e223a25)

Đặc tả yêu cầu (/m/dac-ta-yeu-cau/5a6ad290)

TRƯỚC

TIẾP

CÙNG TÁC GIẢ

Thực hành truy vấn cơ bản (/m/thuc-hanh-truy-van-co-ban/030b56f4)

Phụ lục A (/m/phu-luc-a/29a457b9)

Các cấu trúc (/m/cac-cau-truc/b57ba37f)

Sử dụng bcp và Bulk insert để import data (/m/su-dung-bcp-va-bulk-insert-de-import-data/f1a886bc)

Ngôn ngữ truy vấn CSDL SQL (tiếp theo) (/m/ngon-ngu-truy-van-csdl-sql-tiep-theo/f024e7e6)

Các phương pháp sắp xếp cơ bản (/m/cac-phuong-phap-sap-xep-co-ban/6885d36d)

Kiến trúc của ADO.NET và Các đối tượng (/m/kien-truc-cua-adonet-va-cac-doi-tuong/1d011e63)

Hàm kết hợp và gom nhóm (/m/ham-ket-hop-va-gom-nhom/8e5d0a03)

Đối tượng Dataset và DataTable-1 (/m/doi-tuong-dataset-va-datatable-1/1ba9dbc2)

NỘI DUNG TƯƠNG TỰ

Truy vấn dữ liệu (/c/truy-van-du-lieu/725a560a/8a8f7ef7)

Bài 13: Thực hành truy vấn cơ bản

Bài 14: Phép hợp, toán tử UNION, EXISTS, IN và Truy vấn lồng

Bài 15: Thực hành các phép toán tập hợp và truy vấn lồng

Bài 16: Hàm kết hợp và gom nhóm

Bài 17: Thực hành hàm kết hợp và gom nhóm

Bài 18: Một số dạng truy vấn khác và câu lệnh cập nhật dữ liệu

Bài 19: Thực hành một số dạng truy vấn khác và câu lệnh cập nhật dữ liệu

Tài liệu tham khảo (/c/tai-lieu-tham-khao/725a560a/d1ff4d27)

0 dựa trên 0 đánh giá

Page 10: Đề Cương Bài Giảng _ Lý Thuyết Cơ Sở Dữ Liệu_ Truy Vấn Dữ Liệu - VOER

Ngày 21 tháng 7 năm 2014 Đề cương bài giảng : Lý thuyết cơ sở dữ liệu: Truy vấn dữ liệu - VOER

http://voer.edu.vn/c/truy-van-du-lieu/725a560a/8a8f7ef7 10/10

Thư viện Học liệu Mở Việt Nam (VOER) được tài trợ bởi Vietnam Foundation (http://www.vnfoundation.org) và vận hành trên

nền tảng Hanoi Spring (http://www.hanoispring.com).

Các tài liệu đều tuân thủ giấy phép Creative Commons Attribution 3.0 trừ khi ghi chú rõ ngoại lệ.

Facebook (https://www.facebook.com/voer.edu.vn)

SQL (/m/sql/f88e91ba)

TRƯỚC

TIẾP