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

19 248 0
SQL (Structured Query Language) (tiếp theo) docx

Đ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

SQL (Structured Query Language) (tiếp theo) EE4509, EE6133 – HK2 2011/2012 TS Đào Trung Kiên – ĐH Bách khoa Hà Nội Xoá liệu Dùng câu lệnh “delete from…” để xoá liệu thoả mãn đ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ự câu lệnh select VD:       delete from Student where regdate > '2000-01-01'; delete from Book where Xố tồn liệu quan hệ:    delete from quan-hệ; truncate quan-hệ; EE4509, EE6133 – HK2 2011/2012 TS Đào Trung Kiên – ĐH Bách khoa Hà Nội Sửa đổi liệu Dùng câu lệnh “update …” để cập nhật giá trị thuộc tính quan hệ giá trị thoả mãn đ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; EE4509, EE6133 – HK2 2011/2012 TS Đào Trung Kiên – ĐH Bách khoa Hà Nội Số học  Các phép toán: +, -, *, /, % Hàm: abs(), sqrt(), exp(), ln(), power(), rand(),…  Ví dụ:    select sqrt(5) + power(40, 5); update Product set price = price * (1 + ln(2)) where category = 'laptop'; EE4509, EE6133 – HK2 2011/2012 TS Đào Trung Kiên – ĐH Bách khoa Hà Nội Logic Các phép toán: and, or, not So sánh: >, =, = 50 and count < 10; So sánh với null: dùng “is null” “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'); EE4509, EE6133 – HK2 2011/2012 TS Đào Trung Kiên – ĐH Bách khoa Hà Nội Làm việc với ngày tháng Các kiểu liệu:   date, time, datetime, timestamp Thời gian tại:   curdate(), curtime(), now() Cộng trừ thời gian:    date_add(), time_add() date_sub(), time_sub() Trích tham số:   year(), month(), day(), week(), hour(), minute(), second() EE4509, EE6133 – HK2 2011/2012 TS Đào Trung Kiên – ĐH Bách khoa Hà Nội Làm việc với kiểu chuỗi So sánh: =, !=, >, =, = 8; Danh sách sinh viên lớp B có điểm trung bình >= EE4509, EE6133 – HK2 2011/2012 TS Đào Trung Kiên – ĐH Bách khoa Hà Nội Gộp kết   Phép hợp SQL thực cú pháp: select … union select … Chú ý:      Kết phép select phải tương thích với Có thể thực hợp hai nhiều phép select với Có thể dùng ngoặc (…) rõ ràng Các kết trùng bị loại bỏ, khơng muốn dùng “union all” Ví dụ:  10 select name, dob from Student where class = 'B' union ( select name, dob from Teacher where city = 'Hanoi'); EE4509, EE6133 – HK2 2011/2012 TS Đào Trung Kiên – ĐH Bách khoa Hà Nội Giao loại trừ kết   Tương tự phép gộp, dùng “intersect” “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 = )); Chú ý:   11 Trong MySQL không hỗ trợ “intersect” “except”, mà phải dùng câu lệnh lồng MSSQL dùng “minus” thay “except” EE4509, EE6133 – HK2 2011/2012 TS Đào Trung Kiên – ĐH Bách khoa Hà Nội Câu lệnh lồng (nested queries)   SQL cho phép sử dụng câu lệnh (subqueries) để tăng tính linh hoạt truy vấn Ví dụ: liệt kê hát (quan hệ Song) thuộc thể loại sáng tác tác giả (quan hệ Author) sinh trước năm 1950  12 select * from Song where author_id in ( select id from Author where dob < '1950-01-01'); EE4509, EE6133 – HK2 2011/2012 TS Đào Trung Kiên – ĐH Bách khoa Hà Nội 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ể dùng cho giá trị   13 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) EE4509, EE6133 – HK2 2011/2012 TS Đào Trung Kiên – ĐH Bách khoa Hà Nội Toán tử exists    Dùng để kiểm tra tập hợp có rỗng hay khơng Phủ định dùng “not exists…” Ví dụ: liệt kê 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ự:  14 select * from Customer where count ( select id from Invoice where customer = Customer.id) > 0; EE4509, EE6133 – HK2 2011/2012 TS Đào Trung Kiên – ĐH Bách khoa Hà Nội Liên kết thuộc tính với câu lệnh   Các thuộc tính câu lệnh mẹ sử dụng câu lệnh VD:  15 select customer from Borrower where exists ( select * from Depositor where Depositor.customer = Borrower.customer); EE4509, EE6133 – HK2 2011/2012 TS Đào Trung Kiên – ĐH Bách khoa Hà Nội So sánh tập hợp  Câu hỏi: liệt kê sinh viên lớp A có điểm lớn sinh viên 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:   16 some / any: có phần tử thoả mãn all: so với tất EE4509, EE6133 – HK2 2011/2012 TS Đào Trung Kiên – ĐH Bách khoa Hà Nội Câu lệnh mệnh đề from    Câu lệnh sử dụng mệnh đề from Kết câu lệnh đổi tên để dễ tham chiếu Ví dụ:  17 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; EE4509, EE6133 – HK2 2011/2012 TS Đào Trung Kiên – ĐH Bách khoa Hà Nội Biến   SQL cho phép tạo biến để lưu tạm thời giá trị Các biến dùng theo cú pháp: @tên Định nghĩa / thay đổi giá trị biến:    set @VAR = VALUE; select @VAR := VALUE; Ví dụ:  18 set @std = 20; select @stddob:=dob from Student where id=@std; select @stddob; EE4509, EE6133 – HK2 2011/2012 TS Đào Trung Kiên – ĐH Bách khoa Hà Nội Bài tập Cho quan hệ SinhVien, GiaoVien, DangKyHoc, Day, Lop, MonHoc Viết câu truy vấn cho yêu cầu sau: Liệt kê sinh viên có đăng ký môn X, Y Liệt kê giáo viên dạy từ lớp trở lên Liệt kê giáo viên dạy lớp có 30 sinh viên trở lên Liệt kê môn học giáo viên G mà sinh viên A đăng ký Cho quan hệ Sach, TacGia, NguoiDoc, Muon Viết câu truy vấn cho yêu cầu sau: Liệt kê sách mượn nhiều 10 lần năm 2011 Liệt kê người đọc mượn 10 đầu sách khác Liệt kê sách mượn người đọc câu Liệt kê sách Stephen King khơng có mượn 19 EE4509, EE6133 – HK2 2011/2012 TS Đào Trung Kiên – ĐH Bách khoa Hà Nội ... id, name from Employee where level = )); Chú ý:   11 Trong MySQL không hỗ trợ “intersect” “except”, mà phải dùng câu lệnh lồng MSSQL dùng “minus” thay “except” EE4509, EE6133 – HK2 2011/2012... >= EE4509, EE6133 – HK2 2011/2012 TS Đào Trung Kiên – ĐH Bách khoa Hà Nội Gộp kết   Phép hợp SQL thực cú pháp: select … union select … Chú ý:      Kết phép select phải tương thích với... EE6133 – HK2 2011/2012 TS Đào Trung Kiên – ĐH Bách khoa Hà Nội Câu lệnh lồng (nested queries)   SQL cho phép sử dụng câu lệnh (subqueries) để tăng tính linh hoạt truy vấn Ví dụ: liệt kê hát (quan

Ngày đăng: 28/06/2014, 05:20

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan