1. Trang chủ
  2. » Luận Văn - Báo Cáo

Cau lenh truy van SQL

20 11 0

Đ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 đề Cau lenh truy van SQL
Trường học Universidad XYZ
Chuyên ngành Computer Science
Thể loại Giáo trình hướng dẫn SQL
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 20
Dung lượng 387,33 KB

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

Nội dung

M ệnh đề WHERE Để chọn có điều kiện dữ liệu từ m t b ng, m t mệnh đề WHERE có thể thêm vào phát biểu SELECT với cú pháp sau: SELECT column FROM table WHERE column condition value Với mệ

Trang 1

Welcome to SQL tutorial

M ục lục

SQL c ăn bản

Giới thiệu SQL

Mô t thế nào là SQL, cách dùng SQL

SQL Select

Cách dùng phát biểu SELECT để chọn dữ liệu từ m t b ng trong SQL

SQL Where

Cách dùng mệnh đề WHERE để chỉ định tiêu chuẩn chọn

SQL And & Or

Cách dùng AND và OR để kết nối hai hay nhiều điều kiện trong mệnh đề WHERE

SQL Between

Cách dùng BETWEEN AND để tìm dữ liệu trong m t kho ng giới h n

SQL Distinct

Cách dùng từ khóa DISTINCT để chỉ tr về các trị khác nhau trong m t c t

SQL Order By

Cách dùng từ khóa ORDER BY để tr về các hàng được sắp xếp theo m t thứ tự định trước

SQL Insert

Cách dùng phát biểu INSERT để chèn hàng mới vào trong m t b ng

SQL Update

Cách dùng phát biểu UPDATE để cập nhật hay thay đổi các hàng trong m t b ng

SQL Delete

Cách dùng phát biểu DELETE để xóa các hàng trong m t b ng

SQL Count

Gi i thích các hàm COUNT t o s n trong SQL

SQL nâng cao

Các hàm SQL

Gi i thích cách dùng các hàm t o s n trong SQL

SQL Group By

Gi i thích cách dùng hàm GROUP BY t o s n trong SQL

Các bí danh SQL

Gi i thích cách dùng các bí danh (alias) cho các tên c t và các tên b ng

SQL Join

Gi i thích cách chọn thông tin từ nhiều b ng

SQL Create

Cách t o các cơ sở dữ liệu và các b ng, và cách xóa chúng

SQL Alter

Cách dùng phát biểu ALTER TABLE để thêm hay lo i các c t trong m t b ng cho trước

SQL là m ột ngôn ngữ theo chuẩn ANSI để truy xuất các cơ sở dữ liệu

SQL là gì?

SQL là Structured Query Language – Ngôn ngữ Truy v n có C u trúc

• SQL cho phép b n truy xu t m t cơ sở dữ liệu

• SQL là m t ngữ theo chuẩn ANSI

• SQL có thể thực hiện các truy v n đến m t cơ sở dữ liệu

• SQL có thể truy tìm dữ liệu từ m t cơ sở dữ liệu

• SQL có thể chèn các mẩu tin mới vào trong m t cơ sở dữ liệu

• SQL có thể xóa các mẩu tin trong m t cơ sở dữ liệu

Trang 2

• SQL có thể cập nhật các mẩu tin trong m t cơ sở dữ liệu

• SQL r t dễ học

SQL là m ột chuẩn

SQL là m t chuẩn ANSI (American National Standards Institute - Viện Tiêu chuẩn Quốc gia Mỹ) cho các hệ thống truy xu t cơ

sở dữ liệu Các phát biểu SQL dùng để truy tìm và cập nhật dữ liệu trong m t cơ sở dữ liệu

SQL làm việc với các trình qu n lý cơ sở dữ liệu như Access, DB2, Informix, Microsoft SQL Server, Oracle, Sybase, và nhiều trình khác (đáng tiếc là đa số trong chúng có các phần mở r ng ngôn ngữ SQL riêng)

Các b ảng cơ sở dữ liệu

Cơ sở dữ liệu chứa các đối tượng gọi là các Bảng (Tables)

Các M ẩu tin (Records) lưu trong các b ng này Các b ng được gọi theo tên b ng (như "Persons", "Orders", "Suppliers")

Các b ng chứa các C ột (Columns) và các Dòng (Rows) dữ liệu Dòng chứa các mẩu tin (như mẩu tin về m t người) C t chứa

dữ liệu (như First Name, Last Name, Address, và City)

M t ví dụ là b ng "Persons" sau:

LastName FirstName Address City

LastName, FirstName, Address, và City là các c t của b ng Các dòng chứa ba mẩu tin của 3 người

Các truy v ấn SQL

Với SQL, chúng ta có thể truy vấn m t cơ sở dữ liệu và nhận được m t kết quả tr về với d ng b ng

M t truy v n giống như sau:

SELECT LastName FROM Persons

Sẽ tr về m t kết qu giống như sau:

LastName

Hansen

Svendson

Pettersen

Chú ý: Vài hệ cơ sở dữ liệu cần m t d u “;” ở cuối phát biểu SQL Chúng ta không dùng d u “;” trong bài viết này

Thao tác d ữ liệu SQL

SQL là m t cú pháp để thực hiện các truy v n Nhưng ngôn ngữ SQL cũng chứa các cú pháp cập nhật các mẩu tin (record), chèn các mẩu tin mới và xóa các mẩu tin đang tồn t i

Các lệnh truy v n và cập nhật này thu c d ng Ngôn ngữ Thao tác Dữ liệu (Data Manipulation Language - DML) m t phần của SQL:

̇ SELECT – trích dữ liệu từ m t cơ sở dữ liệu

̇ UPDATE – cập nhật dữ liệu trong m t cơ sở dữ liệu

̇ DELETE – xóa dữ liệu từ m t cơ sở dữ liệu

̇ INSERT – chèn dữ liệu mới vào trong m t cơ sở dữ liệu

Định nghĩa dữ liệu SQL

Ngôn ngữ Định nghĩa Dữ liệu (Data Definition Language - DDL) m t phần của SQL, cho phép t o hay xóa các b ng cơ sở dữ liệu Chúng ta cũng có thể định nghĩa các chỉ mục (các khóa - key), chỉ định liên kết giữa các b ng, và ràng bu t giữa các b ng

cơ sở dữ liệu

Các phát biểu DDL quan trọng nh t trong SQL là::

̇ CREATE TABLE – t o m t b ng cơ sở dữ liệu mới

̇ ALTER TABLE – thay đổi (alters) m t b ng cơ sở dữ liệu

Trang 3

̇ DROP TABLE – xóa m t b ng cơ sở dữ liệu

̇ CREATE INDEX – t o m t chỉ mục (khóa tìm kiếm)

̇ DROP INDEX – xoá m t chỉ mục

SQL và ASP

SQL là m t phần quan trọng của ASP (Active Server Pages), vì ADO (Active Data Object) được dùng trong ASP để truy xu t cơ

sở dữ liệu, ADO dựa trên SQL để truy xu t dữ liệu

Phát bi ểu SELECT chọn các cột dữ liệu từ một cơ sở dữ liệu

K ết quả dạng bảng được lưu trong một bảng kết quả (gọi là tập kết quả - result set)

Phát bi ểu SELECT

Phát biểu SELECT chọn các c t dữ liệu từ m t cơ sở dữ liệu

Dùng phát biểu này để chọn (SELECT) thông tin từ (FROM) m t b ng như sau:

SELECT column_name(s) FROM table_name

Ví d ụ: Chọn các cột từ một bảng

Để chọn các c t có tên "LastName" và "FirstName", dùng m t phát biểu SELECT như sau:

SELECT LastName,FirstName FROM Persons

B ảng "Persons":

LastName FirstName Address City

K ết quả:

LastName FirstName

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

Để chọn t t c các c t từ b ng "Person", dùng m t ký hiệu * thay thế cho tên các c t như sau:

SELECT * FROM Persons

K ết quả:

LastName FirstName Address City

B ảng kết quả

Kết qu từ m t truy v n SQL được lưu trữ trong m t tập kết qu Tập kết qu có thể xem như m t b ng kết qu Đa số các

Trang 4

trình qu n lý cơ sở dữ liệu cho phép duyệt tập kết qu với các hàm lập trình như: Move-To-First-Record, Get-Record-Content, Move-To-Next-Record

M ệnh đề WHERE dùng để chỉ định một tiêu chuẩn (criteria) chọn

M ệnh đề WHERE

Để chọn có điều kiện dữ liệu từ m t b ng, m t mệnh đề WHERE có thể thêm vào phát biểu SELECT với cú pháp sau:

SELECT column FROM table WHERE column condition value

Với mệnh đề WHERE, các điều kiện sau có thể được dùng:

Operator Condition

<> Không bằng

>= Lớn hơn ho c bằng

<= Nhỏ hơn ho c bằng

LIKE Sẽ gi i thích bên dưới

Chú ý: Vài phiên b n SQL toán tử <> có thể được viết thành !=

Ví d ụ: Chọn người từ một công ty

Để chọn những người chỉ sống ở Sandnes, thêm mệnh đề WHERE vào phát biểu SELECT như sau:

SELECT * FROM Persons WHERE City='Sandnes'

B ảng "Persons":

LastName FirstName Address City Year

K ết quả:

LastName FirstName Address City Year

Dùng d ấu nháy

Chú ý rằng chúng ta dùng d u nháy đơn bao quanh các trị điều kiện trong các ví dụ SQL dùng d u nháy đơn bao quanh các trị văn b n Phần lớn các hệ qu n lý cơ sở dữ liệu cũng ch p nhận d u nháy kép Các trị số không được đóng trong d u nháy Với các trị văn b n:

Viết đúng:

SELECT * FROM Persons WHERE FirstName='Tove'

Viết sai:

SELECT * FROM Persons WHERE FirstName=Tove

Với các trị số:

Viết đúng:

SELECT * FROM Persons WHERE Year>1965

Viết sai:

SELECT * FROM Persons WHERE Year>'1965'

Trang 5

Điều kiện LIKE

Điều kiện LIKE dùng chỉ định việc tìm m t mẫu trong m t c t

Cú pháp:

SELECT column FROM table WHERE column LIKE pattern

M t d u "%" có thể dùng như ký tự đ i diện (wildcards) c trước lẫn sau mẫu

Ví d ụ: Chọn trong bảng Persons với mẫu tên

Phát biểu SQL sẽ tr về những người có firstname bắt đầu với m t ký tự 'O'

SELECT * FROM Persons WHERE FirstName LIKE 'O%'

Phát biểu SQl sẽ tr về những người có firstname kết thúc với m t ký tự 'a'

SELECT * FROM Persons WHERE FirstName LIKE '%a'

Phát biểu SQL sẽ tr về những người có firstname chứa mẫu 'la'

SELECT * FROM Persons WHERE FirstName LIKE '%la%'

T t c các ví dụ trên sẽ tr về kết qu sau:

LastName FirstName Address City Year

SQL And & Or

AND & OR

AND và OR kết nối hai hay nhiều điều kiện trong m t mệnh đề WHERE

Toán tử AND hiển thị m t c t nếu T T C các điều kiện liệt kê đều đúng

Toán tử OR hiển thị m t c t nếu M T TRONG các điều kiện liệt kê là đúng

B ảng gốc (dùng trong các ví dụ)

LastName FirstName Address City

Ví d ụ

Dùng AND để hiển thị người có firstname là "Tove", và lastname là "Svendson":

SELECT * FROM Persons

WHERE FirstName='Tove'

AND LastName='Svendson'

K ết quả:

LastName FirstName Address City

Ví d ụ

Dùng OR để hiển thị người có firstname là "Tove", ho c có lastname là "Svendson":

SELECT * FROM Persons

WHERE firstname='Tove'

OR lastname='Svendson'

K ết quả:

Trang 6

LastName FirstName Address City

Ví d ụ

B n cũng có thể dùng phối hợp AND và OR (dùng d u ngo c đơn để bao các biểu thức phức t p):

SELECT * FROM Persons WHERE

(FirstName='Tove' OR FirstName='Stephen')

AND LastName='Svendson'

K ết quả:

LastName FirstName Address City

SQL Between And

BETWEEN AND

Toán tử BETWEEN AND chọn t t c các trị trong kho ng giới h n giữa hai trị Các trị này có thể là các số, văn b n, hay ngày tháng

SELECT column_name FROM table_name

WHERE column_name

BETWEEN value1 AND value2

B ảng gốc (dùng trong các ví dụ)

LastName FirstName Address City

Ví d ụ 1

Để hiển thị các tên theo thứ tự alphabet giữa hai tên (kể c hai tên này) "Hansen" và "Pettersen", dùng SQL sau:

SELECT * FROM Persons WHERE LastName

BETWEEN 'Hansen' AND 'Pettersen'

K ết quả:

LastName FirstName Address City

Ví d ụ 2

Để hiển thị các tên ngoài các tên trong ví dụ trên, dùng toán tử NOT:

SELECT * FROM Persons WHERE LastName

NOT BETWEEN 'Hansen' AND 'Pettersen'

K ết quả:

Trang 7

LastName FirstName Address City

SQL Select Distinct

T ừ khóa DISTINCT dùng trả về chỉ các trị khác biệt (distinct)

T ừ khóa DISTINCT

Phát biểu SQL SELECT tr về thông tin từ các c t của b ng Nhưng làm thế nào nếu chúng ta chỉ muốn chọn các kết qu không trùng nhau?

Với SQL, chúng ta chỉ cần thêm vào m t từ khóa DISTINCT cho phát biểu SELECT vớI cú pháp sau:

SELECT DISTINCT column-name(s) FROM table-name

Ví d ụ: Chọn tên công ty từ bảng Orders

Ví dụ: B ng đ t hàng đơn gi n:

Company OrderNumber

Phát biểu SQL sau:

SELECT Company FROM Orders

Sẽ tr về kết qu :

Company

Sega

W3Schools

Trio

W3Schools

Chú ý rằng công ty W3Schools xu t hiện hai lần trong kết qu Đôi lúc chúng ta không muốn điều này

Ví d ụ: Chọn tên công ty (không trùng tên) từ bảng Orders

Phát biểu SQL sau:

SELECT DISTINCT Company FROM Orders

Sẽ tr về kết qu :

Company

Sega

W3Schools

Trio

Bây giờ tên công ty W3Schools chỉ xu t hiện m t lần trong kết qu

SQL Order By

T ừ khóa ORDER BY dùng sắp xếp kết quả thứ tự kết quả

Trang 8

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

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

M ột số cách sắp xếp:

Company OrderNumber

Ví d ụ

Để hiển thị tên công ty (Company) theo thứ tự alphabet:

SELECT Company, OrderNumber FROM Orders

ORDER BY Company

K ết quả:

Company OrderNumber

Ví d ụ

Để hiển thị tên công ty (Company) theo thứ tự alphabet, nếu tên công ty giống nhau thì sắp xếp theo số thứ tự (OrderNumber): SELECT Company, OrderNumber FROM Orders

ORDER BY Company, OrderNumber

K ết quả:

Company OrderNumber

Ví d ụ

Để hiển thị tên công ty (Company) theo thứ tự alphabet đ o ngược (từ Z đến A):

SELECT Company, OrderNumber FROM Orders

ORDER BY Company DESC

K ết quả:

Company OrderNumber

SQL INSERT INTO

Chèn các dòng m ới

Phát biểu INSERT INTO chèn các dòng mới vào trong m t b ng:

INSERT INTO table_name

VALUES (value1, value2, )

Trang 9

B n có thể chỉ định các c t b n muốn chèn chèn dữ liệu vào:

INSERT INTO table_name (column1, column2, )

VALUES (value1, value2, )

Chèn m ột dòng mới

B ng "Persons":

LastName FirstName Address City

Phát biểu SQL chèn vào b ng trên:

INSERT INTO Persons

VALUES ('Hetland', 'Camilla', 'Hagabakka 24', 'Sandnes')

Sẽ cho kết qu như sau:

LastName FirstName Address City

Chèn d ữ liệu vào trong các cột chỉ định

B ng "Persons":

LastName FirstName Address City

Phát biểu SQL chèn dữ liệu vào các c t chỉ định:

INSERT INTO Persons (LastName, Address)

VALUES ('Rasmussen', 'Storgt 67')

Sẽ cho kết qu như sau::

LastName FirstName Address City

SQL Update

Update Rows

Phát biểu UPDATE cập nhật ho c thay đổi các dòng:

UPDATE table_name SET column_name = new_value

WHERE column_name = some_value

B ảng Person:

LastName FirstName Address City

C ập nhật một cột trong một dòng

Chúng ta sẽ thêm m t first name “Nina” đến người có lastname="Rasmussen":

Trang 10

UPDATE Person SET FirstName = 'Nina'

WHERE LastName = 'Rasmussen'

C ập nhật vài cột trong một dòng

Chúng ta sẽ thay đổi địa chỉ (Address) và thêm tên thành phố

UPDATE Person

SET Address = 'Stien 12', City = 'Stavanger'

WHERE LastName = 'Rasmussen'

K ết quả

LastName FirstName Address City

SQL Delete

Xóa các c ột

Phát biểu DELETE dùng xóa m t hay nhiều dòng trong m t b ng

DELETE FROM table_name WHERE column_name = some_value

B ảng “Person”:

LastName FirstName Address City

Xóa m ột dòng

"Nina Rasmussen" sẽ bị xóa:

DELETE FROM Person WHERE LastName = 'Rasmussen'

K ết quả

LastName FirstName Address City

Các hàm SQL Count

SQL có các hàm t ạo sẵn để đếm các mẩu tin cơ sở dữ liệu

Cú pháp hàm Count

Cú pháp của các hàm COUNT t o s n như sau:

SELECT COUNT(column) FROM table

Hàm COUNT(*)

Hàm COUNT(*) tr về số hàng chọn được trong m t phép chọn

Với b ng "Persons" sau:

Trang 11

Name Age

Ví dụ này tr về số hàng trong b ng:

SELECT COUNT(*) FROM Persons

Kết qu :

3

Ví dụ này tr về số người lớn hơn 20 tuổi:

SELECT COUNT(*) FROM Persons WHERE Age>20

Kết qu :

2

Hàm COUNT(column)

Hàm COUNT(column) tr về số hàng (ngo i trừ hàng có giá trị NULL) trong c t chỉ định

Với b ng "Persons":

Ví dụ này tìm số người có ghi tuổi t i field “Age” trong b ng "Persons":

SELECT COUNT(Age) FROM Persons

Kết qu :

2

Hàm COUNT(column) cũng dùng để tính số hàng không chứa trị Chú ý kết qu sẽ nhỏ hơn số hàng trong b ng

COUNT DISTINCT

Từ khóa DISTINCT với COUNT có thể dùng để đếm số kết qu khác nhau (không trùng nhau)

Cú pháp như sau:

SELECT DISTINCT COUNT(column(s)) FROM table

Với b ng "Orders":

Company OrderNumber

Với phát biểu SQL sau:

SELECT COUNT(Company) FROM Orders

Sẽ tr về kết qu :

4

Với phát biểu SQL sau:

SELECT DISTINCT COUNT(Company) FROM Orders

Sẽ tr về kết qu :

3

Các hàm SQL

Trang 12

SQL có m ột số hàm tạo sẵn để đếm và tính toán

Cú pháp dùng hàm

Cú pháp cho các hàm SQL t o s n như sau::

SELECT function(column) FROM table

B ảng gốc (dùng trong các ví dụ)

Hàm AVG(column)

Hàm AVG trị trung bình của dữ liệu trong m t c t có đu7ọc nhờ phép chọn Các trị NULL sẽ không được tính toán

Ví d ụ

Ví dụ này tr về tuổi trung bình của những người trong b ng "Persons":

SELECT AVG(Age) FROM Persons

K ết quả

32.67

Ví d ụ

Ví dụ này tr về tuổi trung bình của những người có tuổi lớn hơn 20 tuổi:

SELECT AVG(Age) FROM Persons where Age>20

K ết quả

39.5

Hàm MAX(column)

Hàm MAX tr về trị lớn nh t trong m t c t Các trị NULL sẽ không được tính toán

Ví d ụ

SELECT MAX(Age) FROM Persons

K ết quả:

45

Hàm MIN(column)

Hàm MIN tr về trị lớn nh t trong m t c t Các trị NULL sẽ không được tính toán

Ví d ụ

SELECT MIN(Age) FROM Persons

K ết quả:

19

Chú ý: Các hàm MIN và MAX cũng có thể dùng trên các c t văn b n, để tìm trị lớn nh t và nhỏ nh t theo thứ tự alphabet

Hàm SUM(column)

Hàm SUM tổng của m t c t có được nhờ phép chọn Các trị NULL sẽ không được tính toán

Ví d ụ

Ví dụ này tr về tổng số tuổi của những người trong b ng "Persons":

SELECT SUM(Age) FROM Persons

K ết quả:

Ngày đăng: 13/12/2022, 16:53

w