• 数据库管理之数据表管理(2)


    约束

    1 增加约束

    ALTER  TABLE  表名
    ADD  CONSTRAINT  约束名  约束类型  具体的约束说明

    --添加主键约束(将AuthorID作为主键)
    alter table Authors
    add constraint pk_AuthorID primary key(AuthorID)
    
    --添加默认约束(性别默认值为1)
    alter table Authors
    add constraint DF_Sex DEFAULT(1) for Sex
    
    --添加检查约束(电子邮箱必须包含@)
    alter table Authors
    add constraint CK_Emial Check(Email like%@%')

    2 删除约束

    ALTER TABLE 表名 DROP  CONSTRAINT  约束名

    --删除约束DF_Sex
    alter table Authors drop constraint DF_Sex

    3 使用NOCHECK CONSTRAINT

    子句使约束无效
    ALTER TABLE 表名
        NOCHECK CONSTRAINT 约束名 |
        CHECK CONSTRAINT约束名
    注意:该子句只对外键约束和检查约束起作用

    添加列

    ALTER TABLE 表名 ADD 列名 数据类型[(长度)] [NULL | NOT NULL]

    若向已存在记录的表中添加列,新添加的列可以设置允许为空;若不允许为空,则需指定默认值

    删除列

    ALTER TABLE 表名 DROP COLUMN 字段名 [, ……]

    在删除列时,必须先删除基于该列的索引和约束后,才能删除该列

    修改列

    ALTER TABLE 表名 ALTER COLUMN 列名 数据类型[(长度)] [NULL | NOT NULL]

    在默认状态下,列可以被设置为空值,将一个原来允许为空值的列改为不允许为空值时,必须满足列中没有存放空值的记录以及在列上没有创建索引

    注意:数据类型的范围设置可以比原来大,也可以比原来小,但是如果里面有数据存在,则对应的数据类型范围必须比原来大

    创建索引

    1 语法
    CREATE [UNIQUE] [CLUSTERED|NONCLUSTERED]  INDEX   index_name
    ON table_name (column_name…)
    [WITH FILLFACTOR=x]
    UNIQUE 表示唯一索引,可选
    CLUSTERED NONCLUSTERED 表示聚集索引还是非聚集索引,可选
    FILLFACTOR 表示填充因子,指定一个0到100之间的值,该值指示索引页填满的空间所占的百分比

    2 示例
    在工资表的jbgz列创建索引

    USE booksmanager
    GO
    IF EXISTS (SELECT name FROM sysindexes WHERE name = 'IX_jbgz')
       DROP INDEX IX_jbgz on 工资表
    /*--创建非聚集索引:填充因子为30%--*/
    CREATE NONCLUSTERED INDEX IX_jbgz
    ON 工资表(jbgz)
    WITH FILLFACTOR= 30
    GO
    /*-----指定按索引 IX_jbgz 查询----*/
    SELECT * FROM 工资表  with (INDEX=IX_jbgz)
    WHERE jbgz BETWEEN 2000 AND 3000

    删除索引

    USE booksmanager
    GO
    IF EXISTS (SELECT name FROM sysindexes WHERE name = 'IX_jbgz')
       DROP INDEX IX_jbgz on 工资表
  • 相关阅读:
    .net 5.0
    多线程synchronized锁
    多线程(Thread、线程创建、线程池)
    电商秒杀方法
    sb @EnableAsync与@Async 20210310
    spring boot @EnableAsync 异步调用
    五代十国军事人物
    唐朝末年,七大割据军阀势力
    盘点万历之后,镇守辽东的8位军事统帅,堪称有军事作为的仅三人
    Cookie-Session or JWT
  • 原文地址:https://www.cnblogs.com/cmhunter/p/4278820.html
Copyright © 2020-2023  润新知