30
Bài 3: NGÔN NGỮ TRUY VẤN CÓ CẤU TRÚC (SQL)

Bài 3: Ngôn ngữ truy vân có cấu trúc (SQL) - Giáo trình FPT

Embed Size (px)

DESCRIPTION

Giới thiệu ngôn ngữ SQL Giới thiệu Oracle SQL Giới thiệu các nhóm ngôn ngữ của SQL Tìm hiểu nhóm ngôn ngữ truy vấn dữ liệu với mệnh đề SELECT

Citation preview

Page 1: Bài 3: Ngôn ngữ truy vân có cấu trúc (SQL) - Giáo trình FPT

Bài 3:NGÔN NGỮ TRUY VẤN CÓ CẤU TRÚC (SQL)

Page 2: Bài 3: Ngôn ngữ truy vân có cấu trúc (SQL) - Giáo trình FPT

Tìm hiểu các bước thiết kế CSDL quan hệ

Tìm hiểu các khái niệm trong thiết kế CSDL quan hệ:

Các khái niệm trong thiết kế CSDL mức khái niệm

Các khái niệm trong thiết kế CSDL mức vật lý

Làm quen với hệ quản trị CSDL Microsoft Access

Tạo các bảng, liên kết các bảng và tạo các truy vấn

trong Access.

Hệ thống bài cũ

Tìm hiểu các bước thiết kế CSDL quan hệ

Tìm hiểu các khái niệm trong thiết kế CSDL quan hệ:

Các khái niệm trong thiết kế CSDL mức khái niệm

Các khái niệm trong thiết kế CSDL mức vật lý

Làm quen với hệ quản trị CSDL Microsoft Access

Tạo các bảng, liên kết các bảng và tạo các truy vấn

trong Access.

Slide 3 - Ngôn ngữ truy vấn có cấu trúc (SQL) 2

Page 3: Bài 3: Ngôn ngữ truy vân có cấu trúc (SQL) - Giáo trình FPT

Giới thiệu ngôn ngữ SQL

Giới thiệu Oracle SQL

Giới thiệu các nhóm ngôn ngữ của SQL

Tìm hiểu nhóm ngôn ngữ truy vấn dữ liệu với mệnh đề

SELECT

Mục tiêu bài học hôm nay

Giới thiệu ngôn ngữ SQL

Giới thiệu Oracle SQL

Giới thiệu các nhóm ngôn ngữ của SQL

Tìm hiểu nhóm ngôn ngữ truy vấn dữ liệu với mệnh đề

SELECT

Slide 3 - Ngôn ngữ truy vấn có cấu trúc (SQL) 3

Page 4: Bài 3: Ngôn ngữ truy vân có cấu trúc (SQL) - Giáo trình FPT

SQL - Structured Query Language: Ngôn ngữ truy vấn có

cấu trúc

SQL cho phép Tạo CSDL, Thao tác trên dữ liệu (Lưu trữ

dữ liệu, Sửa dữ liệu, Xóa dữ liệu)

Được ANSI và ISO chuẩn hóa

Đa số các DBMS hiện nay sử dụng SQL (MS SQL Server –

T- SQL, Microsoft Access, Oracle – PL/SQL, DB2, MySQL…)

Ngôn ngữ SQL

SQL - Structured Query Language: Ngôn ngữ truy vấn có

cấu trúc

SQL cho phép Tạo CSDL, Thao tác trên dữ liệu (Lưu trữ

dữ liệu, Sửa dữ liệu, Xóa dữ liệu)

Được ANSI và ISO chuẩn hóa

Đa số các DBMS hiện nay sử dụng SQL (MS SQL Server –

T- SQL, Microsoft Access, Oracle – PL/SQL, DB2, MySQL…)

Slide 3 - Ngôn ngữ truy vấn có cấu trúc (SQL) 4

Page 5: Bài 3: Ngôn ngữ truy vân có cấu trúc (SQL) - Giáo trình FPT

Có thể chia thành 4 nhóm lệnh SQL:

Nhóm truy vấn dữ liệu (DQL): gồm các lệnh truy vấn lựa chọn

(Select) để lấy thông tin nhưng không làm thay đổi dữ liệu trong

các bảng

Nhóm định nghĩa dữ liệu (DDL): Gồm các lệnh tạo, thay đổi các

bảng dữ liệu(Create, Drop, Alter, …)

Nhóm thao tác dữ liệu (DML): Gồm các lệnh làm thay đổi dữ liệu

(Insert, Delete, Update,…) lưu trong các bảng

Nhóm điều khiển dữ liệu (DCL): Gồm các lệnh quản lý quyền truy

nhập vào dữ liệu và các bảng (Grant, Revoke, …)

Ngôn ngữ SQLCó thể chia thành 4 nhóm lệnh SQL:

Nhóm truy vấn dữ liệu (DQL): gồm các lệnh truy vấn lựa chọn

(Select) để lấy thông tin nhưng không làm thay đổi dữ liệu trong

các bảng

Nhóm định nghĩa dữ liệu (DDL): Gồm các lệnh tạo, thay đổi các

bảng dữ liệu(Create, Drop, Alter, …)

Nhóm thao tác dữ liệu (DML): Gồm các lệnh làm thay đổi dữ liệu

(Insert, Delete, Update,…) lưu trong các bảng

Nhóm điều khiển dữ liệu (DCL): Gồm các lệnh quản lý quyền truy

nhập vào dữ liệu và các bảng (Grant, Revoke, …)

Slide 3 - Ngôn ngữ truy vấn có cấu trúc (SQL) 5

Page 6: Bài 3: Ngôn ngữ truy vân có cấu trúc (SQL) - Giáo trình FPT

Tên ban đầu là SEQUEL (Structured English Query Language) bởi

IBM – 1982

1986, ANSI công bố chuẩn SQL-86

1987, ISO phê chuẩn SQL-87

1992, công bố chuẩn SQL2 (SQL-92)

1999, công bố chuẩn SQL3 (SQL-99)

2003, chuẩn SQL:2003 – không miễn phí

2006, chuẩn SQL:2006 – không miễn phí

Lịch sử SQL

Tên ban đầu là SEQUEL (Structured English Query Language) bởi

IBM – 1982

1986, ANSI công bố chuẩn SQL-86

1987, ISO phê chuẩn SQL-87

1992, công bố chuẩn SQL2 (SQL-92)

1999, công bố chuẩn SQL3 (SQL-99)

2003, chuẩn SQL:2003 – không miễn phí

2006, chuẩn SQL:2006 – không miễn phí

Slide 3 - Ngôn ngữ truy vấn có cấu trúc (SQL) 6

Page 7: Bài 3: Ngôn ngữ truy vân có cấu trúc (SQL) - Giáo trình FPT

SQL không phân biệt chữ hoa, chữ thường.

Ví dụ Create hay CREATE được hiểu như nhau

Một số lưu ý về câu lệnh SQL

SQL không phân biệt chữ hoa, chữ thường.

Ví dụ Create hay CREATE được hiểu như nhau

Slide 3 - Ngôn ngữ truy vấn có cấu trúc (SQL) 7

Page 8: Bài 3: Ngôn ngữ truy vân có cấu trúc (SQL) - Giáo trình FPT

Hệ quản trị CSDL Oracle hỗ trợ ngôn ngữ SQL để tạo, truy vấn và

thao tác dữ liệu.

Màn hình đăng nhập vào Oracle như sau:

Oracle SQLHệ quản trị CSDL Oracle hỗ trợ ngôn ngữ SQL để tạo, truy vấn và

thao tác dữ liệu.

Màn hình đăng nhập vào Oracle như sau:

Slide 3 - Ngôn ngữ truy vấn có cấu trúc (SQL) 8

Page 9: Bài 3: Ngôn ngữ truy vân có cấu trúc (SQL) - Giáo trình FPT

Trong bài này, bạn sẽ sử dụng CSDL mẫu Human Resources (HR) và

làm việc với các câu lệnh SQL trên Oracle.

Màn hình mở và đăng nhập CSDL Human Resources:

Oracle SQL

Trong bài này, bạn sẽ sử dụng CSDL mẫu Human Resources (HR) và

làm việc với các câu lệnh SQL trên Oracle.

Màn hình mở và đăng nhập CSDL Human Resources:

Slide 3 - Ngôn ngữ truy vấn có cấu trúc (SQL) 9

Page 10: Bài 3: Ngôn ngữ truy vân có cấu trúc (SQL) - Giáo trình FPT

Các bảng trong CSDL Human Resources (HR):

Oracle SQL

Slide 3 - Ngôn ngữ truy vấn có cấu trúc (SQL) 10

Page 11: Bài 3: Ngôn ngữ truy vân có cấu trúc (SQL) - Giáo trình FPT

Xem mô tả bảng EMPLOYEES trong CSDL Human Resources

CSDL Human Resources

Slide 3 - Ngôn ngữ truy vấn có cấu trúc (SQL) 11

Page 12: Bài 3: Ngôn ngữ truy vân có cấu trúc (SQL) - Giáo trình FPT

Slide 3 - Ngôn ngữ truy vấn có cấu trúc (SQL) 12

Page 13: Bài 3: Ngôn ngữ truy vân có cấu trúc (SQL) - Giáo trình FPT

Bao gồm các lệnh cho phép truy vấn dữ liệu mà

không làm thay đổi dữ liệu hoặc các đối tượng

trong CSDL

Là các truy vấn bắt đầu bằng từ khóa SELECT

Trả về một bộ các thuộc tính hoặc một tập hợp các

bộ thuộc tính

Ngôn ngữ truy vấn dữ liệu

Bao gồm các lệnh cho phép truy vấn dữ liệu mà

không làm thay đổi dữ liệu hoặc các đối tượng

trong CSDL

Là các truy vấn bắt đầu bằng từ khóa SELECT

Trả về một bộ các thuộc tính hoặc một tập hợp các

bộ thuộc tính

Slide 3 - Ngôn ngữ truy vấn có cấu trúc (SQL) 13

Page 14: Bài 3: Ngôn ngữ truy vân có cấu trúc (SQL) - Giáo trình FPT

Cú pháp:

SELECT [DISTINCT] Column(s)

FROM TableName, Views

[WHERE Conditions ]

[ ORDER BY Column(s)

[asc|desc]]

[ GROUP BY Row(s)]

(Các mệnh đề trong cặp dấu []

không bắt buộc)

Cú pháp câu lệnh SELECTDISTINCT có thể là các giá trị:All: trả về mọi bản ghi tìm thấy

Distinct: trả về các bản ghi không trùng lặp nhau

Top: trả về n (hay %) bản ghi tìm thấy từ trên xuống

Mệnh đề WHERE cho phép truy vấn lựa

chọn theo hàng

Mệnh đề ORDER BY cho phép sắp xếp dữ

liệu theo cột

Mệnh đề GROUP BY cho phép nhóm dữ

liệu theo hàng

Cú pháp:

SELECT [DISTINCT] Column(s)

FROM TableName, Views

[WHERE Conditions ]

[ ORDER BY Column(s)

[asc|desc]]

[ GROUP BY Row(s)]

(Các mệnh đề trong cặp dấu []

không bắt buộc)

Slide 3 - Ngôn ngữ truy vấn có cấu trúc (SQL) 14

DISTINCT có thể là các giá trị:All: trả về mọi bản ghi tìm thấy

Distinct: trả về các bản ghi không trùng lặp nhau

Top: trả về n (hay %) bản ghi tìm thấy từ trên xuống

Mệnh đề WHERE cho phép truy vấn lựa

chọn theo hàng

Mệnh đề ORDER BY cho phép sắp xếp dữ

liệu theo cột

Mệnh đề GROUP BY cho phép nhóm dữ

liệu theo hàng

Page 15: Bài 3: Ngôn ngữ truy vân có cấu trúc (SQL) - Giáo trình FPT

Ví dụ:

Truy vấn lựa chọn tất cả các hàng và cột

SELECT * FROM TableName

Truy vấn lựa chọn một số cột

SELECT Column1, Column2 … FROM TableName

Cú pháp câu lệnh SELECT

Ví dụ:

Truy vấn lựa chọn tất cả các hàng và cột

SELECT * FROM TableName

Truy vấn lựa chọn một số cột

SELECT Column1, Column2 … FROM TableName

Slide 3 - Ngôn ngữ truy vấn có cấu trúc (SQL) 15

Page 16: Bài 3: Ngôn ngữ truy vân có cấu trúc (SQL) - Giáo trình FPT

Ví dụ: Truy vấn lựa chọn tất cả các cột của bảng EMPLOYEES

Ví dụ chọn tất cả các cột

Slide 3 - Ngôn ngữ truy vấn có cấu trúc (SQL) 16

Page 17: Bài 3: Ngôn ngữ truy vân có cấu trúc (SQL) - Giáo trình FPT

Cho phép sắp xếp dữ liệu truy vấn trên hàng.

Cú pháp:

SELECT [DISTINCT] Column(s)

FROM TableName

[WHERE Conditions ]

Một số toán tử (Operator) sử dụng trong biểu thức Conditions:

Toán tử so sánh

Toán tử logic

So sánh xâu dùng toán tử LIKE

Mệnh đề WHERE

Cho phép sắp xếp dữ liệu truy vấn trên hàng.

Cú pháp:

SELECT [DISTINCT] Column(s)

FROM TableName

[WHERE Conditions ]

Một số toán tử (Operator) sử dụng trong biểu thức Conditions:

Toán tử so sánh

Toán tử logic

So sánh xâu dùng toán tử LIKE

Slide 3 - Ngôn ngữ truy vấn có cấu trúc (SQL) 17

Page 18: Bài 3: Ngôn ngữ truy vân có cấu trúc (SQL) - Giáo trình FPT

Các toán tử so sánh

Slide 3 - Ngôn ngữ truy vấn có cấu trúc (SQL) 18

Page 19: Bài 3: Ngôn ngữ truy vân có cấu trúc (SQL) - Giáo trình FPT

Hiển thị thông tin nhân viên có lương bằng 11000$

Ví dụ

Slide 3 - Ngôn ngữ truy vấn có cấu trúc (SQL) 19

Page 20: Bài 3: Ngôn ngữ truy vân có cấu trúc (SQL) - Giáo trình FPT

Cho phép so sánh một xâu với xâu khác (có chứa các kí tự đại diện)

sử dụng toán tử LIKE

Các kí tự đại diện (Wildcard):

So sánh xâu dùng toán tử LIKE

Slide 3 - Ngôn ngữ truy vấn có cấu trúc (SQL) 20

Page 21: Bài 3: Ngôn ngữ truy vân có cấu trúc (SQL) - Giáo trình FPT

Dùng toán tử LIKE hiển thị thông tin những nhân viên có tên họ bắt

đầu bằng “Pete”

Ví dụ

Slide 3 - Ngôn ngữ truy vấn có cấu trúc (SQL) 21

Page 22: Bài 3: Ngôn ngữ truy vân có cấu trúc (SQL) - Giáo trình FPT

Cho phép sắp xếp kết quả truy vấn theo cột

Cú pháp:

SELECT [DISTINCT] Column(s) FROM TableName

[WHERE Conditions ]

ORDER BY Column(s) [asc|desc]

Có thể sắp xếp kết quả theo chiều:

Tăng dần (asc)

Giảm dần (desc)

Mệnh đề ORDER BYCho phép sắp xếp kết quả truy vấn theo cột

Cú pháp:

SELECT [DISTINCT] Column(s) FROM TableName

[WHERE Conditions ]

ORDER BY Column(s) [asc|desc]

Có thể sắp xếp kết quả theo chiều:

Tăng dần (asc)

Giảm dần (desc)

Slide 3 - Ngôn ngữ truy vấn có cấu trúc (SQL) 22

Page 23: Bài 3: Ngôn ngữ truy vân có cấu trúc (SQL) - Giáo trình FPT

Ví dụ dùng toán tử BETWEEN…AND và mệnh đề ORDER BY

Ví dụ

Slide 3 - Ngôn ngữ truy vấn có cấu trúc (SQL) 23

Page 24: Bài 3: Ngôn ngữ truy vân có cấu trúc (SQL) - Giáo trình FPT

Các toán tử logic: AND, OR và NOT

AND và OR được sử dụng để kết nối các điều kiện tìm kiếm chỉ

ra trong mệnh đề WHERE.

NOT phủ định kết quả tìm kiếm.

Toán tử logic

Các toán tử logic: AND, OR và NOT

AND và OR được sử dụng để kết nối các điều kiện tìm kiếm chỉ

ra trong mệnh đề WHERE.

NOT phủ định kết quả tìm kiếm.

Slide 3 - Ngôn ngữ truy vấn có cấu trúc (SQL) 24

Page 25: Bài 3: Ngôn ngữ truy vân có cấu trúc (SQL) - Giáo trình FPT

Ví dụ

Slide 3 - Ngôn ngữ truy vấn có cấu trúc (SQL) 25

Page 26: Bài 3: Ngôn ngữ truy vân có cấu trúc (SQL) - Giáo trình FPT

Mệnh đề GROUP BY cho phép nhóm các hàng

dữ liệu có giá trị giống nhau thành một nhóm

Các tính toán (thường sử dụng các hàm truy vấn

nhóm) sẽ được tính trên mỗi nhóm.

(Các hàm truy vấn nhóm sẽ được đề cập đến

trong bài sau)

Mệnh đề GROUP BY

Mệnh đề GROUP BY cho phép nhóm các hàng

dữ liệu có giá trị giống nhau thành một nhóm

Các tính toán (thường sử dụng các hàm truy vấn

nhóm) sẽ được tính trên mỗi nhóm.

(Các hàm truy vấn nhóm sẽ được đề cập đến

trong bài sau)

Slide 3 - Ngôn ngữ truy vấn có cấu trúc (SQL) 26

Page 27: Bài 3: Ngôn ngữ truy vân có cấu trúc (SQL) - Giáo trình FPT

Ví dụ: Hiển thị lương lớn nhất và nhỏ nhất trong mỗi nhóm nhân

viên có DEPARTMENT_ID khác nhau

Ví dụ

Slide 3 - Ngôn ngữ truy vấn có cấu trúc (SQL) 27

Page 28: Bài 3: Ngôn ngữ truy vân có cấu trúc (SQL) - Giáo trình FPT

Đối với dữ liệu ngày tháng cần cho vào dấu nháy và để

sau từ khoá DATE, TIME hoặc TIMESTAMP.

Ví dụ:

DATE ‘2007-01-29’

T IME ’16: 54: 00.0’

TIMESTAMP’2007-01-29 16:54:00’

Một số chú ý

Đối với dữ liệu ngày tháng cần cho vào dấu nháy và để

sau từ khoá DATE, TIME hoặc TIMESTAMP.

Ví dụ:

DATE ‘2007-01-29’

T IME ’16: 54: 00.0’

TIMESTAMP’2007-01-29 16:54:00’

Slide 3 - Ngôn ngữ truy vấn có cấu trúc (SQL) 28

Page 29: Bài 3: Ngôn ngữ truy vân có cấu trúc (SQL) - Giáo trình FPT

Ngôn ngữ truy vấn SQL bao gồm các lệnh có cấu trúc

cho phép Tạo CSDL và Thêm, Sửa, hoặc Xóa dữ liệu.

Có 4 nhóm lệnh SQL chính, trong đó nhóm lệnh truy vấn

dữ liệu (Select,..) cho phép trích ra phần dữ liệu cần lấy

mà không làm thay đổi dữ liệu.

Tổng kết bài học

Ngôn ngữ truy vấn SQL bao gồm các lệnh có cấu trúc

cho phép Tạo CSDL và Thêm, Sửa, hoặc Xóa dữ liệu.

Có 4 nhóm lệnh SQL chính, trong đó nhóm lệnh truy vấn

dữ liệu (Select,..) cho phép trích ra phần dữ liệu cần lấy

mà không làm thay đổi dữ liệu.

Slide 3 - Ngôn ngữ truy vấn có cấu trúc (SQL) 29

Page 30: Bài 3: Ngôn ngữ truy vân có cấu trúc (SQL) - Giáo trình FPT

Câu lệnh SELECT cho phép lựa chọn ra một hoặc một số

cột của bảng thỏa mãn điều kiện truy vấn.

Các điều kiện truy vấn theo cột được chỉ ra trong mệnh đề

WHERE

Các điều kiện truy vấn theo hàng được chỉ ra trong mệnh đề

GROUP BY

Sắp xếp kết quả tìm kiếm được chỉ ra trong mệnh đề ORDER BY

Tổng kết bài học

Câu lệnh SELECT cho phép lựa chọn ra một hoặc một số

cột của bảng thỏa mãn điều kiện truy vấn.

Các điều kiện truy vấn theo cột được chỉ ra trong mệnh đề

WHERE

Các điều kiện truy vấn theo hàng được chỉ ra trong mệnh đề

GROUP BY

Sắp xếp kết quả tìm kiếm được chỉ ra trong mệnh đề ORDER BY

Slide 3 - Ngôn ngữ truy vấn có cấu trúc (SQL) 30