sql,如何用sql语句对一个已经编辑好的表在设置主码和外码?

比如这个:createtableCourse(Cnochar(4),Cnamechar(40),Cpnochar(4),Ccreditsmallint);如何用sql语句... 比如这个:create table Course
(Cno char(4),
Cname char(40),
Cpno char(4),
Ccredit smallint
);
如何用sql语句将其中的两个列设置为主码和外码?并设置Ccredit的属性的取值范围为0到10?
展开
 我来答
dong_1984dd
推荐于2017-09-15 · TA获得超过1.1万个赞
知道小有建树答主
回答量:1070
采纳率:100%
帮助的人:228万
展开全部
  1. sql中的主码和外码,属于索引,SQL索引有两种,聚集索引和非聚集索引,索引主要目的是提高了SQL Server系统的性能,加快数据的查询速度与减少系统的响应时间 

  2. 创建索引的语法:

    CREATE [UNIQUE][CLUSTERED | NONCLUSTERED]  INDEX  index_name  

    ON {table_name | view_name} [WITH [index_property [,....n]]

    说明:

    UNIQUE: 建立唯一索引。

    CLUSTERED: 建立聚集索引。

    NONCLUSTERED: 建立非聚集索引。

    Index_property: 索引属性。

     UNIQUE索引既可以采用聚集索引结构,也可以采用非聚集索引的结构,如果不指明采用的索引结构,则SQL Server系统默认为采用非聚集索引结构。

  3. 删除索引语法:

    DROP INDEX table_name.index_name[,table_name.index_name]

    说明:table_name: 索引所在的表名称。

    index_name : 要删除的索引名称。

  4. 修改索引的语法:

  5. ALTER INDEX命令在其用来做什么方面多少有些欺骗性。截止到现在,ALTER命令总是与修改对象的定义有关。例如ALTER表以添加或禁用约束和列。ALTER INDEX是不同的-该命令与维护有关,而与结构完全不相干。如果需修改索引的组成,那么只能DROP然后CREATE索引,或者用DROP_EXISTING=ON选项CREATE并使用索引。

  6. ALTER INDEX {<name of index> | ALL}
    ON<table or view name>
    { REBUILD
    [[ WITH (
      [PAD_INDEX = {ON | OFF}]
        | [[,] FILLFACTOR = <fillfactor>
        | [[,] SORT_IN_TEMPDB = { ON | OFF }]
        | [[,] IGNORE_DUP_KEY = { ON | OFF }]
        | [[,] STATISTICS_NORECOMPUTE = { ON | OFF }]
        | [[,] ONLINE = { ON| OFF }]
        | [[,] ALLOW_ROW_LOCKS = { ON | OFF }]
        | [[,] ALLOW_PAGE_LOCKS = { ON | OFF }]
        | [[,] MAXDOP = <max degree of parallelism>
      )]
      |[ PARTITION = <partition number>
        [ WITH (< partition rebuild index option>
        [,...N])]]]
        | DISABLE
        | REORGANIZE
        [ PARTITION = <partition number> ]
        [ WITH (LOB_COMPACTION = { ON | OFF })]
        | SET ([ ALLOW_ROW_LOCKS = { ON | OFF} ]
        | [[,] ALLOW_PAGE_LOCKS = { ON | OFF } ]
        | [[,] IGNORE_DUP_KEY = { ON | OFF } ]
        | [[,] STATISTICS_NORECOMPUTE = { ON | OFF }]
      )
    }[;]

挥着翅膀de爷
推荐于2017-09-12 · TA获得超过222个赞
知道答主
回答量:115
采纳率:100%
帮助的人:38.9万
展开全部
--修改主键 ALTER TABLE tablename --修改表
ADD
CONSTRAINT tb_PRIMARY
PRIMARY KEY CLUSTERED (列名) /*将你要设置为主键约束的列*/

--修改约束ALTER TABLE 销售表 --修改表
ADD CONSTRAINT ck_sl --创建检查约束
CHECK (数量 >= 1 and 数量 <= 10000) --添加约束条件

--修改外键alter table 表名
add constraint 外键名称 foreign key (字段)
references 关系表名 (关系表内字段)
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
qizhuganji
2009-05-27 · TA获得超过375个赞
知道小有建树答主
回答量:166
采纳率:0%
帮助的人:139万
展开全部
主键你可以在表设计窗口选中要设置主键的列选择设置主键即可,外键你可以右键,选择关系,在里面添加即可。至于设置取值范围你可以设置一个约束。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友866da84
2009-05-27 · TA获得超过368个赞
知道小有建树答主
回答量:339
采纳率:0%
帮助的人:0
展开全部
alter table 表名
add constraint 主键名称 primary key (字段)
go

alter table 表名
add constraint 外键名称 foreign key (字段)
references 关系表名 (关系表内字段)
go
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lzf3211
2015-06-12 · TA获得超过238个赞
知道小有建树答主
回答量:803
采纳率:0%
帮助的人:360万
展开全部
create table table_name
colum_name datatype
[constraint constraint_name] [not] null primary key |unique
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式