Bài giảng SQL - Chương 5: Ngôn ngữ SQL

Khái niệm về cấu trúc vật lý

- Máy chủ (Server): là các máy tính cung cấp các tài

nguyên chia sẻ trên mạng.

- Máy trạm (Client): là các máy tính được phép truy xuất

các tài nguyên đã được chia sẻ trên mạng.

- Dây cáp mạng (Cable hoặc Media): là một hệ thống dây

cáp nối kết vật lý các máy tính, máy in lại với nhau

- Dữ liệu chung (Shared data):

là các tập tin, thư mục mà

người sử dụng trong hệ thống

mạng có thể truy xuất vào

máy chủ từ các máy trạm

pdf58 trang | Chuyên mục: SQL Server | Chia sẻ: dkS00TYs | Lượt xem: 2178 | Lượt tải: 3download
Tóm tắt nội dung Bài giảng SQL - Chương 5: Ngôn ngữ SQL, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
atabase Diagram
- Nhấn nút Yes
- Chọn các bảng dữ liệu muốn tạo mô hình quan hệ
- Nhấn nút Add
92
Xây dựng 1 CSDL với SQL Server 
Môn học: CƠ SỞ DỮ LiỆU
21-03-2012
47
 Tạo mô hình quan hệ (Diagram)
- Chương trình tự động tạo mô hình quan hệ theo các ràng
buộc khóa ngoại đã khai báo.
93
Xây dựng 1 CSDL với SQL Server 
Môn học: CƠ SỞ DỮ LiỆU
 Nhập liệu
- Phải nhập liệu cho bảng quan hệ 1 trước (bảng có biểu
tượng chìa khóa)
Nhập bảng KHOA hoặc MONHOC trước, rồi đến bảng SINHVIEN, 
cuối cùng mới nhập liệu cho bảng KETQUA .
94
Xây dựng 1 CSDL với SQL Server 
Môn học: CƠ SỞ DỮ LiỆU
21-03-2012
48
 Nhập liệu
- Cú pháp nhập liệu:
insert into Tên_bảng (Tên_cột_1, Tên_cột_2, U) 
values (Giá _trị_1, Giá_trị_2, U)
- Lưu ý:
Giá _trị_1, Giá_trị_2, U là các giá trị nhập liệu tương ứng với 
Tên_cột_1, Tên_cột_2, U
Có thể lược bỏ (Tên_cột_1, Tên_cột_2, U) nếu nhập liệu 
đúng với thứ tự và cấu trúc các cột đã khai báo trong lúc tạo 
bảng. Cú pháp trở thành:
insert into Tên_bảng values (Giá _trị_1, Giá_trị_2, U)
95
Xây dựng 1 CSDL với SQL Server 
Môn học: CƠ SỞ DỮ LiỆU
 Nhập liệu
- Qui cách nhập liệu:
Kiểu chuỗi: đặt trong cặp nháy đơn ‘ ’. Nếu nhập liệu có dấu (kiểu nchar
hoặc nvarchar) thì thêm ký tự N phía trước .
∗ Ví dụ:
insert into KHOA values ('AV', N'Anh Văn')
insert into KHOA values ('LS', N'Lịch sử')
insert into KHOA values ('TH', N'Tin học')
insert into KHOA values ('TR', N'Triết')
insert into KHOA values ('VL', N'Vật lý')
insert into KHOA values ('SH', N'Sinh học')
96
Xây dựng 1 CSDL với SQL Server 
Môn học: CƠ SỞ DỮ LiỆU
21-03-2012
49
 Nhập liệu
- Qui cách nhập liệu:
Kiểu số: nhập liệu các con số, không sử dụng cặp dấu nháy đơn.
∗ Ví dụ:
insert into MONHOC values('01', N'Nhập môn máy tính', 30)
insert into MONHOC values('02', N'Trí tuệ nhân tạo', 45)
insert into MONHOC values('03', N'Truyền tin', 45)
insert into MONHOC values('04', N'Đồ họa', 50)
insert into MONHOC values('05', N'Văn phạm', 40)
insert into MONHOC values('06', N'Đàm thoại', 30)
insert into MONHOC values('07', N'Vật lý nguyên tử', 30)
97
Xây dựng 1 CSDL với SQL Server 
Môn học: CƠ SỞ DỮ LiỆU
 Nhập liệu
- Qui cách nhập liệu:
Kiểu ngày: nhập giá trị tháng trước, ngày sau (yyyy-mm-dd) và đặt trong 
cặp dấu nháy đơn ‘ ’ 
∗ Ví dụ:
insert into SINHVIEN values ('A01',N'Nguyễn Thu',N’Hải',0,'1980-02-23',N'TP.HCM','AV',100000)
insert into SINHVIEN values ('A02',N'Trần Văn',N'Chính',1,'1982-12-24',N'TP.HCM','TH',100000)
insert into SINHVIEN values ('A03',N'Lê Thu Bạch',N'Yến',0,'1982-12-12',N'Hà Nội','AV',140000)
insert into SINHVIEN values('A04',N'Trần Anh',N'Tuấn',1,'1984/12/08',N'Long An','LS',80000)
insert into SINHVIEN values('A05',N'Trần Thanh',N'Triều',1,'1980-02-01',N'Hà Nội','VL',80000)
insert into SINHVIEN values('B01',N'Trần Thanh',N'Mai',0,'1981-12-20',N'Bến Tre','TH',200000)
insert into SINHVIEN values('B02',N'Trần Thị Thu',N'Thủy',0,'1982-02-13',N'TP.HCM','TH',30000)
insert into SINHVIEN values('B03',N'Trần Thị',N'Thanh',0,'1982-12-31',N'TP.HCM','TH',50000)
98
Xây dựng 1 CSDL với SQL Server 
Môn học: CƠ SỞ DỮ LiỆU
21-03-2012
50
 Truy vấn dữ liệu
- Cấu trúc câu lệnh Select
Select [Tên_bảng.]Tên_cột [, Ž]
From Tên_bảng_1 Tên_bảng_2
Where Điều_kiện
Group by Các_cột_gom_nhóm
Having Điều_kiện_lọc_nhóm
Order by [Tên_bảng.]Tên_cột_cần_sắp_xếp [asc / desc, Ž]
Compute Hàm_thống_kê [By Tên_cột]
99
Xây dựng 1 CSDL với SQL Server 
Môn học: CƠ SỞ DỮ LiỆU
 Truy vấn dữ liệu
- Ghi chú:
Mệnh đề Select: chứa các cột, các hàm muốn hiển thị.
Nếu Tên_Cột tồn tại trong nhiều bảng, ta phải ghi 
rõ:Tên_Bảng.Tên_Cột
Nếu hiển thị tất cả các cột trong bảng: Ten_Bang.*
100
Xây dựng 1 CSDL với SQL Server 
Môn học: CƠ SỞ DỮ LiỆU
21-03-2012
51
 Truy vấn dữ liệu
- Ghi chú:
Các toán tử dùng trên mệnh đề Select
∗ Cú pháp: Select Toán_tử [Tên_bảng.]Tên_cột [, U]
∗ Với các toán tử:
 Distinct: loại bỏ các dòng dữ liệu trùng
 Top n: lấy n dòng đầu tiên
 Top n with ties: lấy những dòng thuộc n cấp đầu tiên 
theo giá trị của cột được sắp xếp
 Top n percent: lấy N % số dòng trả về
101
Xây dựng 1 CSDL với SQL Server 
Môn học: CƠ SỞ DỮ LiỆU
 Truy vấn dữ liệu
- Ghi chú:
Trong mệnh đề Select ta có thể dùng cấu trúc lệnh:
Case
When Điều_kiện_1 Then Giá_trị_1
When Điều_kiện_2 Then Giá_trị_2
U
Else
Giá_trị_n
End
102
Xây dựng 1 CSDL với SQL Server 
Môn học: CƠ SỞ DỮ LiỆU
21-03-2012
52
 Truy vấn dữ liệu
- Ghi chú:
Mệnh đề From: cho biết dữ liệu trên câu truy vấn được lấy từ 
các bảng nào
Nếu dữ liệu lấy từ nhiều bảng thì các bảng này phải có quan hệ 
với nhau:
- Cú pháp:
Bảng_ 1 inner join Bảng_2 on Bảng_1.Tên_cột = Bảng_2.Tên_cột
103
Xây dựng 1 CSDL với SQL Server 
Môn học: CƠ SỞ DỮ LiỆU
 Truy vấn dữ liệu
- Ghi chú:
Nếu hai bảng liên kết với nhau qua mệnh đề inner join thì kết 
quả trả về là những dòng của hai bảng có giá trị bằng nhau tại 
cột liên kết.
Nếu hai bảng liên kết với nhau qua mệnh đề left join (right 
join) thì kết quả trả về là những dòng của hai bảng có giá trị 
bằng nhau tại cột liên kết và các dòng của bảng bên trái (bên 
phải) có dữ liệu không bằng dữ liệu của cột liên kết trong bảng 
kia.
Nếu hai bảng liên kết với nhau qua mệnh đề full join thì kết 
quả trả về là những dòng của hai bảng có giá trị bằng nhau tại 
cột liên kết và các dòng dữ liệu của cả hai bảng không bằng 
nhau tại cột liên kết.
104
Xây dựng 1 CSDL với SQL Server 
Môn học: CƠ SỞ DỮ LiỆU
21-03-2012
53
 Truy vấn dữ liệu
- Ghi chú:
Mệnh đề Where: để lọc dữ liệu trả về hoặc để gom nhóm
Nếu có nhiều điều kiện lọc thì các điều kiện này phải kết với 
nhau bằng toán tử and (và) hoặc or (hoặc).
Trong mệnh đề Where, có thể sử dụng các toán tử:
∗ Like tìm chuỗi gần đúng
 % : đại diện 1 chuỗi các ký tự
 _ (Gạch dưới): đại diện 1 ký tự
∗ Between Giá_trị_1 and Giá_trị_2
105
Xây dựng 1 CSDL với SQL Server 
Môn học: CƠ SỞ DỮ LiỆU
 Truy vấn dữ liệu
- Ghi chú:
Mệnh đề Group by: để gom nhóm dữ liệu
Mệnh đề này phải có khi câu truy vấn có sử dụng hàm thống kê 
và có lấy thêm các cột không sử dụng hàm thống kê trên mệnh 
đề Select 
Cú pháp: Group By Danh_sách_cột, Biểu_thức
∗ Với Danh_sách_cột, Biểu_thức: là tất cả các cột không sử dụng hàm 
thống kê trên mệnh đề Select, lược bỏ các nhãn (as ten_nhan)
106
Xây dựng 1 CSDL với SQL Server 
Môn học: CƠ SỞ DỮ LiỆU
21-03-2012
54
 Truy vấn dữ liệu
- Ghi chú:
Các Hàm thống kê:
∗ Sum (Tên_cột): tính tổng với cột có kiểu số
∗ Count (Tên_cột / *): đếm tổng số dòng
∗ Avg (Tên_cột): tính giá trị trung bình cộng 
∗ Max (Tên_cột): giá trị lớn nhất
∗ Min (Tên_cột): giá trị nhỏ nhất
107
Xây dựng 1 CSDL với SQL Server 
Môn học: CƠ SỞ DỮ LiỆU
 Truy vấn dữ liệu
- Ghi chú:
Mệnh đề Having: dùng để lọc nhóm dữ liệu, chỉ tồn tại khi điều 
kiện lọc dữ liệu có hàm thống kê.
Chú ý: trong câu truy vấn có hai mệnh đề lọc dữ liệu là Where
và Having
∗ Where: lọc dữ liệu để tạo nhóm (các điều kiện không sử 
dụng hàm thống kê).
∗ Having: lọc nhóm (các điều kiện có sử dụng hàm thống kê).
108
Xây dựng 1 CSDL với SQL Server 
Môn học: CƠ SỞ DỮ LiỆU
21-03-2012
55
 Truy vấn dữ liệu
- Ghi chú:
Mệnh đề OrDer By: để sắp xếp dữ liệu.
∗ Asc: tăng dần (default)
∗ Desc: giảm dần
Mệnh đề Compute /Compute Ž By : tạo giá trị thống kê cuối 
kết quả hoặc thống kê theo cột.
∗ Compute Hàm_thống_kê: tạo thống kê cuối kết quả
∗ Compute Hàm_thống_kê By [Tên_bảng.]Tên_cột: thống kê theo cột,
dữ liệu phải được sắp xếp theo cột này.
 Chú ý: Trong View không có mệnh đề này
109
Xây dựng 1 CSDL với SQL Server 
Môn học: CƠ SỞ DỮ LiỆU
 Truy vấn dữ liệu
- Toán tử UNION:
Dùng để nối kết quả của hai câu truy vấn thành một với điều 
kiện:
∗ Số cột trả về của hai câu truy vấn giống nhau.
∗ Các cột từng đôi một phải cùng kiểu dữ liệu.
110
Xây dựng 1 CSDL với SQL Server 
Môn học: CƠ SỞ DỮ LiỆU
21-03-2012
56
 Thêm nhiều dòng vào bảng
- Cú pháp: 
insert into Tên_bảng_đích (Tên_cột_1, Tên_cột_2 [,Ž]) 
select Tên_bảng_nguồn.Tên_cột, Giá_trị, Biểu_thức, Ž
from Ž
111
Xây dựng 1 CSDL với SQL Server 
Môn học: CƠ SỞ DỮ LiỆU
 Sub Query
- Định nghĩa:
• Là câu truy vấn mà kết quả trả về là điều kiện để so sánh, gán giá 
trị cho câu truy vấn khác.
- Đặc điểm:
• Chỉ trả về 1 cột dữ liệu. Có thể là:
 1 dòng: 
Dùng các toán tử so sánh giá trị: =, , =, 
 Nhiều dòng: 
Dùng các toán tử so sánh tập hợp: 
in (nằm trong), not in (không nằm trong), >=ALL (lớn nhất).
112
Xây dựng 1 CSDL với SQL Server 
Môn học: CƠ SỞ DỮ LiỆU
21-03-2012
57
 Sub Query
- Định nghĩa:
• Là câu truy vấn mà kết quả trả về là điều kiện để so sánh, gán giá 
trị cho câu truy vấn khác.
- Đặc điểm:
• Chỉ trả về 1 cột dữ liệu. Có thể là:
 1 dòng: 
Dùng các toán tử so sánh giá trị: =, , =, 
 Nhiều dòng: 
Dùng các toán tử so sánh tập hợp: 
in (nằm trong), not in (không nằm trong), >=ALL (lớn nhất).
113
Xây dựng 1 CSDL với SQL Server 
Môn học: CƠ SỞ DỮ LiỆU
 Cập nhật dữ liệu bảng
- Cập nhật dữ liệu trên một bảng:
Cú pháp: 
update Tên_bảng
set Tên_cột = giá_trị_hoặc_biểu_thức
[where điều_kiện_cập_nhật]
- Cập nhật dữ liệu trên một bảng, điều kiện cập nhật liên 
quan nhiều bảng:
Cú pháp: 
update Tên_Bảng
set Tên_cột = giá_trị_hoặc_biểu_thức
from ...
where điều_kiện_cập_nhật
Chú ý: Giá trị cập nhật không được dùng hàm thống kê
114
Xây dựng 1 CSDL với SQL Server 
Môn học: CƠ SỞ DỮ LiỆU
21-03-2012
58
 Xóa dữ liệu bảng
- Xóa dữ liệu trên một bảng:
Cú pháp: 
deleteTên_bảng
where điều_kiện_xóa
- Xóa dữ liệu trên một bảng,điều kiện xóa liên quan nhiều 
bảng:
Cú pháp: 
deleteTên_bảng
from ...
where điều_kiện_xóa
Chú ý: Không thể xóa dữ liệu trên bảng quan hệ 1 mà dữ liệu này đã có bên 
bảng quan hệ n (ràng buộc khóa ngoại)
115
Xây dựng 1 CSDL với SQL Server 
Môn học: CƠ SỞ DỮ LiỆU
 Tạo bảng có cấu trúc và dữ liệu từ câu truy vấn
- Cú pháp:
Select [Tên_bảng.]Tên_cột [, Ž]
Into Tên_bảng_mới
From ...
116
Xây dựng 1 CSDL với SQL Server 
Môn học: CƠ SỞ DỮ LiỆU 

File đính kèm:

  • pdfBài giảng SQL - Chương 5_Ngôn ngữ SQL.pdf
Tài liệu liên quan