2.修改课程表主键的名字,改为PK_CNO。 3.给成绩表添加联合主键(sno,cno),主键名字为PK_SC。 4.删除课程表中课程名称的唯一约束。
时间: 2024-10-21 22:11:01 浏览: 31
MySQL45道练习题-删掉了成绩表主键.docx
2. 修改课程表主键的名字,从默认的`Cno`改为`PK_CNO`,可以使用以下SQL语句:
```sql
ALTER TABLE Course
MODIFY COLUMN Cno NVARCHAR(10) NOT NULL,
ADD CONSTRAINT PK_CNO PRIMARY KEY (Cno);
```
这条命令先更改了列名为`Cno`,接着添加了一个新的主键约束,并将其命名为`PK_CNO`,该约束自动应用到`Cno`列上。
3. 给成绩表`Score`添加联合主键(`sno`, `Cno`),并且命名为`PK_SC`,则可以这样操作:
```sql
ALTER TABLE Score
ADD CONSTRAINT PK_SC PRIMARY KEY (sno, Cno);
```
这里直接创建了一个名为`PK_SC`的新复合主键,由`sno`和`Cno`两个字段组成。
4. 要删除课程表`Course`中的`Cname`字段的唯一约束,如果是基于`Oracle`数据库,因为`Cname`不是主键,所以无法直接删除唯一约束,只能通过创建另一个非唯一索引来替代,如果允许有重复的课程名称:
```sql
CREATE UNIQUE INDEX IX_Course_Name ON Course (Cname);
```
但这通常不是最佳实践,因为主键应该保证唯一性。如果需要删除,可能需要根据具体环境和需求调整设计。在其他一些数据库系统(如MySQL)中,可以直接删除已有的唯一约束,但这里不做详细示例,因为这不是常规操作。
阅读全文