Tài liệu tham khảo - CITD - Bến Tre Bai 5_Ngon ngu SQL

10 146 0
Tài liệu tham khảo - CITD - Bến Tre Bai 5_Ngon ngu SQL

Đang tải... (xem toàn văn)

Thông tin tài liệu

Tài liệu tham khảo - CITD - Bến Tre Bai 5_Ngon ngu SQL tài liệu, giáo án, bài giảng , luận văn, luận án, đồ án, bài tập...

Tài liệu tham khảo [1] Lê Tiến Vương (2000), “Nhập môn sở liệu quan hệ”, NXB Thống Kê [2] Nguyễn Đăng Tỵ Đỗ Phúc (2009), “Giáo trình Cơ sở liệu”, NXB Đại Học Quốc Gia Thành phố Hồ Chí Minh, chương 6, trang 97 [3] Nguyễn Thị Ngọc Mai (2007), “Lý thuyết sở liệu”, tập 1, NXB Lao Động Xã Hội NGÔN NGỮ SQL Tổng số tiết: Lý thuyết: Thực hành: 17 Mục tiêu học    Nội dung  Có khả dùng SQL để tạo bảng xố bảng Có khả dùng SQL để thêm, sửa, xố liệu Có thể thống kê, tổng hợp liệu SQL  Giới thiệu Nhóm lệnh định nghĩa cập nhật sơ đồ CSDL    Nhóm lệnh cập nhật liệu     Thêm Sửa Xố Nhóm lệnh truy vấn liệu    Tạo bảng Xoá bảng Truy vấn lựa chọn Truy vấn nhóm Truy vấn   Giải số tập Tổng kết chương ĐỌC THÊM  Lệnh đổi tên bảng, thêm cột, xoá cột, đổi tên cột  Lệnh tạo khố  Lệnh tạo mối quan hệ bảng  Lệnh thiết lập ràng buộc toàn vẹn  … Giới thiệu  Các hệ quản trị CSDL cần có ngơn ngữ giao tiếp người sử dụng với CSDL, gồm:     Ngôn ngữ định nghĩa cập nhật sơ đồ CSDL (Data Definition Language – DDL): Cho phép định nghĩa thay đổi cấu trúc bảng Ngôn ngữ thao tác liệu (Data Manipulation Language – DML): Cho phép thêm, sửa, xố liệu Ngơn ngữ truy vấn liệu (Structured Query Language – SQL): Cho phép truy vấn thông tin CSDL  Tới SQL qua lần chuẩn hoá (1989, 1992, 1996) nhằm mở rộng phép toán tăng cường khả bảo mật, tính tồn vẹn liệu Trong tài liệu này, tìm hiểu ngơn ngữ truy vấn liệu dựa chuẩn SQL-92 Ngôn ngữ định nghĩa cập nhật sơ đồ CSDL     Năm 1975, hãng IBM lần đưa HQT CSDL quan hệ System-R với ngôn ngữ giao tiếp SEQUEL Năm 1976 ngôn ngữ SEQUEL cải tiến thành SEQUEL2 Năm 1978-1979 SEQUEL2 cải tiến đổi thành ngơn ngữ truy vấn có cấu trúc (Structured Query Language – SQL) Năm 1986 Viện Tiêu Chuẩn Quốc gia Mỹ (Ameriacan National Standards Institute – ANSI) công nhận chuẩn hố ngơn ngữ SQL Sau Tổ chức Tiêu chuẩn quốc tế (International Standards Organization – ISO) cơng nhận ngơn ngữ Đó chuẩn SQL-86  Tạo bảng CREATE TABLE tên_bảng(tên_cột KDL(độ lớn), tên_cột KDL,…)  KDL (Kiểu liệu) là:     Char(w): Kiểu ký tự Number(w,s): Kiểu số có kích thước tối đa w ký tự, có s chữ số sau dấu chấm thập phân Date: Kiểu ngày tháng năm Logical: Kiểu logic byte có giá trị (True), sai (False) Ngơn ngữ thao tác liệu  Ví dụ: Tạo bảng SV(maSV, ht, phai, ns)  UPDATE tên_bảng SET ,… WHERE ; CREATE TABLE Sv(maSV Char(4), ht Char(30), phai Logical, ns Date)  Chỉnh sửa liệu Hoặc CREATE TABLE Sv(maSV Char(4) Primary Key, ht Char(30) Not Null, phai Logical Default True, ns Date) (tham khảo thêm cú pháp câu lệnh tài liệu)  Ví dụ 1: Cập nhật số tiết mơn CSDL lên 60 tiết Update Monhoc Set sotiet = 60 Where tenMH=“Cơ sở liệu”  Xoá bảng DROP TABLE tên_bảng;  Ví dụ: Xố bảng SV tạo Drop Table Sv 11  Tất ví dụ phía sau thao tác CSDL “Quản lý sinh viên” có cấu trúc sau: Khoa(maK, tenK) Sinhvien(maSV, hoSV, tenSV, phai, ns, que,maK) Ketqua(maSV, maMH, diem) Monhoc(maMH, tenMH, st) 10 12  Ví dụ 2: Tăng số tiết cho tất môn lên 5%  Delete from Monhoc Where tenMH=“Cơ sở liệu” Update Monhoc Set sotiet = sotiet + sotiet*5%  Ví dụ 2: Xố mơn CSDL Ví dụ 3: Đổi số tiết mơn TRR thành 90 tiết tên mơn thành Tốn rời rạc Update Monhoc Set sotiet=90, tenMH=“Toán rời rạc” Where maMH=“TRR” 13  Xố liệu (xố dòng thoả điều kiện) 15  INSERT INTO tên_bảng(cột_1, cột_2,…, cột_n) VALUES (giá_trị_1, giá_trị2,…, giá_trị_n); DELETE FROM tên_bảng WHERE điều_kiện_xoá  Thêm dòng  Ví dụ 1: Xố mơn học có số tiết lớn 100 Ví dụ: Thêm mơn (“LSD”, “Lịch sử Đảng”, 90) vào quan hệ Monhoc Insert Into Monhoc(maMH, tenMH, st) Values (“LSD”, “Lịch Sử Đảng”, 90) Delete from Monhoc Where st > 100 14 16 Truy vấn liệu  Truy vấn lựa chọn (đơn giản)  SELECT [DISTINCT] danh_sách_các_cột | * FROM danh_sách_các_bảng WHERE [điều_kiện_kết AND điều_kiện_lọc] Điều_kiện_lọc: Có dạng sau:  ss  Ví dụ: diem >=5 masv = ‘A01’ ORDER BY cộtsx [ASC | DESC] 17   Điều_kiện_kết: Được dùng mệnh đề FROM có từ bảng trở lên 19  Ví dụ: Liệt kê danh sách sinh viên gồm họ tên, ngày sinh tên khoa Select hoSv, tenSV, ns, tenK From Sinhvien, Khoa Where sinhvien.maK = khoa.maK  [NOT] BETWEEN AND  Ví dụ: diem BETWEEN and  Lọc dòng  có điểm từ đến Yêu cầu sv làm cách khác tương đương [NOT] IN (tập giá trị)   18 Ví dụ: diem IN (6,7,8)  Lọc dòng có điểm 6, 7,8 Yêu cầu sv làm cách khác tương đương 20  [NOT] LIKE “chuỗi”    “chuỗi”: Trong phần “chuỗi”, dùng dấu * đại diện cho chuỗi ký tự bất kỳ, ? Đại diện cho ký tự Ví dụ: tenSV LIKE “T*”  Tìm sv có tên bắt đầu ký tự T Ví dụ 1: Cho ds kết học tập sinh viên gồm mã sinh viên, họ tên, tên khoa, tên môn, điểm Select maSV, hoSV, tenSV, tenK, tenMH, diem From khoa, sinhvien, ketqua, monhoc Where khoa.maK = sinhvien.maK and Sinhvien.maSV = ketqua.maSV and Ketqua.maMH = monhoc.maMH 21  Các hàm xử lý ngày Day(ngày): Trả ngày  Month(ngày): Trả tháng  Year(ngày): Trả năm  getDate(): Trả ngày tháng năm hành Các hàm tính tốn  Sum(bthức): Tính tổng  Avg(bthức): Tính trung bình  Count(bthức): Đếm số dòng  Max(bthức): Trả giá trị lớn  Min(bthuc): Trả giá trị nhỏ 23  Ví dụ 2: Liệt kê sinh viên học khoa công nghệ thông tin Select maSV, hoSV, tenSV From Khoa, sinhvien Where khoa.maK = sinhvien.maK and tenK = “Cơng nghệ thơng tin”  Ví dụ 3: Liệt kê sinh viên họ Trần Select maSV, hoSV, tenSV From sinhvien Where hoSV LIKE “Trần*”   22 24  Ví dụ 4: Liệt kê sinh viên thi môn CSDL từ đến 10 điểm Select maSV, ht From sinhvien, ketqua, monhoc Where sinhvien.maSV=ketqua.maSV and ketqua.maMH=monhoc.maMH and tenMH=“Cơ sở liệu” and diem between and 10  Ví dụ 7: Cho danh sách sinh viên xếp theo họ tăng dần Select * from sinhvien Order by ht 25 27 Truy vấn nhóm  Ví dụ 5: Liệt kê sinh viên học khoa CNTT, sư phạm, kinh tế  SELECT danh_sách_các_cột FROM danh_sách_các_bảng WHERE AND GROUP BY cột_phân_nhóm,… HAVING điều_kiện_lọc_trên_nhóm; Select maSV, ht from sinhvien Where maK IN (“CNTT”, “SP”, “KT”)  Cú pháp Ví du 6: Liệt kê sinh viên 18, 21 25 tuổi Select maSV, ht from sinhvien Where year(now())-year(ns) IN (18,21,25) 26 28   Ví dụ 1: Cho biết điểm trung bình sinh viên  Select maSV, avg(diem) from ketqua Group by maSV  Ví dụ 5: Cho tổng số sinh viên có Select count(maSV) from sinhvien Ví dụ 6: Cho biết tổng số sinh viên theo khoa Select maK, count(maSV) from sinhvien Group by maK  Ví dụ 2: Cho biết điểm cao môn học Ví dụ 7: Cho biết điểm cao theo môn sinh viên khoa CNTT Select maMH, max(diem) From ketqua Where maK=“CNTT” Group by maMH Select maMH, max(diem) from ketqua Group by maMH 29 31 Bài tập  Ví dụ 3: Cho danh sách sinh viên (maSV) có điểm trung bình lớn  Select maSV from ketqua Group by masv Having avg(diem) >=5  Liệt kê sv khoa kinh tế có điểm trung bình lớn Select sinhvien.masv, hoSV, tenSV, avg(diem) as diemtb From ketqua, sinhvien, khoa Where ketqua.masv = sinhvien.masv and sinhvien.mak = khoa.mak and tenK =‘kinh tế’ Group by sinhvien.masv, hoSV, tenSV Having avg(diem) > Ví dụ 4: Cho mã sinh viên có điểm trung bình cao Select top maSV, avg(diem) From ketqua Group by maSV Order by avg(diem) DESC 30 32    Liệt kê mơn có sinh viên thi Liệt kê sv nữ, khoa công nghệ thông tin thi mơn Liệt sv có điểm trung bình từ trở lên   Liệt kê sv thi rớt mơn CSDL Cho biết điểm trung bình sinh viên Select sinhvien.maSV, hoSv, tenSV, avg(diem) as DTB From ketqua, sinhvien Where ketqua.masv = sinhvien.masv Group by sinhvien.masv, hoSV, tenSV 33 35 Truy vấn Liệt kê sv chưa thi rớt môn Select masv From ketqua Group by masv Having min(diem)>=5   Cú pháp SELECT danh_sách_các_cột FROM danh_sách_các_bảng WHERE cột so_sánh (SELECT… FROM…) [GROUP BY cột_phân_nhóm,… HAVING cột so_sánh (SELECT… FROM…)]; 34 36  Ví dụ 1: Liệt kê khoa khơng có sv  Phân tích đề: Tập hợp tất khoa - Select mak, tenk from khoa Các khoa có sv học Tổng kết Các khoa khơng có sv học Select mak from sinhvien Select mak, tenk From Khoa Where mak NOT IN (Select mak From Sinhvien)  37 39 Ví dụ 2: Cho ds sv chưa thi mơn Tập hợp tất sv - Các sv dự thi Các sv chưa thi môn Select maSV, hoSV, tenSV from sinhvien Where maSV NOT IN (select maSV from ketqua) 38 10 ... Language – DDL): Cho phép định nghĩa thay đổi cấu trúc bảng Ngôn ngữ thao tác liệu (Data Manipulation Language – DML): Cho phép thêm, sửa, xố liệu Ngơn ngữ truy vấn liệu (Structured Query Language... Query Language – SQL) : Cho phép truy vấn thông tin CSDL  Tới SQL qua lần chuẩn hoá (1989, 1992, 1996) nhằm mở rộng phép toán tăng cường khả bảo mật, tính tồn vẹn liệu Trong tài liệu này, tìm hiểu... Logical, ns Date)  Chỉnh sửa liệu Hoặc CREATE TABLE Sv(maSV Char(4) Primary Key, ht Char(30) Not Null, phai Logical Default True, ns Date) (tham khảo thêm cú pháp câu lệnh tài liệu)  Ví dụ 1: Cập nhật

Ngày đăng: 18/12/2017, 20:20

Từ khóa liên quan

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

  • Đang cập nhật ...

Tài liệu liên quan