1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài tập thực hành môn Hệ quản trị cơ sơ dữ liệu

44 1,8K 10
Tài liệu đã được kiểm tra trùng lặp

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Bài tập thực hành môn Hệ quản trị cơ sở dữ liệu
Chuyên ngành Hệ quản trị cơ sở dữ liệu
Thể loại Bài tập thực hành
Định dạng
Số trang 44
Dung lượng 429,6 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Tài liệu môn Hệ quản Trị CSDL

Trang 1

CHƯƠNG 2

SQL (Structured Query Language)

Trang 2

Giới thiệu chung

„ Là ngôn ngữ chuẩn cho các CSDL quan hệ

„ Chuẩn ANSI SQL được công bố vào năm 1989,

Trang 3

DDL (Data Definition Language)

„ DDL là ngôn ngữ định nghĩa dữ liệu gồm các

lệnh

„CREATE/ALTER/DROP DATABASE

„CREATE/ALTER/DROP TABLE

Trang 4

DML (Data Manipulation Language)

„ DML là ngôn ngữ thao tác dữ liệu

„ Gồm các lệnh:

„SELECT

„INSERT, UPDATE, DELETE, TRUNCATE

Trang 5

DCL (Data Control Language)

„ DCL là ngôn ngữ điều khiển dữ liệu

„ Gồm các lệnh

„GRANT/REVOKE/ADD

„COMMIT/ROLLBACK

Trang 6

Truy vấn dữ liệu (Data query)

„ Cú pháp chung của lệnh SELECT

Trang 7

Câu lệnh truy vấn đơn giản

„ Ví dụ: liệt kê tất cả giáo sư khoa IT

Trang 8

Chiến lược chung để đánh giá câu truy vấn đơn giản

„ Bước 1: mệnh đề FROM được đánh giá

trước Æ tạo ra 1 bảng là kết quả tích

Cartesian của các bảng trong mệnh đề

FROM

„ Bước 2: mệnh đề WHERE được đánh giá

Æ Tạo ra 1 bảng mới từ bảng của bước 1

và chỉ chứa các hàng thỏa điều kiện

WHERE

„ Bước 3: mệnh đề SELECT được đánh giá

-Æ tạo ra 1 bảng mới từ bảng của bước 2

Trang 9

Mệnh đề SELECT

„ Để đưa ra danh sách các cột cần xem

„ Cú pháp:

SELECT [ ALL | DISTINCT ][ TOP n [ PERCENT ]

[ WITH TIES ] ] < select_list >

Trang 10

hiện thời các khách hàng đang sống

SELECT DISTINCT City , Region

FROM Customers

Trang 11

Mệnh đề SELECT

„ TOP n [PERCENT]: chỉ có n hàng đầu tiên hay

n% của các hàng của bảng kết quả được xuất

„ WITH TIES: cho phép 1 số hàng được thêm vào bảng kết quả gốc nếu các hàng này có cùng giá trị trong cột ORDER BY với hàng cuối cùng của n hàng đầu tiên được xác định.

„ Ví dụ: liệt kê 3 hoá đơn có cước phí cao nhất

SELECT top 3 with ties OrderID, Freight FROM Orders

Order by Freight DESC

N ếu hàng thứ tư có cùng cước phí (freight) với hàng thứ ba trong bảng kết quả thì sao???

Trang 12

Mệnh đề SELECT

„ Ví dụ 1:

SELECT OrderID, ProductID,

Amount = UnitPrice*Quantity* (1- Discount)

FROM [Order Details]

Trang 13

Các hàm tập hợp (Aggregate function)

Tên hàm Ý nghĩa SUM Tính tổng các số MIN Trả về giá trị nhỏ nhất MAX Trả về giá trị lớn nhất AVG Tính giá trị trung bình COUNT Đếm số phần tử (not null)

Được dùng để tổng kết các giá trị của 1 cột hay 1

nhóm cột bên trong 1 bảng và cho kết quả là 1 giá trị đơn

Trang 14

Ví dụ các hàm gộp trong lệnh select

„ SELECT sum (Freight) FROM dbo.Orders

Î Tính tổng cước phí chuyên chở của tất cả hóa đơn

„ SELECT count (OrderID) from dbo.Orders

Î Đếm số hoá đơn

„ SELECT SUM (UnitPrice*Quantity*(1-Discount)) FROM dbo.[Order Details]

Î Tính doanh số bán hàng

Trang 15

WHERE Region = 'WA'

„ Dùng like , is null, is not null, between and ,

!=, >, <….

Trang 16

ASC (ascending) : xếp theo thứ tự tăng

DESC (descending): xếp theo thứ tự giảm

Trang 17

Nhóm dữ liệu trong bảng kết quả

„ Những mệnh đề dùng để nhóm dữ trong

bảng kết quả:

nhóm bằng cách dùng các hàm gộp

COMPUTE trong lệnh SELECT được dùng để phát ra các hàng tổng hợp bằng cách dùng hàm gộp Mệnh đề COMPUTE BY được dùng

để tổng hợp thêm các hàng kết quả theo cột

Trang 18

„ group_by_expression: biểu thức dùng để xác định cột được nhóm (tên cột)

Trang 20

Ví dụ 2

„ SELECT Type, Advance = SUM (Advance)

FROM Titles

WHERE Type IN ('business', 'mod_cook', 'trad_cook')

GROUP BY ALL Type

Trang 21

hay của mệnh đề GROUP BY

GROUP BY pub_id HAVING (AVG(price) > 10)

Trang 22

Sử dụng WHERE và HAVING

„ Mệnh đề HAVING giống như mệnh đề WHERE

nhưng chỉ áp dụng cho cả nhóm trong khi mệnh

đề WHERE áp dụng cho từng hàng.

„ Một truy vấn có thể chứa cả mệnh đề WHERE và mệnh đề HAVING

„ Mệnh đề WHERE được áp dụng trước cho các

hàng trong bảng được truy vấn Chỉ những hàng nào thoả mãn điều kiện của mệnh đề WHERE mới được nhóm dữ liệu.

„ Sau đó mệnh đề HAVING sẽ được áp dụng cho các

Trang 23

Ví dụ

„ SELECT titles.pub_id, AVG(titles.price)

FROM titles INNER JOIN publishers

Trang 24

SELECT INTO

„ Lệnh SELECT với mệnh đề INTO được dùng dể lưu trữ

kết quả truy vấn vào 1 bảng mới mà không cần phải

Trang 26

Outer Join – Example

„ Relation loan

I Relation borrower

customer_name loan_number

Jones Smith

Jones Smith L-170L-230L-170L-230

3000 4000 1700

loan_number amount

L-170 L-230 L-260

branch_name

Downtown Redwood Perryridge

Trang 27

Outer Join – Example

branch_name

Downtown Redwood

Jones Smith

null

Jones Smith

null

loan_number amount

L-170 L-230 L-260

L-170 L-230 L-260

3000 4000 1700

3000 4000 1700

customer_name

branch_name

Downtown Redwood Perryridge

Downtown Redwood Perryridge

I Left Outer Join

loan borrower

Trang 28

Outer Join – Example

L-170 L-230 L-155

L-170 L-230 L-155

3000 4000

null

3000 4000

null

customer_name

Jones Smith Hayes

Jones Smith Hayes

branch_name

Downtown Redwood

null

Downtown Redwood

branch_name

Downtown Redwood

I Full Outer Join

loan borrower

I Right Outer Join

loan borrower

Trang 29

Kết nối các bảng

„ Kết nối chỉ tồn tại trong thời gian truy vấn.

„ Kết nối không thay đổi dữ liệu trong các bảng của

JOIN Publishers p on t.Pub_Id=p.Pub_Id

WHERE Pub_Name='New Moon Books'

Trang 30

Các cột tham gia kết nối

„ Nếu kết nối nhiều hơn 2 bảng thì kết nối 2 bảng trước, sau đó kết nối nhóm này với bảng thứ ba.

Trang 31

Biểu thức đại số quan hệ tương đương

SELECT <select list>

FROM Rel1 JOIN Rel2 ON condition1 […,n]

Tương đương với

1

(Re Rel )

Trang 32

Truy vấn con - Subqueries

„ Subquery là lệnh SELECT mà kết quả trả

về là 1 giá trị đơn (single value) hoặc tập giá trị và được đặt lồng vào bên trong các lệnh SELECT, INSERT, UPDATE, hay

DELETE, hay bên trong truy vấn con khác

„ Subquery có thể được dùng bất kỳ nơi nào

mà biểu thức được phép dùng

„ Subquery thực thi chậm hơn phép kết

Trang 33

AS MaxUnitPrice

FROM Northwind.dbo.Orders AS Ord

Trang 35

IN, ANY, ALL, EXISTS

„ WHERE expression [NOT] IN (subquery)

„ WHERE expression comparison_operator

[ANY | ALL] (subquery)

„ WHERE [NOT] EXISTS (subquery)

Trang 36

Subqueries với toán tử IN

„ Kết quả của subquery được dùng với IN

(hay với NOT IN) thường là 1 danh sách

(list) chứa từ 0 đến nhiều giá trị

Trang 37

Subquery với các toán tử so sánh

„ Các toán tử so sánh đơn giản (unmodified comparison operator)

=, < >, >, > =, <, < =

„ SELECT DISTINCT title FROM titles

WHERE price > (SELECT MIN(price)

FROM titles)

Trang 38

Subquery với các toán tử so sánh

„ Subquery bắt đầu với toán tử so sánh

phức sẽ trả về 1 danh sách (list) của 0 hay nhiều giá trị và có thể bao gồm cả mệnh

Trang 39

Subquery với các toán tử so sánh

„ >ALL có nghĩa lớn hơn mọi giá trị

„ >ANY có nghĩa lớn hơn ít nhất 1 giá trị

Vd: >ALL (1, 2, 3) lớn hơn 3

>ANY (1, 2, 3) lớn hơn 1

„ Ví dụ:

SELECT au_lname, au_fname

FROM authors WHERE city <> ALL (SELECT city FROM publishers)

Trang 40

Ví dụ

„ Select Publisher_id=pub_id,

Name=pub_nameFrom publishers

where city = any (select city from authors)

Trang 41

Insert, update, delete…

„ Create table newproducts (

Prodduct id int not null,CategoryID int null

UnitPrice float nullsupplier int null

)

„ Insert into newproducts (productid,

Productname) values (123, ‘ice tea’)

Trang 43

„ Update products set unitprice= unitprice*1.1

„ Update [order details]

set discount = discount + 0.05

where discount <>0 and productid=2

„ Update [order details]

set unitprice = (

select unitprice=unitprice*0.2 from products

where productid=2) where productid=1

Trang 44

„ Truncate table newproducts

Ngày đăng: 28/03/2014, 20:41

HÌNH ẢNH LIÊN QUAN

Bảng kết quả: - Bài tập thực hành môn Hệ quản trị cơ sơ dữ liệu
Bảng k ết quả: (Trang 17)

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w