sql 问题,先谢谢了

来源:百度知道 编辑:UC知道 时间:2024/05/16 00:58:07
create table Course
(
Cno char(4) primary key,
Cpno char(4),
Ccredit smallint,
foreign key Cpno references Course(Cno)
)服务器: 消息 170,级别 15,状态 1,行 6
第 6 行: 'Cpno' 附近有语法错误。
运行时提示错误信息

没有写外键名
constraint 外键名 foreign key (Cpno) references Course(Cno)

create table Course
(
Cno char(4) primary key,
Cpno char(4) references Course(Cno) ,
Ccredit smallint,
)

虽然数据库范式建议不要关联自身,但某些情况下建立自关联的表能明显提高效率,请参阅Microsoft的NorthWind数据库中Emprloyees表。

CREATE TABLE Employees(
EmployeeID int IDENTITY(1,1) NOT NULL PRIMARY KEY,
Title nvarchar(30) NULL,
TitleOfCourtesy nvarchar(25) NULL,
ReportsTo int NULL REFERENCES Employees(EmployeeID))

“雇员向头衔为部长的雇员报告,部长向头衔为经理的雇员报告”这样的业务规则在此显得十分自然。

这也是GoF模式中Composite模式的运用。

为了养成良好的风格,建表语句与约束语句的确应该分开写。但语句不是关键,能看懂就行,除了测试,设计数据库谁会一句句去写建库的SQL(动辄数百上千行),用建模工具即可,出来的SQL既规范又整洁,修改起来还方便,何乐而不为呢?

另外,除狂热的DBA外,很少有人愿意把这样的逻辑在数据层来实现,设计人员宁愿在商务逻辑层多写很多代码来实现它,这样让他们的类看起来相对比较完整,工作起来更符合逻辑。

啥意思?自己引用自己做外键?

强烈建议 建表语句与约束语句分开写 上面的同志都答对了
建议楼主 多看看语法 这个问题太没意思了