Tải bản đầy đủ (.ppt) (18 trang)

Bài giảng điện tử môn tin học: Truy xuất cơ sở dữ liệu của SQL Server pptx

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (302.48 KB, 18 trang )

1
TRUY XUẤT CƠ SỞ DỮ LIỆU
CỦA SQL SERVER
7
7
2
1. Câu lệnh SELECT
1. Câu lệnh SELECT
SELECT
SELECT
[ALL | DICTINCT] [
[ALL | DICTINCT] [
TOP
TOP
n [
n [
WITH TIES
WITH TIES
] ]
] ]
<select_list>
<select_list>
[
[
INTO
INTO
new_table]
new_table]
FROM
FROM
table_source [


table_source [
AS
AS
newname]
newname]
[
[
WHERE
WHERE
search_condition]
search_condition]
[
[
GROUP BY
GROUP BY
goup_by_expression]
goup_by_expression]
[
[
HAVING
HAVING
search_condition]
search_condition]
[
[
ORDER BY
ORDER BY
order_expression [
order_expression [
ASC

ASC
|
|
DESC
DESC
] ]
] ]
[
[
COMPUTE
COMPUTE
|
|
COMPUTEBY
COMPUTEBY
expression]
expression]
3

Từ khóa
Từ khóa


DISTINCT
DISTINCT
: Loại bỏ các mẫu tin trùng
: Loại bỏ các mẫu tin trùng
trong tập kết quả.
trong tập kết quả.


Từ khóa
Từ khóa
TOP n
TOP n
: Lấy ra n mẫu tin đầu tiên
: Lấy ra n mẫu tin đầu tiên
+
+
WITH TIES
WITH TIES
các mẫu tin ngang bằng giá trị
các mẫu tin ngang bằng giá trị
trong cột
trong cột
ORDER BY
ORDER BY
được liệt kê.
được liệt kê.
vd:
vd:
Select Top
Select Top


5
5
With Ties
With Ties
orderid, productid, quantity
orderid, productid, quantity

From
From
[Order Details]
[Order Details]
Order By
Order By


quantity DESC
quantity DESC
4

Từ khóa
Từ khóa


AS
AS
: Đặt bí danh cho bảng, cột
: Đặt bí danh cho bảng, cột
Select
Select
p.Productname
p.Productname
as
as
Name
Name
From
From

Products
Products
as
as
p
p

Mệnh đề
Mệnh đề


SELECT INTO
SELECT INTO
: Sinh thêm một bảng mới
: Sinh thêm một bảng mới
mà dữ liệu được lấy từ các bảng khác.
mà dữ liệu được lấy từ các bảng khác.
Select
Select
FirstName, Lastname
FirstName, Lastname
Into
Into
EmployeeNames
EmployeeNames
From
From
Employees
Employees


Dùng với các hàm
Dùng với các hàm
:
:
Sum
Sum
,
,
Max
Max
,
,
Min
Min
,
,
Avg
Avg
,
,
Count
Count
Select
Select
Sum
Sum
(quantity)
(quantity)
From
From

[Order details]
[Order details]
5

Mệnh đề
Mệnh đề
WHERER
WHERER
,
,
GROUP BY
GROUP BY
, và
, và
HAVING
HAVING
:
:

Where và Having dùng để lọc dữ liệu trong câu
Where và Having dùng để lọc dữ liệu trong câu
Select với nhằm thỏa điều kiện
Select với nhằm thỏa điều kiện

Các phép toán có thể dùng cho Where:
Các phép toán có thể dùng cho Where:
> , >= , < , <= , =, <> , ! =
> , >= , < , <= , =, <> , ! =
NOT, AND, OR
NOT, AND, OR

LIKE, BETWEEN … AND
LIKE, BETWEEN … AND
IS NULL, NOT IS NULL
IS NULL, NOT IS NULL

Lưu ý:
Lưu ý:


Having
Having
để giới hạn kết quả do
để giới hạn kết quả do
Group By
Group By
sản sinh ở các hàm và chỉ dùng với
sản sinh ở các hàm và chỉ dùng với


Group By
Group By
;
;
Whewe
Whewe
giới hạn kết quả trước khi
giới hạn kết quả trước khi
Group By
Group By
6


Sử dụng Group By với toán tử
Sử dụng Group By với toán tử
WITH ROLLUP
WITH ROLLUP
:
:
ROLLUP
ROLLUP
sẽ chèn thêm các dòng Total nằm trước
sẽ chèn thêm các dòng Total nằm trước
các nhóm mẫu tin được phân theo
các nhóm mẫu tin được phân theo
GROUP BY
GROUP BY
Ví dụ:
Ví dụ:
Select
Select
ProductID, OrderID, Sum (Quantity) as
ProductID, OrderID, Sum (Quantity) as
Total_quantity
Total_quantity
From
From
[Order details]
[Order details]
Where
Where
OrderID < 10250

OrderID < 10250
Group By
Group By
OrderID, ProductID
OrderID, ProductID
With Rollup
With Rollup
Order By
Order By
OrderID, ProductID
OrderID, ProductID
7

Sử dụng Group By với toán tử
Sử dụng Group By với toán tử
WITH CUBE
WITH CUBE
:
:
CUBE
CUBE
thêm các dòng Total của mỗi sự kết hợp
thêm các dòng Total của mỗi sự kết hợp
có thể có
có thể có
giữa các cột
giữa các cột
Ví dụ:
Ví dụ:
Select

Select
ProductID, OrderID, Sum (Quantity) as
ProductID, OrderID, Sum (Quantity) as
Total_quantity
Total_quantity
From
From
[Order details]
[Order details]
Where
Where
OrderID < 10250
OrderID < 10250
Group By
Group By
OrderID, ProductID
OrderID, ProductID
With Cube
With Cube
Order By
Order By
OrderID, ProductID
OrderID, ProductID
8

Dùng toán tử
Dùng toán tử
COMPUTE
COMPUTE



COMPUT BY
COMPUT BY
: Thông
: Thông
thường dùng để kiểm tra số liệu, dùng kèm với các
thường dùng để kiểm tra số liệu, dùng kèm với các
hàm thống kê SUM, AVG, MAX, MIN…
hàm thống kê SUM, AVG, MAX, MIN…
Vd1
Vd1
:
:
Select
Select
productID, orderid, quantity
productID, orderid, quantity
From
From
[Order Details]
[Order Details]
Order By
Order By
productID, OrderId
productID, OrderId
Compute
Compute
Sum (quantity)
Sum (quantity)
Vd2:

Vd2:
Select
Select
productID, orderid, quantity
productID, orderid, quantity
From
From
[Order Details]
[Order Details]
Order By
Order By
productID, OrderId
productID, OrderId
Compute
Compute
Sum
Sum
(quantity)
(quantity)
By
By
productid
productid
Compute
Compute


Sum
Sum
(quantity)

(quantity)
Ghi chú Khi dùng
toán tử Compute
thì khi Select buộc
phải có Order By
9
2. Dùng
2. Dùng
JOIN:
JOIN:


sử dụng JOIN để select data
sử dụng JOIN để select data
từ nhiều table dựa trên mối quan hệ logic
từ nhiều table dựa trên mối quan hệ logic
giữa các table (logical relationships). Có
giữa các table (logical relationships). Có
thể tóm tắt các loại Join thông dụng bằng
thể tóm tắt các loại Join thông dụng bằng
các hình sau:
các hình sau:


Inner Join
Inner Join
Left
Left
Outer Join
Outer Join

Right
Right
Outer Join
Outer Join
Full Outer Join
Full Outer Join
10
SELECT a.au_fname, a.au_lname, p.pub_name
SELECT a.au_fname, a.au_lname, p.pub_name
FROM authors AS a
FROM authors AS a
INNER JOIN
INNER JOIN
publishers AS p
publishers AS p


ON a.city = p.city
ON a.city = p.city
ORDER BY p.pub_name ASC, a.au_lname ASC, a.au_fname ASC
ORDER BY p.pub_name ASC, a.au_lname ASC, a.au_fname ASC
SELECT a.au_fname, a.au_lname, p.pub_name
SELECT a.au_fname, a.au_lname, p.pub_name
FROM authors a
FROM authors a
LEFT OUTER JOIN
LEFT OUTER JOIN
publishers p
publishers p



ON a.city = p.city
ON a.city = p.city
ORDER BY p.pub_name ASC, a.au_lname ASC, a.au_fname ASC
ORDER BY p.pub_name ASC, a.au_lname ASC, a.au_fname ASC
SELECT a.au_fname, a.au_lname, p.pub_name
SELECT a.au_fname, a.au_lname, p.pub_name
FROM authors AS a
FROM authors AS a
RIGHT OUTER JOIN
RIGHT OUTER JOIN
publishers AS p
publishers AS p


ON a.city = p.city
ON a.city = p.city
ORDER BY p.pub_name ASC, a.au_lname ASC, a.au_fname ASC
ORDER BY p.pub_name ASC, a.au_lname ASC, a.au_fname ASC
SELECT a.au_fname, a.au_lname, p.pub_name
SELECT a.au_fname, a.au_lname, p.pub_name
FROM authors a
FROM authors a
FULL OUTER JOIN
FULL OUTER JOIN
publishers p
publishers p


ON a.city = p.city

ON a.city = p.city
ORDER BY p.pub_name ASC, a.au_lname ASC, a.au_fname ASC
ORDER BY p.pub_name ASC, a.au_lname ASC, a.au_fname ASC
11
3.
3.
Dùng Sub_Queries
Dùng Sub_Queries

Sub queries là một câu lệnh Select mà nó trả về một giá
Sub queries là một câu lệnh Select mà nó trả về một giá
trị đơn hoặc một tập các giá trị và nó được nằm trong
trị đơn hoặc một tập các giá trị và nó được nằm trong
các câu lệnh như Select, Insert, Update, or Delete.
các câu lệnh như Select, Insert, Update, or Delete.

Một SubQuery có thể được dùng bất kỳ nơi nào trong
Một SubQuery có thể được dùng bất kỳ nơi nào trong
biểu thức được cho phép.
biểu thức được cho phép.

Một SubQuery cũng có thể được gọi từ một câu Select
Một SubQuery cũng có thể được gọi từ một câu Select
khác (32 cấp).
khác (32 cấp).
+ Ngắt câu lệnh phức tạp thành những đoạn truy vấn
+ Ngắt câu lệnh phức tạp thành những đoạn truy vấn
đơn giản.
đơn giản.
+ Trả lời một truy vấn từ một truy vấn khác.

+ Trả lời một truy vấn từ một truy vấn khác.
+ Các Sub Query hầu như có thể viết bằng Join và SQL
+ Các Sub Query hầu như có thể viết bằng Join và SQL
Server luôn luôn thi hành những câu lệnh Join nhanh
Server luôn luôn thi hành những câu lệnh Join nhanh
hơn SubQueries.
hơn SubQueries.
+
+
Không thể dùng SubQueries trên cột hình ảnh.
Không thể dùng SubQueries trên cột hình ảnh.
12
Select Distinct
Select Distinct
pub_name From publishers
pub_name From publishers
Where
Where
pub_id
pub_id
IN
IN
(
(
Select
Select
pub_id
pub_id
From
From

titles
titles


Where
Where
pub_id = publishers.pub_id
pub_id = publishers.pub_id
And
And
type =
type =
'business'
'business'
)
)
Select Distinct
Select Distinct
pub_name
pub_name
From
From
publishers
publishers
as
as
P
P
Inner Join
Inner Join

titles
titles
as
as
T
T
ON
ON
P.pub_id = T.pub_id
P.pub_id = T.pub_id
Where
Where
type =
type =
'business'
'business'
Select Distinct
Select Distinct
pub_name
pub_name
From
From
publishers
publishers
as
as
p, titles
p, titles
as
as

t
t
Where
Where
p.pub_id = t.pub_id And type =
p.pub_id = t.pub_id And type =
'business'
'business'
13
SELECT
SELECT
title
title
FROM
FROM
titles
titles
WHERE
WHERE


EXISTS
EXISTS


(
(
SELECT
SELECT
*

*
FROM
FROM
publishers
publishers


WHERE
WHERE
pub_id = titles.pub_id
pub_id = titles.pub_id
AND
AND
city LIKE 'B%')
city LIKE 'B%')
SELECT
SELECT
title
title
FROM
FROM
titles
titles
WHERE
WHERE
pub_id
pub_id
IN
IN



(
(
SELECT
SELECT
pub_id
pub_id
FROM
FROM
publishers
publishers


WHERE
WHERE
city
city
LIKE
LIKE
'B%')
'B%')
Select Distinct
Select Distinct
title
title
From
From
titles
titles
as

as
T
T
Inner Join
Inner Join
publishers
publishers
as
as


P
P
ON
ON
T.pub_id = P.pub_id
T.pub_id = P.pub_id
Where
Where
city
city
LIKE
LIKE
'B%'
'B%'
14
SELECT
SELECT
title
title

FROM
FROM
titles
titles
WHERE
WHERE


EXISTS
EXISTS


(
(
SELECT
SELECT
*
*
FROM
FROM
publishers
publishers


WHERE
WHERE
pub_id = titles.pub_id
pub_id = titles.pub_id
AND
AND

city LIKE 'B%')
city LIKE 'B%')
SELECT
SELECT
title
title
FROM
FROM
titles
titles
WHERE
WHERE
pub_id
pub_id
IN
IN


(
(
SELECT
SELECT
pub_id
pub_id
FROM
FROM
publishers
publishers



WHERE
WHERE
city
city
LIKE
LIKE
'B%')
'B%')
Select Distinct
Select Distinct
title
title
From
From
titles
titles
as
as
T
T
Inner Join
Inner Join
publishers
publishers
as
as


P
P

ON
ON
T.pub_id = P.pub_id
T.pub_id = P.pub_id
Where
Where
city
city
LIKE
LIKE
'B%'
'B%'
15
4. Chèn dữ liệu:
4. Chèn dữ liệu:


INSERT [INTO]
INSERT [INTO]
<Table_Name> (Col_1, Col_2, )
<Table_Name> (Col_1, Col_2, )
VALUES
VALUES
(Value_1,Value_2, )
(Value_1,Value_2, )

Chèn dữ liệu từ 1 câu lệnh
Chèn dữ liệu từ 1 câu lệnh
Select
Select

INSERT
INSERT
INTO <Table_1>
INTO <Table_1>
SELECT
SELECT
<List_Select>
<List_Select>
FROM
FROM
<T
<T
able_source
able_source
>
>
[
[
WHERE
WHERE


search_condition
search_condition
]
]
Insert Into
Insert Into
MyBooks
MyBooks

Select
Select
title_id, title, type
title_id, title, type


From
From
titles
titles
Where
Where
type = 'mod_cook'
type = 'mod_cook'
16
5. Cập nhật dữ liệu:
5. Cập nhật dữ liệu:


UPDATE
UPDATE
<table_name>
<table_name>
SET
SET
<column_name> = <expression> [, n…]
<column_name> = <expression> [, n…]
[
[
FROM

FROM
<table_list> ]
<table_list> ]
[
[
WHERE
WHERE
<search_condition> ]
<search_condition> ]
Update
Update
authors
authors
Set
Set
state = 'PC’ , city = 'Bay City'
state = 'PC’ , city = 'Bay City'
Where
Where
state = 'CA'
state = 'CA'
And
And
city = 'Oakland‘
city = 'Oakland‘
Update
Update
titleauthor
titleauthor
Set

Set
title_id = T.title_id
title_id = T.title_id
From
From
titles as T
titles as T
Inner Join
Inner Join
titleauthor Ta
titleauthor Ta
On
On
T.title_id =
T.title_id =
Ta.title_id
Ta.title_id
Inner Join
Inner Join
authors as A
authors as A
On
On
Ta.au_id = A.au_id
Ta.au_id = A.au_id
where
where
T.title = 'Net Etiquette‘
T.title = 'Net Etiquette‘
And

And
au_lname = 'Locksley'
au_lname = 'Locksley'
17
6. Xóa dữ liệu:
6. Xóa dữ liệu:


DELETE
DELETE
[
[
FROM
FROM
] <table_name>
] <table_name>
[
[
WHERE
WHERE
<search_condition> ]
<search_condition> ]
Delete
Delete
authors
authors
Where
Where
au_lname = 'McBadden'
au_lname = 'McBadden'

Delete
Delete


From
From
authors
authors
where
where
au_lname = 'McBadden'
au_lname = 'McBadden'
Xóa toàn bộ dữ liệu dùng TRUNCATE TABLE.
Xóa toàn bộ dữ liệu dùng TRUNCATE TABLE.

Giống như câu lệnh Delete. Nhanh hơn câu lệnh Delete.
Giống như câu lệnh Delete. Nhanh hơn câu lệnh Delete.

Không bật các bẫy lỗi (trigger)
Không bật các bẫy lỗi (trigger)
Cú pháp
Cú pháp
:
:
TRUNCATE TABLE
TRUNCATE TABLE
<Table_Name>
<Table_Name>
18
Xây dựng truy vấn CSDL

Xây dựng truy vấn CSDL
bằng Enterprise Manager
bằng Enterprise Manager

×