Tải bản đầy đủ (.pdf) (5 trang)

Bài giảng Cơ sở dữ liệu SQL - Phần 1: Thiết kế CSDL và Truy vấn

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (134.84 KB, 5 trang )

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à khố chính của một Table

Khố 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 Hồ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



×