Em vừa học được vài buổi nên chưa rõ ràng lắm. Nhờ mọi người giải đáp giúp em , Em cảm ơn ạ.
Bài code này , em đã điền dữ liệu cho table GIAOVIEN rồi , nhưng sao khi điền cho các table khác, lại bị lỗi xung đột ạ, em chưa hiểu cái này lắm.
Lần đầu tiên e vào hỏi ở đây, chưa biết cách up code, mong anh chị chỉ dạy ạ,
Mã:
USE MASTER
GO
CREATE DATABASE QLDT
GO
USE QLDT
GO
-- TAO BANG --
CREATE TABLE THAMGIADT
(
MAGV NVARCHAR (50),
MADT NVARCHAR (50),
STT INT,
PHUCAP FLOAT,
KETQUA NVARCHAR (50)
CONSTRAINT PK_THAMGIADT PRIMARY KEY (MAGV, MADT, STT ),
)
GO
CREATE TABLE KHOA
(
MAKHOA NVARCHAR (50),
TENKHOA NVARCHAR (50),
NAMTL INT,
PHONG NVARCHAR (50),
DIENTHOAI INT,
TRUONGKHOA NVARCHAR (50),
NGAYNHANCHUC DATETIME,
CONSTRAINT PK_KHOA PRIMARY KEY (MAKHOA),
)
GO
CREATE TABLE BOMON
(
MABM NVARCHAR (50),
TENBM NVARCHAR (50),
PHONG NVARCHAR (50),
DIENTHOAI INT,
TRUONGBOMON NVARCHAR (50),
MAKHOA NVARCHAR (50),
NGAYNHANCHUC DATETIME
CONSTRAINT PK_BOMON PRIMARY KEY (MABM),
)
GO
-- THAY ĐỔI KIỂU DỮ LIỆUCỘT--
-- ALTER TABLE TÊN BẢNG
-- ALTER COLUMN TÊN CỘT KIỂU DỮ LIỆU
CREATE TABLE CONGVIEC
(
MADT NVARCHAR (50),
SOTT INT,
TENCV NVARCHAR (50),
NGAYBD DATETIME,
NGAYKT DATETIME
CONSTRAINT PK_CONGVIEC PRIMARY KEY (MADT, SOTT),
)
GO
CREATE TABLE GIAOVIEN
(
MAGV NVARCHAR (50),
HOTEN NVARCHAR (50),
LUONG FLOAT,
PHAI NVARCHAR (50),
NGSINH DATETIME,
DIACHI NVARCHAR (50),
GVQLCM NVARCHAR (50),
MABM NVARCHAR (50)
CONSTRAINT PK_GIAOVIEN PRIMARY KEY (MAGV),
)
GO
CREATE TABLE GV_DT
(
MAGV NVARCHAR (50),
DIENTHOAI INT
CONSTRAINT PK_GV_DT PRIMARY KEY (MAGV, DIENTHOAI ),
)
GO
CREATE TABLE DETAI
(
MADT NVARCHAR (50),
TENDT NVARCHAR (50),
CAPQL NVARCHAR (50),
KINHPHI FLOAT,
NGAYBD DATETIME,
NGAYKT DATETIME,
MACD NVARCHAR (50),
GVCNDT NVARCHAR (50)
CONSTRAINT PK_DETAI PRIMARY KEY ( MADT ),
)
GO
CREATE TABLE CHUDE
(
MACD NVARCHAR (50),
TENCD NVARCHAR (50)
CONSTRAINT PK_CHUDE PRIMARY KEY (MACD ),
)
GO
CREATE TABLE NGUOITHAN
(
MAGV NVARCHAR (50),
TEN NVARCHAR (50),
NGSINH DATETIME,
PHAI NVARCHAR (50)
CONSTRAINT PK_NGUOITHAN PRIMARY KEY (MAGV, TEN ),
)
GO
--------------- TAO KHOA NGOAI------------
-- Tao khoa ngoai tham chieu den bang GIAOVIEN --
ALTER TABLE GV_DT
ADD CONSTRAINT FK_GV_GV_DT FOREIGN KEY ( MAGV ) REFERENCES GIAOVIEN (MAGV);
GO
-- xóa khóa ngoại
--ALTER TABLE GV_DT
--DROP CONSTRAINT FK_MAGV
--GO
ALTER TABLE NGUOITHAN
ADD CONSTRAINT FK_GV_NGUOITHAN FOREIGN KEY (MAGV ) REFERENCES GIAOVIEN (MAGV);
GO
ALTER TABLE THAMGIADT
ADD CONSTRAINT FK_GV_THAMGIADT FOREIGN KEY (MAGV ) REFERENCES GIAOVIEN (MAGV );
GO
ALTER TABLE GIAOVIEN
ADD CONSTRAINT FK_GV_GIAOVIEN FOREIGN KEY ( GVQLCM ) REFERENCES GIAOVIEN (MAGV);
GO
ALTER TABLE BOMON
ADD CONSTRAINT FK_GV_BOMON FOREIGN KEY (TRUONGBOMON) REFERENCES GIAOVIEN (MAGV);
GO
ALTER TABLE KHOA
ADD CONSTRAINT FK_GV_KHOA FOREIGN KEY (TRUONGKHOA ) REFERENCES GIAOVIEN (MAGV);
GO
ALTER TABLE DETAI
ADD CONSTRAINT FK_GV_DETAI FOREIGN KEY ( GVCNDT ) REFERENCES GIAOVIEN (MAGV );
GO
-- Tao khoa ngoai tham chieu den bang BOMON --
ALTER TABLE GIAOVIEN
ADD CONSTRAINT FK_BM_GIAOVIEN FOREIGN KEY ( MABM ) REFERENCES BOMON ( MABM);
GO
-- tao khoa ngoai tham chieu den bang KHOA --
ALTER TABLE BOMON
ADD CONSTRAINT FK_K_BOMON FOREIGN KEY ( MAKHOA ) REFERENCES KHOA ( MAKHOA );
GO
-- Tao khoa ngoai tham chieu den bang CONGVIEC
ALTER TABLE THAMGIADT
ADD CONSTRAINT FK_CV_THAMGIADT FOREIGN KEY (MADT, STT) REFERENCES CONGVIEC (MADT,SOTT );
GO
-- Tao khoa ngoai tham chieu den bang DETAI --
ALTER TABLE CONGVIEC
ADD CONSTRAINT FK_DT_CONGVIEC FOREIGN KEY ( MADT ) REFERENCES DETAI ( MADT);
GO
-- Tao khoa ngoai tham chieu den bang CHUDE --
ALTER TABLE DETAI
ADD CONSTRAINT FK_CD_DETAI FOREIGN KEY (MACD ) REFERENCES CHUDE (MACD );
GO
-----------------
-- Tao rang buoc mien gia tri --
ALTER TABLE GIAOVIEN
ADD CONSTRAINT CK_GV_PHAI CHECK ( PHAI IN (N'Nam', N'Nữ'));
GO
ALTER TABLE NGUOITHAN
ADD CONSTRAINT CK_NGUOITHAN_PHAI CHECK ( PHAI IN (N'Nam', N'Nữ' ));
GO
-- KIEM TRA DR --
-- NHẬP DỮ LIỆU CHO BẢNG--
-- Cái nào đứng 1 mình thì nhập chiếu, cái nào có tham chiếu thì nhập sau --
-- Khi nhập dữ liệu, khóa ngoại mang giá trị NULL ( điền vô sẽ lỗi ).
-- Nhập dữ liệu cho bảng CHUDE --
INSERT INTO CHUDE ( MACD, TENCD)
VALUES (N'NCPT', N'Quản lí giáo dục');
GO
-- Nhập dữ liệu cho bảng GIAOVIEN --
INSERT INTO GIAOVIEN ( MAGV, HOTEN, LUONG, PHAI, NGSINH, DIACHI, GVQLCM, MABM )
VALUES ( '00025', N'Nguyễn Văn A', 2500.0, N'NAM', '2000/05/20', N'DAI LANH',NULL ,NULL );
GO
INSERT INTO GIAOVIEN (MAGV, HOTEN, LUONG, PHAI, NGSINH, DIACHI, GVQLCM, MABM)
VALUES ('00052', N'Nguyễn Văn B' , 20.5 , N'Nam', '2004-04-30' , N'Đại lộc' , NULL, NULL );
GO
INSERT INTO GIAOVIEN (MAGV, HOTEN, LUONG, PHAI, NGSINH, DIACHI, GVQLCM, MABM)
VALUES ('20000', N'HÀ', 1000.0 , N'NỮ' , '2004-4-24', N'ĐẠI QUANG', NULL , NULL);
GO
INSERT INTO GIAOVIEN (MAGV, HOTEN, LUONG, PHAI, NGSINH, DIACHI, GVQLCM, MABM)
VALUES ('2019', N'HÀ', 1000.0 , N'NỮ' , '2004-4-24', N'ĐẠI QUANG', NULL , NULL);
GO
INSERT INTO GIAOVIEN (MAGV, HOTEN, LUONG, PHAI, NGSINH, DIACHI, GVQLCM, MABM)
VALUES ('2020', N'HÀ', 1000.0 , N'NỮ' , '2004-4-24', N'ĐẠI QUANG', NULL , NULL);
GO
SELECT * FROM DETAI
--ERR Nhập dữ liệu cho bảng GV_DT --
INSERT INTO GV_DT (MAGV, DIENTHOAI)
VALUES ('20002' , 0964444444);
GO
INSERT INTO GV_DT (MAGV, DIENTHOAI)
VALUES ( '2022', '374939');
GO
-- Err Nhập dữ liệu cho bảng NGUOITHAN --
INSERT INTO NGUOITHAN (MAGV, TEN, NGSINH, PHAI)
VALUES ( '0012', N'LÊ VĂN ', '2019-08-29', N'NAM');
GO
-- ERR Nhập dữ liệu cho bảng KHOA --
INSERT INTO KHOA ( MAKHOA, TENKHOA, NAMTL, PHONG, DIENTHOAI, TRUONGKHOA, NGAYNHANCHUC )
VALUES (N'AB', N'TIN HỌC', 1960, N'ABE', 0938333333, N'D333', '2018-03-22');
GO
-- ERR Nhập dữ liệu cho bảng BOMON --
INSERT INTO BOMON (MABM,TENBM, PHONG, DIENTHOAI, TRUONGBOMON, MAKHOA, NGAYNHANCHUC)
VALUES (N'CNSH', N'Công nghệ sinh học', N'B3404', '12345676', NULL , N'ABCD', '2020-02-20' );
GO
-- Nhập dữ liệu cho bảng DETAI --
INSERT INTO DETAI (MADT, TENDT, CAPQL, KINHPHI, NGAYBD, NGAYKT, MACD, GVCNDT)
VALUES (N'1234567', N'HT quản lí', N' ĐHQG', 10., '2007-10-20' , ' 2008-10-20', NULL, NULL);
GO
-- Err Nhập dữ liệu cho bảng CONGVIEC --
INSERT INTO CONGVIEC ( MADT, SOTT, TENCV, NGAYBD, NGAYKT )
VALUES ( N'1340', 1 , N' Nghiên cứu khoa học', '2007-04-23', '2008-04-23');
GO
-- ERR Nhập dữ liệu cho bảng THAMGIADT --
INSERT INTO THAMGIADT ( MAGV, MADT, STT, PHUCAP, KETQUA)
VALUES ('100', N'200', 5 , 245.567 , NULL);
GO