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

SQL (Structured Query Language) (tiếp theo) docx

19 249 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 346,07 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

SQL (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:

 delete from Student where regdate > '2000-01-01';

 delete from Book where

 Xoá toàn bộ dữ liệu của 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:

 update Student set class = 'C‘

where name = 'Bill Gates';

 update Book set borrowed = 1, date = now()

where id = 1234;

Trang 4

Số học

rand(),…

 Ví dụ:

 select sqrt(5) + power(40, 5) ;

 update Product set price = price * (1 + ln(2))

where category = 'laptop';

Trang 5

Logic

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

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

 Ví dụ:

 select * from Product

where price >= 50 and count < 10;

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

 select id from Student

where phone is not null;

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

 select id from Student

where class in ('A', 'B');

Trang 6

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

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

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

 Cộng trừ thời gian:

 Trích các tham số:

second()

Trang 7

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

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

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

 %: đại diện cho một chuỗi bất kỳ

 _: đại diện cho một ký tự bất kỳ

 VD:

 select * from Student where name like 'Bill%' ;

 select * from Word where title like ' %tion' ;

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

 select avg(mark) from Mark where std = 10;

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

 select std, avg(mark) from Mark group by std;

 Các hàm gộp:

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

 min(): giá trị min

 max(): giá trị max

 sum(): tổng

 count(): số lượng

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

 select title, count(*) from Book group by title;

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:

 select s.id, s.name, avg(m.mark)

from Mark m, Student s

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

group by s.id

having max(m.mark) >= 8;

 Danh sách các sinh viên lớp B có điểm trung bình >= 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ú ý:

 Kết quả các phép select phải tương thích với nhau

 Có thể thực hiện hợp hai hoặc nhiều phép select với nhau

 Có thể dùng ngoặc (…) để cho rõ ràng

 Các kết quả trùng sẽ bị loại bỏ, nếu không muốn thì dùng “union all”

 Ví dụ:

 select name, dob from Student

where class = 'B'

union (

select name, dob from Teacher 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ụ:

 select id, name from Employee

where gender = 'male'

intersect (

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

except (

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

 Chú ý:

 Trong MySQL không hỗ trợ “intersect” và “except”, mà phải

dùng các câu lệnh lồng nhau

Trang 12

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

(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 * from Song

where author_id in (

select id from Author

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ị

 select * from Song

where (author, category) in

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

 select * from Author

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 * from Customer

where not exists (

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

 Tương tự:

 select * from Customer

where count (

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:

 select customer from Borrower

where exists (

select * from Depositor where Depositor.customer = Borrower.customer);

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 * from Student

where class = 'A' and mark > some (

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

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

 some / any: có ít nhất một phần tử thoả mãn

 all: so với tất cả

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ụ:

 select branch-name, avg-balance

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:

 set @VAR = VALUE;

 select @VAR := VALUE;

 Ví dụ:

 set @std = 20;

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: 28/06/2014, 05:20

TỪ KHÓA LIÊN QUAN

w