Bài giảng Cơ sở Dữ liệu SQL – Phần 1 – Thiết kế CSDL và Truy vấn * Kết nối SQL Server
Chạy chương trình HeidiSQL và nối kết vào SQL Server:
IT-1: Tên máy
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, "TenKH" NVARCHAR(30) NULL DEFAULT NULL, "DiaChi" NVARCHAR(255) NULL DEFAULT NULL, "DThoai" NVARCHAR(255) NULL DEFAULT NULL, PRIMARY KEY ("MaKH") ) ; Biên soạn: Th.s Nguyễn Anh Việt Trang 1
Bài giảng Cơ sở Dữ liệu SQL – Phần 1 – Thiết kế CSDL và Truy vấn * 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
Biên soạn: Th.s Nguyễn Anh Việt Trang 2
Bài giảng Cơ sở Dữ liệu SQL – Phần 1 – Thiết kế CSDL và Truy vấn * Nhập dữ liệu cho Table: MatHang
* Nhập dữ liệu cho Table: DonDH
* Nhập dữ liệu cho Table: ChiTietDH
Biên soạn: Th.s Nguyễn Anh Việt Trang 3
Bài giảng Cơ sở Dữ liệu SQL – Phần 1 – Thiết kế CSDL và Truy vấn * 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
Khoá ngoại Foreign key
* 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'
Biên soạn: Th.s Nguyễn Anh Việt Trang 4
Bài giảng Cơ sở Dữ liệu SQL – Phần 1 – Thiết kế CSDL và Truy vấn Tuy 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
Biên soạn: Th.s Nguyễn Anh Việt Trang 5