Bài giảng Cơ sở dữ liệu - Chương 3: SQL cung cấp cho người học các kiến thức cơ bản về Structured Query Language, câu truy vấn đơn giản, câu truy vấn đơn giản, lệnh Select - Mệnh đề Where, mệnh đề Order By, sử dụng các hàm thống kê, mệnh đề Group by,... Mời các bạn cùng tham khảo nội dung chi tiết.
Chương SQL Structured Query Language Phần Giới thiệu SQL ngôn ngữ CSDL Quan hệ chuẩn Được sử dụng DBMS thương mại Được phát triển từ IBM (vào đầu 70s, Sequel) Phiên chuẩn ANSI công bố vào 1986 SQL ngôn ngữ khai báo cấp cao Người dùng kết cần đạt Tối ưu hóa định thi hành ntn DBMS Giới thiệu SQL bao gồm phần : DDL (Data Definition Language) Định nghĩa Database Định nghĩa cấu trúc Bảng Định nghĩa ràng buộc toàn vẹn Định nghĩa khung nhìn DML (Data Manipulation Language) Truy vấn liệu Các thao tác thêm, xóa , sửa liệu Kiểm soát transaction DCL (Data Control Language) Phân quyền người dùng Giới thiệu Trong số DBMS, SQL mở rộng để tăng khả lập trình thủ tục T-SQL MS SQL Server cho phép dùng cấu trúc điều khiển, biến cục bộ, cursor Tạo procedure, trigger Ngôn ngữ thao tác liệu - DML DML bao gồm lệnh : SELECT, INSERT, UPDATE, DELETE Lệnh Select lệnh thường dùng Dùng để truy vấn liệu (query data) Lấy hiển thị liệu từ hay nhiều bảng Lệnh Select Cú pháp : SELECT [ DISTINCT | ALL] [ * | têncột [AS tên mới] [,…] FROM tênbảng [alias] [,…] [WHERE điềukiện ] [GROUP BY danhsáchcột ] [HAVING điềukiện ] [ORDER BY danhsáchcột ] (*) Các ví dụ chương sử dụng CSDL Quản lý Bán hàng , xem slide cuối Câu truy vấn đơn giản Câu lệnh Select… From… Vd: Hiển thị Họ, tên , phái nhân viên Select Honv, Tennv, Phai From Nhanvien Tương đương với phép chiếu ĐSQH Honv, Tennv, Phai (NHANVIEN) Hiển thị tất cột , sử dụng * Vd: Hiển thị danh sách nhân viên Select * From Nhanvien Câu truy vấn đơn giản Sử dụng Distinct để loại bỏ trùng Vd: Danh sách nơi sinh nhân viên Select DISTINCT noisinh From Nhanvien Câu truy vấn đơn giản Hiển thị cột tính tốn (Calculated fields) Sử dụng hàm cột tính tốn Các cột đặt tên – alias Vd1: hiển thị chi tiết hóa đơn gồm mahd, masp, soluong, dongia thành tiền Select mahd, masp, soluong,dongia, soluong*dongia AS thanhtien From chitiethoadon Vd2: hiển thị họ tên, năm sinh nhân viên Select Honv+Tennv as HT , year(ngaysinh) as NS From Nhanvien Lệnh Select - Mệnh đề Where Sử dụng để chọn số Chứa biểu thức logic, xác định chọn : Các cột nằm bảng có mệnh đề From Các toán tử so sánh, toán tử logic And, Or, Not, tóan tử Between Các tốn tử khác : Like, in, … Truy vấn lồng - Subqueries Tóan tử EXISTS (NOT EXISTS) Kiểm tra kết câu truy vấn có rỗng hay khơng Vd1 : hiển thị danh sách nhân viên bán hàng Select Manv, Honv, Tennv From Nhanvien t Where Exists (Select * From Hoadon Where Manv = t.Manv) Lệnh Select – truy vấn từ nhiều bảng Tương tự phép kết ĐSQH Nên tạo bí danh (alias) cho tên bảng để tránh gõ tên dài làm truy vấn dễ đọc Nếu số bảng kết nối nhiều 2, kết nối bảng trước, sau kết nối nhóm với bảng thứ ba… Hai loại kết: inner join, outer join Lệnh Select – truy vấn từ nhiều bảng Vd1: Hiển thị Mahd, TenKH, NgaylapHD hóa đơn 10148 Select Mahd, Tenkh, NgaylapHD From Hoadon As H INNER JOIN Khachhang As K ON H.Makh = K.Makh Where Mahd = ‘10148’ Hoặc : Select Mahd, Tenkh, NgaylapHD From Hoadon As H , Khachhang As K Where H.Makh = K.Makh and Mahd = ‘10148’ Lệnh Select – truy vấn từ nhiều bảng Vd2: Hiển thị tên khách hàng mua hàng tháng 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 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 Lệnh Select – truy vấn từ nhiều bảng Vd4: Hiển thị tên nhân viên chi tiết hóa đơn 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 Lệnh Select – toán tử Union Sử dụng toán tử Union để hợp tập liệu câu lệnh Select vào quan hệ kết Vd: hiển thị thành phố có hai bảng Khachhang Nhanvien Select Thanhpho From Khachhang UNION Select Thanhpho From Nhanvien Sử dụng toán tử Except (phép hiệu), Intersect (phép giao) : SQLServer2005 Lệnh Insert Nhập liệu vào bảng Cú pháp : INSERT INTO tênbảng [dscột] VALUES (danhsách giá trị) Thứ tự giá trị mệnh đề VALUES trùng với thứ tự thuộc tính nêu lệnh CREATE TABLE Dùng [dscột] để rõ cột nhập liệu Lệnh Insert Vd1: nhập vào bảng Sanpham Insert into Sanpham Values(12, ‘Sữa bột’, ‘Kg’, 200, NULL) Vd2: nhập vào bảng Sanpham Insert into Sanpham(Tensp, Donvitinh, Dongia) Values(‘Mì ăn liền’, ‘Thùng’, 100) Lệnh Insert Cú pháp 2: 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)