ĐỀ: Tạo một cơ sở dữ liệu quản lý đơn đặt hàng
Lưu ý* : code chạy tốt trên sqlsever 2012, các phiên bản khác sẽ không tương thích ở 1 số dòng lệnh, nếu chưa có sqlsever 2012 thì down ở đây
Tạo 1 query và dán đoạn code sau vào chạy
Lưu ý* : code chạy tốt trên sqlsever 2012, các phiên bản khác sẽ không tương thích ở 1 số dòng lệnh, nếu chưa có sqlsever 2012 thì down ở đây
Tạo 1 query và dán đoạn code sau vào chạy
- Code:
--sql
CREATE DATABASE QLDDH
GO --kết thúc mội khối
USE QLDDH --sử dụng cơ sở dữ liệu QLDDH nếu bạn có nhiều CSDL
GO
CREATE TABLE HangHoa --tạo bảng HangHoa
(
MaHH char(5),
TenHH nvarchar(50),
DVT nvarchar(20),
SLCon SMALLINT,
DonGiaHH int,
CONSTRAINT pk_HH PRIMARY KEY(MaHH) --khoá chính cho bảng HangHoa là MaHH
)
GO
CREATE TABLE DonDatHang
(
MaDat char(5),
NgayDat smalldatetime,
MaKH char(5),
Constraint pk_DDH Primary Key(MaDat)
)
GO
CREATE TABLE ChiTietDatHang
(
MaDat char(5),
MaHH char(5),
SLDat smallint,
Constraint pk_CTDH Primary Key(MaDat,MaHH)
)
GO
CREATE TABLE KhachHang
(
MaKH char(5),
TenKH nvarchar(50),
DiaChi nvarchar(50),
DienThoai char(20),
CONSTRAINT pk_KH PRIMARY KEY(MaKH)
)
GO
CREATE TABLE PhieuGiaoHang
(
MaGiao char(5),
NgayGiao smalldatetime,
MaDat char(5),
CONSTRAINT pk_PGH PRIMARY KEY(MaGiao)
)
GO
CREATE TABLE ChiTietGiaoHang
(
MaGiao char(5),
MaHH char(5),
SLGiao int,
DonGiaGiao int,
CONSTRAINT pk_CTGH PRIMARY KEY(MaGiao,MaHH)
)
GO
CREATE TABLE LichSuGia
(
MaHH char(5),
NgayHL smalldatetime,
DonGia FLOAT,
CONSTRAINT pk_LSG PRIMARY KEY(MaHH,NgayHL)
)
GO
ALTER TABLE ChiTietDatHang ADD Constraint fk_CTDH_MaDat Foreign Key(MaDat) references DonDatHang(MaDat),
Constraint fk_CTDH_MaHH Foreign Key(MaHH) references HangHoa(MaHH) on update cascade on delete cascade
GO --tạo khoá phụ
ALTER TABLE ChiTietGiaoHang ADD CONSTRAINT fk_CTGH_MaGiao FOREIGN KEY(MaGiao) REFERENCES PhieuGiaoHang(MaGiao) on UPDATE CASCADE on DELETE CASCADE,
CONSTRAINT fk_CTGH_MaHH FOREIGN key(MaHH) REFERENCES HangHoa(MaHH) on UPDATE CASCADE on DELETE CASCADE
GO
alter TABLE LichSuGia ADD CONSTRAINT fk_LSG_MaHH FOREIGN key(MaHH) REFERENCES HangHoa(MaHH) ON UPDATE CASCADE ON DELETE CASCADE
GO
ALTER TABLE HangHoa add CONSTRAINT UC_TenHH UNIQUE (TenHH),
CONSTRAINT kt_SL CHECK (SLCon >= 0) --kiểm tra trường SLCon phải >=0 thì mới nhập được, ngược lại báo lỗi
GO
ALTER TABLE DonDatHang ADD CONSTRAINT df_DDH DEFAULT GETDATE() FOR NgayDat --mặc định trường ngày giờ là ngày giờ hiện tại
GO
ALTER TABLE KhachHang ADD CONSTRAINT df_dc DEFAULT N'Đà Nẵng' FOR DiaChi
GO
ALTER TABLE DonDatHang
add constraint fk_ddh foreign key(MaKH) references KhachHang(MaKH) on update cascade on delete cascade
GO
INSERT into dbo.HangHoa
values ('BU', N'Bàn ủi Philip', N'Cái', 60, 350000),
('CD', N'Nồi cơm điện sharp', N'Cái',100,700000),
('DM', N'Đầu máy sharp', N'Cái',75,1200000),
('MG', N'Máy giặc SanYo', N'Cái',10,4700000),
('MQ', N'Máy quạt asia', N'Cái',40,400000),
('TL', N'Tủ Lạnh Hitachi', N'Cái',50,5500000),
('TV', N'TiVi JVC 14WS', N'Cái',33,7800000)
GO
INSERT into dbo.KhachHang
values ('KH001',N'Cửa Hàng Phúc Lộc',N'Đà Nẵng',N'0511.3246125'),
('KH002',N'Cửa hàng Hoàng Gia',N'Quảng Nam',N'0510.6333444'),
('KH003',N'Nguyễn Lan Anh',N'Huế',N'0988.148248'),
('KH004',N'Công ty TNHH An Phước',N'Đà Nẵng',N'0511.6987789'),
('KH005',N'Huỳnh Ngọc Trung',N'Quảng Nam',N'0908.888555'),
('KH006',N'Cửa hàng Trung Tín',N'Đà Nẵng','Null')
GO
SET dateformat dmy --định dạng lại ngày giờ theo định dạng ngày-tháng-năm
GO
INSERT INTO LichSuGia --nhập dữ liệu vào bảng LichSuGia
VALUES ('BU','01-01-2011','300000'),
('BU','01-01-2012','350000'),
('CD','06-01-2011','650000'),
('CD','01-01-2012','700000'),
('DM','01-01-2011','1000000'),
('DM','01-01-2012','1200000'),
('MG','01-01-2011','4700000'),
('MQ','06-01-2011','400000'),
('TL','01-01-2011','5000000'),
('TL','01-01-2012','5500000'),
('TV','01-01-2013','5500000'),
('TV','01-01-2014','7800000')
GO
INSERT INTO DonDatHang
VALUES ('DH01','02-02-2011','KH001'),
('DH02','12-02-2011','KH003'),
('DH03','22-01-2012','KH003'),
('DH04','22-03-2012','KH002'),
('DH05','14-04-2012','KH005'),
('DH06','05-08-2012','KH003'),
('DH07','25-11-2012','KH005')
GO
INSERT INTO PhieuGiaoHang
VALUES ('GH01','02-02-2011','DH01'),
('GH02','15-02-2011','DH02'),
('GH03','23-01-2012','DH03'),
('GH05','20-04-2012','DH05'),
('GH06','05-08-2012','DH06')
GO
INSERT INTO ChiTietDatHang
VALUES ('DH01','BU','15'),
('DH01','DM','10'),
('DH01','TL','4'),
('DH02','BU','20'),
('DH02','TL','3'),
('DH03','MG','8'),
('DH04','TL','5'),
('DH04','TV','5'),
('DH05','BU','12'),
('DH05','DM','15'),
('DH05','MG','6'),
('DH05','TL','5'),
('DH06','BU','30'),
('DH06','MG','7')
GO
INSERT INTO ChiTietGiaoHang
VALUES ('GH01','BU','15','300000'),
('GH01','DM','10','1000000'),
('GH01','TL','4','5000000'),
('GH02','BU','10','300000'),
('GH03','MG','8','4700000'),
('GH05','BU','12','350000'),
('GH05','DM','15','1200000'),
('GH05','MG','5','4700000'),
('GH05','TL','5','5500000'),
('GH06','BU','20','350000'),
('GH06','MG','7','4700000')
GO
QTV
#news #SQL #source-code