Đăng Nhập

Vui lòng khai báo chính xác tên truy cập và mật khẩu!

Quên mật khẩu?

Đăng Ký

Bạn phải điền đầy đủ thông tin đăng ký!

  

[HQTCSDL]Bài tập mẫu về quản lí đơn đặt hàng

    Sáng lập viên

    QTV

    Bài viết Bài viết : 8

    Danh vọng Danh vọng : 7987

    Uy tín Uy tín : 5

    Huy hiệu : vip,like,top,admin,photo,music,support,event,design,iron,loki

    #1

     Wed Mar 18, 2015 11:51 pm 

    ĐỀ: 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
    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
    Bạn không có quyền trả lời bài viết