mapbe9x

New Member

Download miễn phí Bài giảng Ngôn ngữ SQL





Inner Join, Left Join, Right Join, Full Join
Ví dụ:
In ra danh sách các khách hàng (MAKH,
HOTEN) đã mua hàng trong ngày 1/1/2007.
select KHACHHANG.makh,hoten
from KHACHHANG inner join HOADON on
KHACHHANG.makh=HOADON.makh
where nghd='1/1/2007'



Để tải bản Đầy Đủ của tài liệu, xin Trả lời bài viết này, Mods sẽ gửi Link download cho bạn sớm nhất qua hòm tin nhắn.
Ai cần download tài liệu gì mà không tìm thấy ở đây, thì đăng yêu cầu down tại đây nhé:
Nhận download tài liệu miễn phí

Tóm tắt nội dung tài liệu:

Khoa HTTT - Đại học
CNTT 1
Bài 5: Ngôn ngữ SQL
Khoa HTTT - Đại học CNTT 2
Nội dung
1. Giới thiệu
2. Các ngôn ngữ giao tiếp
3. Ngôn ngữ định nghĩa dữ liệu
4. Ngôn ngữ thao tác dữ liệu
5. Ngôn ngữ truy vấn dữ liệu có cấu trúc
6. Ngôn ngữ điều khiển dữ liệu
Khoa HTTT - Đại học CNTT 3
 Là ngôn ngữ chuẩn để truy vấn và thao tác trên
CSDL quan hệ
 Là ngôn ngữ phi thủ tục
 Khởi nguồn của SQL là SEQUEL - Structured
English Query Language, năm 1974)
 Các chuẩn SQL
 SQL89
 SQL92 (SQL2)
 SQL99 (SQL3)
1. Giới thiệu
Khoa HTTT - Đại học CNTT 4
2. Các ngôn ngữ giao tiếp
 Ngôn ngữ định nghĩa dữ liệu (Data Definition
Language - DDL): cho phép khai báo cấu trúc bảng,
các mối quan hệ và các ràng buộc.
 Ngôn ngữ thao tác dữ liệu (Data Manipulation
Language - DML): cho phép thêm, xóa, sửa dữ liệu.
 Ngôn ngữ truy vấn dữ liệu (Structured Query
Language – SQL): cho phép truy vấn dữ liệu.
 Ngôn ngữ điều khiển dữ liệu (Data Control
Language – DCL): khai báo bảo mật thông tin, cấp
quyền và thu hồi quyền khai thác trên cơ sở dữ liệu.
Khoa HTTT - Đại học CNTT 5
3.1 Lệnh tạo bảng (CREATE)
3.1.1 Cú pháp
3.1.2 Một số kiểu dữ liệu
3.2 Lệnh sửa cấu trúc bảng (ALTER)
3.2.1 Thêm thuộc tính
3.2.2 Sửa kiểu dữ liệu của thuộc tính
3.2.3 Xoá thuộc tính
3.2.4 Thêm ràng buộc toàn vẹn
3.2.5 Xoá ràng buộc toàn vẹn
3.3 Lệnh xóa bảng (DROP)
3. Ngôn ngữ định nghĩa dữ liệu
Khoa HTTT - Đại học CNTT 6
3.1.1 Cú pháp
CREATE TABLE
(
[not null],
[not null],

[not null],
khai báo khóa chính, khóa ngoại, ràng buộc
)
3.1 Lệnh tạo bảng
Khoa HTTT - Đại học CNTT 7
Kiểu dữ liệu SQL Server
Chuỗi ký tự varchar(n), char(n),nvarchar(n), nchar(n)
Số tinyint,smallint, int,
numeric(m,n), decimal(m,n),float, real,
smallmoney, money
Ngày tháng smalldatetime, datetime
Luận lý bit
3.1 Lệnh tạo bảng (2)
3.1.2 Một số kiểu dữ liệu
Khoa HTTT - Đại học CNTT 8
3.1 Lệnh tạo bảng (3)
Lược đồ CSDL quản lý bán hàng gồm có các quan hệ sau:
KHACHHANG (MAKH, HOTEN, DCHI, SODT, NGSINH,
DOANHSO, NGDK, CMND)
NHANVIEN (MANV,HOTEN, NGVL, SODT)
SANPHAM (MASP,TENSP, DVT, NUOCSX, GIA)
HOADON (SOHD, NGHD, MAKH, MANV, TRIGIA)
CTHD (SOHD,MASP,SL)
Khoa HTTT - Đại học CNTT 9
3.1 Lệnh tạo bảng (4)
Create table KHACHHANG
(
MAKH char(4) primary key,
HOTEN varchar(40),
DCHI varchar(50),
SODT varchar(20),
NGSINH smalldatetime,
DOANHSO money,
NGDK smalldatetime,
CMND varchar(10)
)
Khoa HTTT - Đại học CNTT 10
3.1 Lệnh tạo bảng (5)
Create table CTHD
(
SOHD int foreign key
references HOADON(SOHD),
MASP char(4) foreign key
references SANPHAM(MASP),
SL int,
constraint PK_CTHD primary key (SOHD,MASP)
)
Khoa HTTT - Đại học CNTT 11
3.2.1 Thêm thuộc tính
ALTER TABLE tênbảng ADD têncột kiểudữliệu
 Ví dụ: thêm cột Ghi_chu vào bảng khách hàng
ALTER TABLE KHACHHANG ADD GHI_CHU varchar(20)
3.2.2 Sửa kiểu dữ liệu thuộc tính
ALTER TABLE tênbảng ALTER COLUMN têncột
kiểudữliệu_mới
 Lưu ý:
Không phải sửa bất kỳ kiểu dữ liệu nào cũng được
3.2 Sửa cấu trúc bảng(1)
Khoa HTTT - Đại học CNTT 12
 Ví dụ: Sửa Cột Ghi_chu thành kiểu dữ liệu varchar(50)
ALTER TABLE KHACHHANG ALTER COLUMN GHI_CHU varchar(50)
 Nếu sửa kiểu dữ liệu của cột Ghi_chu thành varchar(5), mà
trước đó đã nhập giá trị cho cột Ghi_chu có độ dài hơn 5 ký
tự thì không được phép.
 hay sửa từ kiểu chuỗi ký tự sang kiểu số, …
3.2.3 Xóa thuộc tính
ALTER TABLE tên_bảng DROP COLUMN tên_cột
 Ví dụ: xóa cột Ghi_chu trong bảng KHACHHANG
ALTER TABLE NHANVIEN DROP COLUMN Ghi_chu
3.2 Sửa cấu trúc bảng(2)
Khoa HTTT - Đại học CNTT 13
3.2.4 Thêm ràng buộc toàn vẹn
ALTER TABLE
ADD CONSTRAINT
UNIQUE tên_cột
PRIMARY KEY (tên_cột)
FOREIGN KEY (tên_cột)
REFERENCES tên_bảng
(cột_là_khóa_chính) [ON
DELETE CASCADE] [ON
UPDATE CASCADE]
CHECK (tên_cột điều_kiện)
3.2 Sửa cấu trúc bảng(3)
Khoa HTTT - Đại học CNTT 14
 Ví dụ
 ALTER TABLE NHANVIEN ADD CONSTRAINT PK_NV
PRIMARY KEY (MANV)
 ALTER TABLE CTHD ADD CONSTRAINT FK_CT_SP
FOREIGN KEY (MASP) REFERENCES
SANPHAM(MASP)
 ALTER TABLE SANPHAM ADD CONSTRAINT
CK_GIA CHECK (GIA >=500)
 ALTER TABLE KHACHHANG ADD CONSTRAINT
UQ_KH UNIQUE (CMND)
3.2 Sửa cấu trúc bảng(4)
Khoa HTTT - Đại học CNTT 15
3.2.5 Xóa ràng buộc toàn vẹn
ALTER TABLE tên_bảng DROP CONSTRAINT
tên_ràng_buộc
 Ví dụ:
 Alter table CTHD drop constraint FK_CT_SP
 Alter table SANPHAM drop constraint ck_gia
 Lưu ý: đối với ràng buộc khóa chính, muốn xóa
ràng buộc này phải xóa hết các ràng buộc khóa
ngoại tham chiếu tới nó
3.2 Sửa cấu trúc bảng(5)
Khoa HTTT - Đại học CNTT 16
 Cú pháp
DROP TABLE tên_bảng
 Ví dụ: xóa bảng KHACHHANG.
DROP TABLE KHACHHANG
 Lưu ý: khi muốn xóa một bảng phải xóa tất
cả những khóa ngoại tham chiếu tới bảng đó
trước.
3.3 Lệnh xóa bảng
Khoa HTTT - Đại học CNTT 17
 Gồm các lệnh:
4.1 Lệnh thêm dữ liệu (INSERT)
4.2 Lệnh sửa dữ liệu (UPDATE)
4.3 Lệnh xóa dữ liệu (DELETE)
4. Ngôn ngữ thao tác dữ liệu
Khoa HTTT - Đại học CNTT 18
 Cú pháp
INSERT INTO tên_bảng (cột1,…,cộtn) VALUES
(giá_trị_1,…., giá_trị_n)
INSERT INTO tên_bảng VALUES (giá_trị_1,
giá_trị_2,…, giá_trị_n)
 Ví dụ:
 insert into SANPHAM values('BC01','But chi', 'cay',
'Singapore', 3000)
 insert into SANPHAM(masp,tensp,dvt,nuocsx,gia)
values ('BC01','But chi','cay','Singapore',3000)
4.1 Thêm dữ liệu
Khoa HTTT - Đại học CNTT 19
 Cú pháp
UPDATE tên_bảng
SET cột_1 = giá_trị_1, cột_2 = giá_trị_2 ….
[WHERE điều_kiện]
 Lưu ý: cẩn thận với các lệnh xóa và sửa, nếu không
có điều kiện ở WHERE nghĩa là xóa hay sửa tất cả.
 Ví dụ: Tăng giá 10% đối với những sản phẩm do
“Trung Quoc” sản xuất
UPDATE SANPHAM
SET Gia = Gia*1.1
WHERE Nuocsx=‘Trung Quoc’
4.2 Sửa dữ liệu
Khoa HTTT - Đại học CNTT 20
4.3 Xóa dữ liệu
 Cú pháp
DELETE FROM tên_bảng [WHERE điều_kiện]
 Ví dụ:
 Xóa toàn bộ nhân viên
DELETE FROM NHANVIEN
 Xóa những sản phẩm do Trung Quốc sản xuất có giá thấp
hơn 10000
DELETE FROM SANPHAM
WHERE (Gia <10000) and (Nuocsx=‘Trung Quoc’)
Khoa HTTT - Đại học CNTT 21
5. Ngôn ngữ truy vấn dữ liệu có
cấu trúc
5.1 Câu truy vấn tổng quát
5.2 Truy vấn đơn giản
5.3 Phép kết
5.4 Đặt bí danh, sử dụng *, distinct
5.5 Các toán tử
5.6 Câu truy vấn con (subquery)
5.7 Phép chia
5.8 Hàm tính toán, gom nhóm
Khoa HTTT - Đại học CNTT 22
SELECT [DISTINCT] *|tên_cột | hàm
FROM bảng
[WHERE điều_kiện]
[GROUP BY tên_cột]
[HAVING điều_kiện]
[ORDER BY tên_cột ASC | DESC]
5.1Câu truy vấn tổng quát
Khoa HTTT - Đại học CNTT 23
5.2 Truy vấn đơn giản(1)
 SELECT
 Tương đương phép chiếu của ĐSQH
 Liệt kê các thuộc tính cần hiển thị trong kết quả
 WHERE
 Tương ứng với điều kiện chọn trong ĐSQH
 Điều kiện liên quan tới thuộc tính, sử dụng các phép nối
luận lý AND, OR, NOT, các phép toán so sánh,
BETWEEN
 FROM
 Liệt kê các quan hệ cần thiết, các phép kết
Khoa HTTT - Đại học CNTT 24
5.2 Truy vấn đơn giản(2)
 Tìm masp, tensp do “Trung Quoc” sản xuất
có giá từ 20000 đến 30000
Select masp,tensp
From SANPHAM
Where nuocsx=‘Trung Quoc’
and gia between 20000 and 30000
Khoa HTTT - Đại học CNTT 25
5.3 Phép kết(1)
 Inner Join, Left Join, Right Join, Full Join
 Ví dụ:
 In ra danh sách các khách hàng (MAKH,
HOTEN) đã mua hàng trong ngày 1/1/2007.
select KHACHHAN...
 

Các chủ đề có liên quan khác

Top