SQL Server 创建表,添加约束

USE Student
--创建系别表


CREATE TABLE Department1(
  DeptId INT IDENTITY(1001,1) NOT NULL,--自动增长列
  DeptName VARCHAR(30) NOT NULL,--系别名称   
)  
--创建学生表
CREATE TABLE Students(
StuId varchar(5) not null,--学生编号
StuName varchar(20) not null,--学生姓名
StuSex bit not null,--学生性别
StuAge int not null ,--年龄
StuBornDate datetime not null ,--出生日期
StuPhone varchar(18)  null,--电话
StuAddress varchar(200) null,--住址
DeptId int not null --系别编号
)
--创建课程表
CREATE TABLE Course(
   CourseId VARCHAR(4) not null,-- 课程编号
   CourseName VARCHAR(20) not null,--课程名称
   Credit INT not null --学分
 
)
--创建成绩表


CREATE TABLE Score(
   StuId VARCHAR(5) not null,-- 学生id
   CourseId VARCHAR(4) not null,--课程编号
   ExamDate DATETIME null,--考试日期
   ExamScore FLOAT not null --考试成绩
)
--修改表名
exec sp_rename Students,StudentInfo -- exec调用存储过程的关键字


--增删改 字段 语法
ALTER TABLE Students
 ADD IdCard VARCHAR(18) not null --增加列


ALTER TABLE Students
 DROP COLUMN IdCard --删除列


 ALTER TABLE Students
 ALTER COLUMN StuAddress VARCHAR(200) not null --修改列


 --讲数据库的学生表删除
 if exists (select * from sysobjects where name='Student')--判断当前是否存在学生表
 drop table Students --删除表结构




-- 添加约束
 --1主键约束 PK_student
 ALTER TABLE Students
 ADD CONSTRAINT PK_StuId PRIMARY KEY(StuId) --将stuid设为主键
 --2默认约束 defauLt DF_Address
 ALTER TABLE Students
 ADD CONSTRAINT DF_StuAddress DEFAULT('地址不详') FOR StuAddress 


 --3检查约束 CK_StuAge
 ALTER TABLE Students
 ADD CONSTRAINT CK_StuAge CHECK(StuAge>0) --将stuage设置为检查约束
 --4添加唯一约束 UQ_StuPhone
 ALTER TABLE Students
 ADD CONSTRAINT UQ_StuPhone UNIQUE(StuPhone) --将stuphone设置为唯一约束
 --5添加主键约束 PK_DeptId
 ALTER TABLE Department1
 ADD CONSTRAINT PK_DepId PRIMARY KEY(DeptId) --将deptid设置为主键 


 --6添加外键约束
 ALTER TABLE Students
 ADD CONSTRAINT FK_DeptId FOREIGN KEY(DeptId) 
 REFERENCES Department1(DeptId) --主表是 系别表 从表是students表


 --7添加唯一约束(deptname)
 ALTER TABLE Department1
 ADD CONSTRAINT UQ_DeptName UNIQUE(DeptName)
 --删除默认约束
 ALTER TABLE Students
 DROP CONSTRAINT DF_StuAddress
 --删除唯一约束
 ALTER TABLE Students
 DROP CONSTRAINT UQ_StuPhone
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值