zoukankan      html  css  js  c++  java
  • MSSQL系列 (二):表相关操作、列操作、(唯一、主键、默认、检查、外键、非空)约束、临时表

    1.创建表

    --创建学生班级表
    create table StuClass
    (
      ClassId int primary key, --班级ID 主键约束
      ClassName nvarchar(30) not null unique, --班级名称 非空约束 唯一约束
      CreateDate datetime default getdate(), --创建时间 默认值约束
      IsDelete nvarchar(1) default 'N' --是否删除  默认'N'  'Y'代表删除'N'代表不删除 默认值约束
    )
    go
    
    --创建学生表
    create table Student
    (
     StuId int primary key identity(1,1), --学生ID 主键约束 自增长
     StuName nvarchar(30) not null, --学生姓名 非空约束
     StuSex  nvarchar(2) check(stuSex='' or stuSex=''), --学生性别 只是女或者男 检查约束
     CreateDate datetime default getdate(), --创建时间 默认当前时间 默认值约束
     StuAge int, --学生年龄 无约束
     ClassId int foreign key (ClassId) references StuClass (ClassId), --班级ID 外键
     IsDelete nvarchar(1) default 'N' --是否删除  默认'N' 'Y'代表删除'N'代表不删除
    )
    go
    
    --创建学生科目表
    create table StuSubject(
      SubjectId int primary key, --科目ID
      SubjectName nvarchar(30) , --科目名称
    )
    go
    
    
    --创建学生成绩表
    create table StuScore(
      StuId int foreign key (StuId) references Sutdent(StuId) on delete cascade, --学生ID 外键约束 同时支持级联删除
      SubjectId int foreign key (SubjectId) references StuSubject(SubjectId) on delete cascade , --学生科目 外键约束
      StuScore float, --学生成绩 
      primary key(StuId,SubjectId) --联合主键
    )
    go

    2.约束相关操作(添加、删除)

    --添加约束的另一种方式 注意:两种方式只能用一种
    --添加主键约束
    alter table StuScore add constraint PK_StuScore_StuId_SubjectId  primary key (StuId)
    go
    
    
    --添加非空约束
    alter table StuScore alter column StuScore float not null
    go
    
    
    --添加检查约束
    alter table StuInfo  add constraint CK_StuInfo_StuSex check(StuSex='' or StuSex='')
    go
    
    
    --添加唯一约束
    alter table StuClass  add constraint UQ_StuClass_ClassName unique(ClassName)
    go
    
    
    --添加默认值约束
    alter table StuClass add constraint DF_StuClass_CreateDate default(getdate()) for CreateDate
    go
    
    
    --添加外键约束
    alter table StuInfo add constraint FK_StuClass_StuInfo foreign key (ClassId) references StuClass(ClassId) on delete cascade
    go
    
    
    --删除单个约束
    alter table StuScore  drop FK_StuClass_StuInfo
    go
    
    --删除多个约束
    alter table StuScore drop constraint 
    FK_StuClass_StuInfo,
    PK_StuScore_StuId_SubjectId
    go

    3.列相关操作

    --添加列
    alter table StuScore add  CreateDate datetime default getdate(); 
    go
    
    --删除列
    --删除列名的时候 如果存在约束 要删除约束
    alter table StuScore drop  DF__StuScore__Create__403A8C7D
    alter table StuScore drop column CreateDate
    go
    
    --修改列字段类型
    alter table StuScore alter column StuScore float
    go
    
    --修改表名
    --注意:更改对象名的任何部分都可能破坏脚本和存储过程,谨慎操作
    exec sp_rename 'Student','StuInfo'
    go
    
    --修改表中的列名
    --注意:更改对象名的任何部分都可能破坏脚本和存储过程,谨慎操作
    exec sp_rename 'StuInfo.CreateDate','CreateTime','column'
    go

    4.删除表

    --删除表  注意当有主从表时候 先删从表 如果设置了联级删除 那么都会删除
    if exists(select count(*) from sys.objects where name='StuScore')
    drop table StuScore
    go

    5.临时表相关操作

    --删除临时表
    if object_id('tempdb..#StuInfo') is not null
    drop table #StuInfo
    go
    
    --创建临时表
    create table #StuInfo
    (
     StuId int primary key identity(1,1), --学生ID 主键约束 自增长
     StuName nvarchar(30) not null, --学生姓名 非空约束
     StuSex  nvarchar(2) check(stuSex='' or stuSex=''), --学生性别 只是女或者男 检查约束
     CreateDate datetime default getdate(), --创建时间 默认当前时间 默认值约束
     StuAge int, --学生年龄 无约束
     IsDelete nvarchar(1) default 'N'   --是否删除  默认'N'  'Y'代表删除'N'代表不删除 默认值约束
    )

     6.相关系统表

    查询表、列、约束、索引信息

    --查询表、列、约束、索引信息
    sp_help StuInfo

     查询字段信息

    --查询字段信息
    sp_columns StuInfo

     注:个人微信公众号

    个人QQ号

  • 相关阅读:
    【论文阅读-REC】<<Collaborative Filtering for Implicit Feedback Datasets>>阅读
    【论文阅读-CTR】<<Deep Learning over Multi-filed Categorical Data -A Case Study On User Response Prediction>>阅读
    【论文阅读-REC】<<Recommending music on Spotify with deep learing>>阅读
    【论文阅读-REC】<<DEEP NEURAL NETWORKS FOR YOUTUBE RECOMMENDATIONS>>阅读
    【论文阅读-REC】<<Deep Neural Networks for Youtube Recommendations>>阅读
    ML基础05-相似检索
    基础模型08-HMM/MEMM/CRF/LSTM+CRF
    数学基础03-信息论基础(信息熵、条件熵、互信息/信息增益、联合熵、相对熵/KL散度、交叉熵)
    基础模型07-EM(其实是一种算法)
    基础模型06-决策树
  • 原文地址:https://www.cnblogs.com/vic-tory/p/13339572.html
Copyright © 2011-2022 走看看