zoukankan      html  css  js  c++  java
  • SQLServer基础(五)

    第六章、索引与约束
    6.1、索引:像字典的按笔画查找的目录。
         缺点:占空间、减慢数据插入和删除
         创建:create index 索引名 on 表名(字段1,字段2,...)
              create index idx_person_nameage on T_Person(FName,FAge)
              drop index idx_person_nameage ;
    6.2、约束
         约束:非空约束;唯一约束;check约束;主键约束;外键约束。
    6.2.1、非空约束
         create table T_person(FNumber varchar(20) not null,FName varchar(20),FAge Number(10))
    6.2.2、唯一约束
         唯一约束,another name :unique(字段在表中不能重复)
         create table T_Person(FNumber varchar(20) unique,Fname varchar(20),FAge int)
         但不能实现字段A重复,字段B重复,但AB不能同时重复。所以出现
         复合唯一约束
         constraint 约束名 unique (字段1,字段2,...) 
         create table T_Person(FNumber varchar(20), FDepartmentNumber varchar(20),Fname varchar(20), FAge int,constraint uniq_dep_num unique(FNumber,FDepartmentNumber))
         添加与删除约束
         alter table 表名 add constraint 唯一约束名 unique(字段1,字段2,..)
         alter table 表名 drop constraint 唯一约束名
    6.2.3、check约束
         check约束会检查输入到记录中的值是否满足一个条件(年龄不能为负数)
         create table T_Person(FNumber varchar(20),FName varchar(20),FAge int check(FAge>0),FWorkYear int check(FWorkYear>0))
         人员编号长度大于12:check(len(FNumber)>12)
         but, check子句缺点是约束条件不能引用其他列(年龄=现在-出生年)
         but,我们可以用constraint 关键字:constraint 约束名 check (约束条件)
         create table T_Person(Fnumber varchar(20),FName varchar(20),FAge int,FWorkYear int,constraint ck_age_work check(FAge>FworkYear))
         添加与删除check
         alter table T_Person add constraint ck_2 check(FAge>2)
         alter table T_Person drop constraint ck_2
    6.2.4、主键约束
         主键,唯一标识一条记录,唯一不为空,主键=非空+unique;
         create table T_Person(FNumber varchar(20) primary key,FName varchar(20))
         复合主键
         create table T_Person(FNumber varchar(20),Fname varchar(20),FAge int ,constraint pk_1 primary key(FNumber,FName)
         添加与删除主键:alter组合主键的字段必须包含not null约束(建表的时候该字段非空约束)。
         alter table T_Person add constraint pk_1 primary key (FNumber,FName)
         alter table T_Person drop constraint pk_1;
    6.2.5、外键约束
         两个表之间的约束:foreign key(自己表要约束的字段) references 约束自己的表(其表的字段)
         table T_Author(FId primary key,FName,FAge,FEmail)
         create table T_Book (FId primary key,FName,FPageCount,FAuthorIDforeign key(FAuthorID) references T_Author(FId)
         如果想在建表的时候就定义外键名称,只需加上:constraint 外键名 foreign key
         create table T_Book (FId primary key,FName,FPageCount,FAuthorIDconstraint forkey_auID_id foreign key(FAuthorID) references T_Author(FId)
         添加与删除外键:alter
         alter table T_Book add constraint fk_book_author foreign key(FAuthorID) references T_Author(FId)
         如何查看外键名称:
         select name  
    from  sys.foreign_key_columns f join sys.objects o on f.constraint_object_id= o.object_id
    where f. parent_object_id=object_id ('表名')
  • 相关阅读:
    Ztree下拉框多选
    FullCalendar日程插件
    viscose 前端常用插件
    一些词
    关于require()和export引入依赖的区别
    关于CMD/AMD和Common.js/Sea.js/Require.js
    vue中的双向数据绑定原理简单理解
    Vue-cli简单使用
    webpack简单配置
    vuex基础
  • 原文地址:https://www.cnblogs.com/shadow-fei/p/3543111.html
Copyright © 2011-2022 走看看