PDA

View Full Version : Giúp em lỗi đoạn SQL này



học lập trình
14-09-2010, 15:11
/* Câu 1 : Tao CSDL, cac bang va cac khoa ngoai cho tren */

CREATE DATABASE BTQLSV

CREATE TABLE SINHVIEN
(
HOTEN nvarchar(30) NOT NULL,
TENSV nvarchar(10) NOT NULL,
MASV varchar(20) NOT NULL PRIMARY KEY,
NGAYSINH datetime NOT NULL,
PHAI varchar(10) NOT NULL,
MAKHOA varchar(20) NOT NULL,
CONSTRAINT KHOA_NGOAI1 FOREIGN KEY (MAKHOA) REFERENCES KHOA(MAKHOA)
)

DROP TABLE SINHVIEN

CREATE TABLE KHOA
(
MAKHOA varchar(20) NOT NULL PRIMARY KEY,
TENKHOA nvarchar(10) NOT NULL
)

CREATE TABLE MON
(
TENMH nvarchar(30) NOT NULL,
MAMH varchar(10) NOT NULL PRIMARY KEY,
SOTIET int NOT NULL
)

CREATE TABLE KETQUA
(
MASV varchar(20) NOT NULL,
MAMH varchar(10) NOT NULL,
CONSTRAINT KHOA_NGOAI2 FOREIGN KEY (MASV) References SINHVIEN(MASV),
CONSTRAINT KHOA_NGOAI3 FOREIGN KEY (MAMH) REFERENCES MON(MAMH),
LANTHI nvarchar(2) NOT NULL,
DIEM tinyint NOT NULL
)

DROP TABLE KETQUA

/* Câu 2 : xóa cac rang buoc khoa ngoai tham chieu den bang SINHVIEN va bang MONHOC */

ALTER TABLE SINHVIEN
DROP CONSTRAINT KHOA_NGOAI1

ALTER TABLE KETQUA
DROP CONSTRAINT KHOA_NGOAI2,KHOA_NGOAI3

/* Câu 3 : Xoa bang KHOA va MONHOC */

DROP TABLE KHOA,MON

/* Câu 4 : Tao lai cac bang va cac khoa ngoai da xoa o cau 2 va 3 */

CREATE TABLE KHOA
(
MAKHOA varchar(20) NOT NULL PRIMARY KEY,
TENKHOA nvarchar(10) NOT NULL
)

CREATE TABLE MON
(
TENMH nvarchar(30) NOT NULL,
MAMH varchar(10) NOT NULL PRIMARY KEY,
SOTIET int NOT NULL
)


ALTER TABLE SINHVIEN
ADD CONSTRAINT KHOA_NGOAI1 FOREIGN KEY (MAKHOA) REFERENCES KHOA(MAKHOA)

ALTER TABLE KETQUA
ADD CONSTRAINT KHOA_NGOAI2 FOREIGN KEY (MASV) REFERENCES SINHVIEN(MASV)

ALTER TABLE KETQUA
ADD CONSTRAINT KHOA_NGOAI3 FOREIGN KEY (MAMH) REFERENCES MON(MAMH)

/* Câu 5 : Nhập dữ liệu cho tất cả các bảng */

INSERT INTO SINHVIEN VALUES (N'TRẦN MINH',N'SƠN','S001','1985-05-01','Nam','CNTT')
INSERT INTO SINHVIEN VALUES (N'NGUYỄN QUỐC',N'BẢO','S002','1986-06-15','Nam','CNTT')
INSERT INTO SINHVIEN VALUES (N'PHAN ANH',N'TÙNG','S003','1983-20-12','Nam','QTKD')
INSERT INTO SINHVIEN VALUES (N'BÙI THỊ ANH',N'THU','S004','1985-02-01',N'Nữ','QTKD')
INSERT INTO SINHVIEN VALUES (N'LÊ THỊ LAN',N'ANH','S005','1987-07-03',N'Nữ','CNTT')
INSERT INTO SINHVIEN VALUES (N'NGUYỄN THANH',N'SƠN','S006','1984-11-25','Nam','DTVT')
INSERT INTO SINHVIEN VALUES (N'PHAN THỊ',N'HÀ','S007','1988-07-03',N'Nữ','CNTT')
INSERT INTO SINHVIEN VALUES (N'TRẦN THẾ',N'DUNG','S008','1985-10-21','Nam','CNTT')

SELECT * FROM SINHVIEN

- Em không hiểu nó mâu thuẫn ở chỗ nào mà không thể chèn được dữ liệu vào ai giúp đỡ em với :(

- Các anh đừng để ý đến những dòng DROP đấy là em tự tạo ra để thực hành cho biết thôi :(

[=========> Bổ sung bài viết <=========]

Em đã tự hiểu được rồi , sorry các anh nhé :D