此題應該是建表和插入數據的經典題目
1. 先建立表(Sno代表學號,sname代表姓名,ssex代表性別,sage代表年齡,sdept代表所在系,cno代表課號,cname代表課程名稱,cpno代表先修課號,ccredit代表學分,grade代表成績)
createtablestudent
(snochar(5),
snamevarchar(10)notnull,
ssexchar(2),
sagesmallintconstraintDF_student_sagedefault(20),
sdeptvarchar(20),
constraintPK_student_snoprimarykey(sno),
constraintCK_student_sagecheck(sage>0));
createtablecourse
(cnochar(2),
cnamevarchar(20)notnullconstraintUQ_course_cnameunique,
cpnochar(2),
ccreditsmallintconstraintDF_course_ccreditdefault(2),
constraintPK_course_cnoprimarykey(cno),
constraintCK_course_ccreditcheck(ccredit>0),
constraintFK_course_cpnoforeignkey(cpno)referencescourse(cno));
createtablesc
(snochar(5),
cnochar(2),
gradeint,
constraintPK_sc_sno_cnoprimarykey(sno,cno),
constraintFK_sc_snoforeignkey(sno)referencesstudent(sno),
constraintFK_sc_cnoforeignkey(cno)referencescourse(cno),
constraintCK_sc_cnocheck(grade>0));
2. 將記錄插入到表中
insertintostudent(sno,sname,ssex,sage,sdept)values('95001','李勇','男',20,'CS');
insertintostudent(sno,sname,ssex,sage,sdept)values('95002','劉晨','女',19,'IS');
insertintostudent(sno,sname,ssex,sage,sdept)values('95003','王敏','女',18,'MA');
只要會建表語句和插入語句即可
CREATETABLE<表名>
(<列名><數據類型>[notnull][[constraint約束名]default(預設值)][[constraint約束名]unique]
[,其他列的定義]…
[,[constraint約束名]primarykey(列名[,列名]…)]
[,[constraint約束名]foreignkey(列名[,列名]…)references表名(列名[,列名]…)]
[,[constraint約束名]check(條件)]);
INSERT[INTO]<表名>[(<列名>[,<列名>…])]VALUES(<表達式>[,<表達式>…]);
② 資料庫中 表course 的先行課程號cpno的取值必須來源於課程編號cno的取值 要怎麼做在線
Foreign key (cpno) reference kc(cno)
③ 資料庫問題為什麼提示:第 7 行: 'Cpno' 附近有語法錯誤。
CREATE TABLE Course
(
Cno CHAR(4) PRIMARY KEY,
Cname CHAR(40),
Cpno CHAR(4) FOREIGN KEY REFERENCES Course(Cno),
Ccredit SMALLINT
);
④ 資料庫系統概論
不知道你表怎麼建的,目測是你數據有問題(第四個欄位在這題里沒什麼用,就沒寫,另外:你第一個圖的語句也不對,會多出來兩個null關聯起來的情況,所以最後我改了一下)
createtablecourse
(cnoint,
cnamevarchar(50),
cpnoint)
insertintocoursevalues(1,'資料庫',5)
insertintocoursevalues(2,'數學',null)
insertintocoursevalues(3,'信息系統',1)
insertintocoursevalues(4,'操作系統',6)
insertintocoursevalues(5,'數據結構',7)
insertintocoursevalues(6,'數據處理',null)
insertintocoursevalues(7,'PASCA語言',6)
selectfirst.cno,second.cpnofromcoursefirst,coursesecondwherefirst.cpno=second.cnoandsecond.cpnoisnotnull
最好把你的插入數據語句發出來,才能看出來問題,我這個得執行結果:
⑤ 關於資料庫外碼問題
這是規范書寫,沒有為什麼,列名需要加括弧。 前面的cpno是個列名,雖然他忽略了表名。
⑥ Cpno在資料庫中表示什麼
課程號(Cno) 課程名(Cname) 先行課(Cpno) 學分(Ccredit)
⑦ 資料庫代碼解釋
cpno 和cno都是course表中的欄位
⑧ SQL Server 2000 初學者簡單問題 各位大大幫忙解決一下 幫我運行一下,為啥16行中Cpno出錯
foreign key Cpno REFERENCES Course(Cno)
改成
foreign key (Cpno) REFERENCES Course(Cpno)