1. Trang chủ
  2. » Giáo án - Bài giảng

Bài 5 Structured Query Language Phần 2

19 143 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

Định dạng
Số trang 19
Dung lượng 420,48 KB

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

Nội dung

Sửa đổi dữ liệu  Dùng câu lệnh “update …” để cập nhật giá trị của các thuộc tính trong một quan hệ bằng giá trị mới thoả mãn một điều kiện mong muốn  Cú pháp: update tên-quan-hệ set

Trang 1

Bài 5: SQL – Phần 2

(Structured Query Language)

(tiếp theo)

Trang 2

Xoá dữ liệu

 Dùng câu lệnh “delete from…” để xoá các dữ liệu thoả mãn một điều kiện mong muốn

 Cú pháp:

delete from tên-quan-hệ [where điều-kiện];

 Mệnh đề where tương tự trong câu lệnh select

 VD:

 Xoá toàn bộ dữ liệu của quan hệ:

delete from quan-hệ;

truncate quan-hệ;

Trang 3

Sửa đổi dữ liệu

 Dùng câu lệnh “update …” để cập nhật giá trị của các

thuộc tính trong một quan hệ bằng giá trị mới thoả mãn một điều kiện mong muốn

 Cú pháp:

update tên-quan-hệ set thuộc-tính = giá-trị,

[where điều-kiện];

 VD:

where name = 'Bill Gates';

where id = 1234;

Trang 4

Số học

 Các phép toán: +, -, *, /, %

 Hàm: abs(), sqrt(), exp(), ln(), power(),

rand(),…

 Ví dụ:

where category = 'laptop';

Trang 5

Logic

 Các phép toán: and, or, not

 So sánh: >, <, >=, <=, =, <>, !=, between … and

 Ví dụ:

where price >= 50 and count < 10;

 So sánh với null: dùng “is null” và “is not null”

 Tập hợp: in(…)

Trang 6

Làm việc với ngày tháng

 Các kiểu dữ liệu:

 date, time, datetime, timestamp

 Thời gian hiện tại:

 curdate(), curtime(), now()

 Cộng trừ thời gian:

 adddate(), addtime()

 subdate(), subtime()

 Trích các tham số:

 year(), month(), day(), week(), hour(), minute(), second()

Trang 7

Làm việc với kiểu chuỗi

 So sánh: =, !=, >, <, >=, <=

 Một số hàm: lower(s), upper(s), concat(s1, s2), locate(s1, s2), substring(s, p, n),…

 Toán tử “like”: so sánh chuỗi theo khuôn dạng sử dụng

 VD:

Trang 8

Gộp nhóm

 Câu hỏi: tính điểm trung bình của học sinh có id = 10

 Câu hỏi: tính điểm trung bình của từng học sinh

 Các hàm gộp:

 avg(): giá trị trung bình

 min(): giá trị min

 max(): giá trị max

 Ví dụ khác: danh sách sách trong thư viện kèm theo số lượng

Trang 9

Gộp nhóm: điều kiện trên nhóm

 Trong câu lệnh có gộp nhóm, “where…” là điều kiện đối với từng phần tử, còn “having…” là điều kiện với nhóm

 VD:

from Mark m, Student s

where m.std = s.id and s.class = 'B'

group by s.id

having max(m.mark) >= 8;

Trang 10

Gộp kết quả

 Phép hợp trong SQL được thực hiện bằng cú pháp:

select … union select …

 Chú ý:

all”

 Ví dụ:

where class = 'B'

union (

where city = 'Hanoi');

Trang 11

Giao và loại trừ kết quả

 Tương tự như phép gộp, nhưng dùng “intersect” và

“except” thay cho “union”

 Ví dụ:

where gender = 'male'

intersect (

select id, name from Employee where dob < '1980-01-01'

except (

select id, name from Employee where level = 5 ));

 Chú ý:

dùng các câu lệnh lồng nhau (dùng toán tử “in”)

Trang 12

Câu lệnh lồng nhau (nested queries)

 SQL cho phép sử dụng các câu lệnh con

(subqueries) để tăng tính linh hoạt trong truy vấn

 Ví dụ: liệt kê các bài hát (quan hệ Song) thuộc các thể loại được sáng tác bởi các tác giả (quan hệ

Author) sinh trước năm 1950

select id from Author where dob < '1950-01-01') ;

Trang 13

Toán tử “in”

 Dùng để kiểm tra tính thuộc tập hợp

 Phủ định dùng “not in…”

 Có thể được dùng cho bộ giá trị

where (author, category) in

( (5, 10), (4, 15), (4, 19) );

where (first_name, last_name) in

(select firstn, lastn from Nominated)

Trang 14

Toán tử exists

 Dùng để kiểm tra một tập hợp có rỗng hay không

 Phủ định dùng “not exists…”

 Ví dụ: liệt kê các khách hàng chưa mua máy tính ở cửa hàng

select id from Invoice where customer = Customer.id);

 Tương tự:

select id from Invoice where customer = Customer.id) > 0;

Trang 15

Liên kết giữa các thuộc tính với câu lệnh con

 Các thuộc tính của câu lệnh mẹ có thể được sử

dụng trong các câu lệnh con

 VD:

where exists (

select * from Depositor

Trang 16

So sánh tập hợp

 Câu hỏi: liệt kê các sinh viên của lớp A có điểm lớn hơn ít nhất một sinh viên của lớp B

select mark from Student where class = 'B');

 Các kiểu so sánh tập hợp:

Trang 17

Câu lệnh con trong mệnh đề from

 Câu lệnh con có thể được sử dụng trong mệnh đề from

 Kết quả của câu lệnh con có thể được đổi tên để dễ

tham chiếu

 Ví dụ:

from (

select branch-name, avg(balance) from account group by branch-name )

as branch-avg(branch-name, avg-balance) where avg-balance > 1200;

Trang 18

Biến

 SQL cho phép tạo các biến để lưu tạm thời các giá trị Các biến được dùng theo cú pháp: @tên

 Định nghĩa / thay đổi giá trị của biến:

 Ví dụ:

select @stddob:=dob

from Student where id=@std;

select @stddob;

Trang 19

Bài tập

Cho các quan hệ SinhVien, GiaoVien, DangKyHoc, Day, Lop, MonHoc Viết câu truy vấn cho các yêu cầu sau:

Cho các quan hệ Sach, TacGia, NguoiDoc, Muon Viết câu truy vấn cho các yêu cầu sau:

trên

Ngày đăng: 07/03/2015, 10:20

TỪ KHÓA LIÊN QUAN

w