sqlserve表定义

--primary key--主码  unique--不为空 
create table student
    ( sno char(20), --sno char(20) primary key 主码不为空且唯一
      sname char(25) unique, --sname取唯一值,不能重复
      ssex char(2),
      sage int,
      sdept char(20),
      primary key(sno)
     );
    
create table course
    ( cno char(20) primary key,
      cname char(40),
      teacher char(20),
      --ccredit smallint,
      --foreign key(cpno)references course(cno)
     );
     
create table sc
    ( sno char(20),
      cno char(20),
      grade smallint,
      primary key(sno,cno),--主码
      foreign key (sno) references student(sno),--外码
      foreign key(cno) references course(cno)--外码
     )
      
--字符类型
--char--定长字符串 varchar--变长字符串    int--长整数 smallint--短整数 numeric(p,d) 有p位数字(不包括符号、小数点),小数后有d位数字
--double-- float  date--日期  time--时间

--每个基本表都属于一个模式,一个模式包含多个基本表

--修改表
--alter table《表名》(add《新列表》《数据类型》【完整性约束】 )(add《完整性约束条件》)(drop《完整性约束名》)(alter column<列名><数据类型>)

--student表添加“入学时间”列,数据类型为日期型
alter table stuent add s_entrance date;
--新增加列为空

--数据类型更改(年龄由字符改为整数)
alter table student alter column sage smallint;

--增加课程名条件(必须取唯一约束条件)
alter table course add unique(cname);

--创建、修改约束
--非空约束
alter table table_name alter column colum_name colun_type null/not null;

--主键约束
alter table table_name add constraint constraint_name primary key(column);

--唯一约束
alter table table_name add constraint constraint_name unique(column);

--添加检查约束
alter table table_name add constraint constraint_name check(sex in('男','女'));

--外码约束
alter table table_name add constraint constraint_name foreign key(column_name) references ref_table(ref_column);

--删除基本表
drop table 表名 restrict/cascade
restrict--不能被其他表约束所引用
cascade--全部删除

--建立索引
--一个基本表上最多只能建立一个聚簇索引,可以建多个unique索引
--表主键默认为聚簇索引,高效

create [unique][cluster] index 索引名 on 表名(列名,次序)

--student表建立聚簇索引
create cluster index stusname on student(sname);

--student 按学号升序建唯一索引
--sc 按学号升序,课程号降序建唯一索引
create unique index stusno on student(sno);
create unique index stuindex on sc(sno asc,cno desc);

--删去索引
drop index 索引名

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值