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

Chương 3 Structured Query Language Phần 1

40 417 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 đề Chương 3 Structured Query Language Phần 1
Trường học Đại học Bách Khoa Hà Nội
Chuyên ngành Công Nghệ Thông Tin
Thể loại Giáo trình
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 40
Dung lượng 145 KB

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

Nội dung

Câu truy vấn đơn giản Câu lệnh Select… From… Vd: Hiển thị Họ, tên , phái của các nhân viên Select Honv, Tennv, Phai From Nhanvien Tương đương với phép chiếu trong ĐSQH  Honv, Tennv, Ph

Trang 1

Chương 3

SQL

Structured Query Language

Phần 1

Trang 2

Giới thiệu

 SQL là ngôn ngữ CSDL Quan hệ chuẩn

 Được sử dụng trong các DBMS thương mại

 Được phát triển từ IBM (vào đầu 70s, Sequel)

 Phiên bản chuẩn được ANSI công bố đầu tiên vào 1986

 SQL là ngôn ngữ khai báo cấp cao

 Người dùng chỉ ra kết quả cần đạt là gì

 Tối ưu hóa và quyết định thi hành ntn là do DBMS

Trang 3

 Các thao tác thêm, xóa , sửa dữ liệu

 Kiểm soát các transaction

 DCL ( D ata C ontrol L anguage)

Phân quyền người dùng

Trang 4

Giới thiệu

tăng khả năng lập trình thủ tục

 T-SQL trong MS SQL Server cho phép

 dùng cấu trúc điều khiển, biến cục bộ, cursor

 Tạo các procedure, trigger

Trang 5

Ngôn ngữ thao tác dữ liệu - DML

UPDATE, DELETE

 Dùng để truy vấn dữ liệu (query data)

 Lấy và hiển thị dữ liệu từ một hay nhiều bảng

Trang 7

Câu truy vấn đơn giản

Câu lệnh Select… From…

Vd: Hiển thị Họ, tên , phái của các nhân viên

Select Honv, Tennv, Phai

From Nhanvien

Tương đương với phép chiếu trong ĐSQH

 Honv, Tennv, Phai (NHANVIEN)

Hiển thị tất cả các cột , bằng sử dụng *

Vd: Hiển thị danh sách các nhân viên

Select *

From Nhanvien

Trang 8

Câu truy vấn đơn giản

Vd: Danh sách nơi sinh của các nhân viên

Select DISTINCT noisinh

From Nhanvien

Trang 9

Câu truy vấn đơn giản

Hiển thị các cột tính toán (Calculated fields)

 Sử dụng hàm trong cột tính toán

 Các cột có thể đặt tên mới – alias

Vd1: hiển thị chi tiết hóa đơn gồm mahd, masp, soluong, dongia và thành tiền

Select mahd, masp, soluong,dongia, soluong*dongia AS thanhtien From chitiethoadon

Vd2: hiển thị họ tên, và năm sinh của nhân viên

Select Honv+Tennv as HT , year(ngaysinh) as NS

From Nhanvien

Trang 10

Lệnh Select - Mệnh đề Where

được chọn :

 Các cột nằm trong bảng có trong mệnh đề From

 Các toán tử so sánh, toán tử logic And, Or, Not, tóan

tử Between

 Các toán tử khác : Like, in, …

Trang 11

Lệnh Select - Mệnh đề Where

 Vd1: Hiển thị các mặt hàng có đơn giá >100

Select Tensp , dongia

From Sanpham

Where dongia > 100

 Vd2: Hiển thị các mặt hàng có đơn giá >100 hoặc đơn giá <50

Select Tensp , dongia

From Sanpham

Where dongia > 100 or dongia < 50

 Vd3: Hiển thị các mặt hàng có đơn giá trong khoảng từ 50 đến 100

Select Tensp , dongia

From Sanpham

Where dongia <= 100 and dongia >= 50

Where dongia between 50 and 100

Trang 12

Where Honv like “Nguyễn%”

 Vd5: hiển thị danh sách các nhân viên có địa chỉ ở đường Nguyễn Trãi

Trang 13

Lệnh Select - Mệnh đề Where

 Sử dụng IS NULL / IS NOT NULL để so sánh với giá trị NULL

Vd: Hiển thị danh sách các Nhân viên chưa biết số điện thoại

Select * From Nhanvien

Where dienthoai IS NULL

Vd: mệnh đề Where có thể chứa biểu thức cột

select Honv, Tennv

From Nhanvien

where left(Honv,1) like ‘N'

Trang 15

Lệnh Select – sử dụng các hàm

thống kê

 Còn gọi là Aggregate Functions

 Hàm Count, Sum, Avg, Min, Max

Vd: hiển thị tổng trị giá tất cả các hóa đơn

Trang 16

Lệnh Select – sử dụng các hàm

thống kê

Hàm count(tencot), count(*) và count(distinct)

Vd1: cho biết số lượng nhân viên

Select Count(Noisinh) From Nhanvien

Select Count(Distinct Noisinh) From Nhanvien Select Count(*) From Nhanvien

Vd2: Hiển thị tổng số hóa đơn , tổng trị giá các hóa đơn ?

Trang 17

Vd2: Hiển thị tổng trị giá của từng hóa đơn

Select Mahd, maSp, sum(soluong*dongia) As TongTg

From Chitiethoadon

Group By Mahd

Trang 19

Lệnh Select – mệnh đề Group by

 Chú ý : các cột xuất hiện trong mệnh đề Select phải

có trong mệnh đề Group By, ngoại trừ các cột được tạo từ hàm thống kê

Trang 21

Truy vấn lồng - Subqueries

trong một câu lệnh select khác (outer)

 Kết quả của lệnh inner select, hay subselect được

sử dụng trong lệnh outer select để xác định tập kết quả

 Thường đặt trong mệnh đề Where, Having của lệnh outer select

lệnh khác như INSERT, DELETE, UPDATE

Trang 24

Truy vấn lồng - Subqueries

Vd2: hiển thị những nhân viên có lương lớn hơn lương của ít nhất một nhân viên có chức vụ là ‘trưởng phòng

Select T.Manv, T.Chucvu

From Nhanvien As T, Nhanvien As S

Where T.Luong > S.Luong

And S.Chucvu like ‘trưởng phòng’

Trang 25

Where Luong >All (Select Luong From Nhanvien

Where Chucvu like ‘trưởng phòng’ )

Vd4: hiển thị những nhân viên có bán hàng trong tháng 5

Select Manv, Honv, Tennv

From Nhanvien

Where Manv IN (Select Manv From Hoadon

Where Month(NgaylapHD) = 5 )

Trang 26

Truy vấn lồng - Subqueries

 Kiểm tra kết quả của câu truy vấn con có rỗng

Where Exists (Select * From Hoadon

Where Manv = t.Manv)

Trang 27

Lệnh Select – truy vấn từ nhiều bảng

gõ tên dài và làm truy vấn dễ đọc hơn

bảng trước, sau đó kết nối nhóm này với

bảng thứ ba…

Trang 28

Lệnh Select – truy vấn từ nhiều bảng

 Vd1: Hiển thị Mahd, TenKH, NgaylapHD của hóa đơn 10148

Select Mahd, Tenkh, NgaylapHD

From Hoadon As H INNER JOIN Khachhang As K

ON H.Makh = K.MakhWhere Mahd = ‘10148’

Hoặc :

Select Mahd, Tenkh, NgaylapHD

From Hoadon As H , Khachhang As K

Where H.Makh = K.Makh and Mahd = ‘10148’

Trang 29

Lệnh Select – truy vấn từ nhiều bảng

 Vd2: Hiển thị tên khách hàng mua hàng trong tháng 2

Select K.Makh, Tenkh

From Khachhang As K INNER JOIN Hoadon As H

ON K.Makh = H.Makh Where Month(ngaylapHD) =2

 Vd3: Hiển thị tên khách hàng chưa từng mua hàng

Select K.Makh, Tenkh

From Khachhang As K LEFT JOIN Hoadon As H

ON K.Makh = H.Makh Where Mahd IS NULL

Trang 30

Lệnh Select – truy vấn từ nhiều bảng

hóa đơn do nhân viên đã lập

Select Tennv, Mahd, Masp, Soluong, Dongia

From (Nhanvien As N INNER JOIN Hoadon As H ON N.Manv= H.Manv ) INNER JOIN Chitiethoadon As C

ON H.Mahd=C.Mahd

Trang 31

Lệnh Select – toán tử Union

 Sử dụng toán tử Union để hợp tập dữ liệu của các câu lệnh Select vào quan hệ kết quả

Vd: hiển thị các thành phố có trong cả hai bảng

Khachhang và Nhanvien

Select Thanhpho From Khachhang

UNION

Select Noisinh From Nhanvien

 Sử dụng toán tử Except (phép hiệu), Intersect (phép giao) : trong SQLServer2005

Trang 32

Lệnh Insert

INSERT INTO tênbảng [dscột]

VALUES (danhsách giá trị)

thứ tự các thuộc tính được nêu trong lệnh

CREATE TABLE

Trang 33

Lệnh Insert

Insert into Sanpham

Values(12, ‘Sữa bột’, ‘Kg’, 200, NULL)

Insert into

Sanpham(Tensp, Donvitinh, Dongia) Values(‘Mì ăn liền’, ‘Thùng’, 100)

Trang 34

Lệnh Insert

Insert Into tênbảng [dscột]

Select … From …Where…

Vd: giả sử có bảng HOADONLUU( MAHD,LOAIHD,

MAKH, MANV, NGAYLAPHD, NGAYGNHANG, DIENGIAI )

Insert Into HoadonLuu

Select * From Hoadon

Where Year(Ngaylaphd) <2009

Trang 36

Lệnh Update

 Vd1: tăng giá của tất cả cácmặt hàng lên 10%

Update Sanpham

Set Dongia = Dongia*1.1

 Vd2: nhân viên có mã 101 được bổ nhiệm làm ‘quản lý’

và lương mới là 310

Update Nhanvien

Set Chucvu = ‘quảnlý’ , Luong = 310

Where Manv = 101

Trang 37

Delete From Nhanvien

Where Manv = ‘101’

Trang 38

Lệnh Delete

 Vd2:

Delete From Nhanvien

 Vd3:

Delete From Nhanvien

Where Manv NOT IN

(Select Manv From Hoadon

Where Year(Ngaylaphd)=2009 )

Trang 39

Cascade Update & Cascade

Delete

vi phạm các Ràng buộc toàn vẹn đã cài đặt

 Bị từ chối thực hiện

những bộ tham chiếu đến (cascade update, cascade delete)

 Khi thực hiện thao tác trên bảng cha

Trang 40

DB quản lý bán hàng

Ngày đăng: 12/05/2014, 11:52

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w