Bài giảng Cơ sở Dữ liệu SQL: Thiết kế CSDL và Truy vấn do ThS. Nguyễn Anh Việt biên soạn nhằm giúp các bạn sinh viên biết cách kết nối SQL Server, tạo được cơ sở dữ liệu trên SQL Server khi mới bước đầu làm quen với môn cơ sở dữ liệu. Mời các bạn cùng tham khảo.
Trang 1* Kết nối SQL Server
Chạy chương trình HeidiSQL và nối kết vào SQL Server:
Nếu không kết nối ñược thì cần cài Visual Studio 2008 (máy chạy Windows XP) hay Visual Studio
2010 (máy chạy Windows 7 trở lên)
* Tạo CSDL: Database QLHH
Kích chọn phần thực hiện Truy vấn SQL rồi nhập lệnh
CREATE DATABASE "QLHH";
Bấm phím [F9] ñể thực thi hoặc nút mũi tên xanh giống như hình trên
USE "QLHH";
Thực thi xong chọn nút Refresh ([F5]) ñề quan sát kết quả Bấm chọn vào Database QLHH
* Tạo Table: KhachHang
CREATE TABLE "KhachHang" (
"MaKH" NVARCHAR(4) NOT NULL,
IT-1: Tên máy
Trang 2Biên soạn: Th.s Nguyễn Anh Việt Trang 2
* Tạo Table: MatHang
CREATE TABLE "MatHang" (
"MaMH" NVARCHAR(4) NOT NULL,
"TenMH" NVARCHAR(255) NOT NULL,
"DVT" NVARCHAR(255) NULL DEFAULT NULL,
"DonGia" INT NULL DEFAULT NULL,
PRIMARY KEY ("MaMH")
)
;
* Tạo Table: DonDH
CREATE TABLE DonDH (
"MaDH" NVARCHAR(4) NOT NULL,
"NgayDH" DATETIME NULL DEFAULT NULL,
"NgayGH" DATETIME NULL DEFAULT NULL,
"MaKH" NVARCHAR(255) NULL DEFAULT NULL,
PRIMARY KEY ("MaDH")
)
;
* Tạo Table: ChiTietDH
CREATE TABLE "ChiTietDH" (
"MaDH" NVARCHAR(4) NOT NULL,
"MaMH" NVARCHAR(4) NOT NULL,
"SoLuong" INT NULL DEFAULT NULL
)
;
* Nhập dữ liệu cho Table: KhachHang
Trang 3* Nhập dữ liệu cho Table: MatHang
* Nhập dữ liệu cho Table: DonDH
* Nhập dữ liệu cho Table: ChiTietDH
Trang 4Biên soạn: Th.s Nguyễn Anh Việt Trang 4
* Khoá ngoại
Là các cột ở một Table khác nhưng có liên kết dữ liệu ñến một cột là khoá chính của một Table
* Hiển thị tất cả các Đơn ñặt hàng
SELECT DonDH MaDH, DonDH MaKH, KhachHang TenKH, MatHang TenMH,
MatHang DVT, MatHang DonGia, ChiTietDH SoLuong, [DonGia]*[SoLuong] AS
[Thành tiền]
FROM MatHang INNER JOIN ( KhachHang INNER JOIN ( DonDH INNER JOIN ChiTietDH
ON DonDH MaDH = ChiTietDH MaDH) ON KhachHang MaKH = DonDH MaKH) ON
MatHang MaMH = ChiTietDH MaMH;
Muốn giới hạn chỉ hiển thị các ñơn ñặt hàng của công ty Hoàng Hôn, thêm vào ñiều kiện WHERE
SELECT DonDH MaDH, DonDH MaKH, KhachHang TenKH, MatHang TenMH,
MatHang DVT, MatHang DonGia, ChiTietDH SoLuong, [DonGia]*[SoLuong] AS
[Thành tiền]
FROM MatHang INNER JOIN ( KhachHang INNER JOIN ( DonDH INNER JOIN ChiTietDH
ON DonDH MaDH = ChiTietDH MaDH) ON KhachHang MaKH = DonDH MaKH) ON
MatHang MaMH = ChiTietDH MaMH
Where KhachHang TenKH = 'Hoàng Hôn'
Khoá ngoại
Foreign key
Trang 5Tuy nhiên, ñể tìm các ñơn ñặt hàng của Biti’s thì khó hơn một chút:
SELECT DonDH MaDH, DonDH MaKH, KhachHang TenKH, MatHang TenMH,
MatHang DVT, MatHang DonGia, ChiTietDH SoLuong, [DonGia]*[SoLuong] AS
[Thành tiền]
FROM MatHang INNER JOIN ( KhachHang INNER JOIN ( DonDH INNER JOIN ChiTietDH
ON DonDH MaDH = ChiTietDH MaDH) ON KhachHang MaKH = DonDH MaKH) ON
MatHang MaMH = ChiTietDH MaMH
Where KhachHang TenKH = 'Biti' + Char(39) + 's'
* Hiển thị các Đơn ñặt hàng có Ngày giao hàng trong thời ñiểm từ 1-3-2004 ñến 30-4-2004