• sql server 2008学习5 sql基础


    查看数据库的信息:

    • INFORMATION_SCHEMA.CHECK_CONSTRAINTS
    • INFORMATION_SCHEMA.COLUMN_DOMAIN_USAGE
    • INFORMATION_SCHEMA.COLUMN_PRIVILEGES
    • INFORMATION_SCHEMA.COLUMNS   查看数据库中的所有列
    • INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE
    • INFORMATION_SCHEMA.CONSTRAINT_TABLE_USAGE
    • INFORMATION_SCHEMA.DOMAIN_CONSTRAINTS
    • INFORMATION_SCHEMA.DOMAINS
    • INFORMATION_SCHEMA.KEY_COLUMN_USAGE
    • INFORMATION_SCHEMA.PARAMETERS
    • INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS
    • INFORMATION_SCHEMA.ROUTINE_COLUMNS
    • INFORMATION_SCHEMA.ROUTINES
    • INFORMATION_SCHEMA.SCHEMATA 
    • INFORMATION_SCHEMA.TABLE_CONSTRAINTS
    • INFORMATION_SCHEMA.TABLE_PRIVILEGES
    • INFORMATION_SCHEMA.TABLES   查看数据库中表
    • INFORMATION_SCHEMA.VIEW_COLUMN_USAGE
    • INFORMATION_SCHEMA.VIEW_TABLE_USAGE
    • INFORMATION_SCHEMA.VIEWS       查看数据库中视图

    group by 子句:

    在使用时,select 列表 中的所有列必须为聚合列或是 group by 子句中包括的列.

    同样,如果在select 列表中使用聚合列,select列表必须值包括聚合列,否则必须有一个 group by 子句.

    count聚合函数

    除了count(*)函数以外,以其他任意形式使用的count函数都忽略null值.

    having 子句

    对 分组后的数据 进行 过滤.

    系统存储过程

    exec sp_help 表名    查看表的属性

    inner join

    stu      image                     sec image

    sql :   selert a.Name,b.tel,b.qq from stu a join sec b on a.sec=b.ID

    cross join

    返回的 join两侧表记录的笛卡尔积

    约束

    键约束: 主键约束,外键约束,唯一约束

    系统存储过程 查看 表的约束:   exec sp_helpconstraint 表名

    设置主键:  alter table 表名 add constraint 约束名 primary key (列名)

    设置外键:  alter table 表名 add constraint 约束名 foreign key (本表外键列名)  references 外键表名(外键表的列名)

    那么也可以在 一个表中建立外面外键连接 同个表中的其他列.

    需要注意的是,在添加外键之前表中至少要有一行数据.因为 实际上 是在检查并强制外键操作之后才选择并填充标识值的 .

    那就意味着当检查发生时,还没有值供第一行引用.

    关于外键的考虑:

    1.要想使外键的值为 必须 或是 可选的,那么就需要把外键列 赋值为 null,那么 用户插入外键的值时,即使 被引用的表的列没有值,

    那么 引用表依然可以插入数据.

    2.外键 实现双向的方式.

    sql server默认是不让删除 或修改 被引用表的数据的.因为如果修改了,那么就会 使 引用表 产生很多孤立数据.

    那么就可以使用 cascade, 即:级联操作.  当修改或删除 被引用表的信息时,可以级联影响到 引用表的数据.

    唯一约束:和主键类似, 指定列的每个值必须是唯一的.

    由于 唯一约束 不会自动防止设置一个null值,如果允许列为null,那么只能插入一个null,因为在唯一约束看来,null都是相等的.

    对已有的表创建约束:   alter table table_name add constraint AK_uniquename unique (columnName)

    Check约束

    创建check约束: alter table table_name add constraint CN_name check (条件) //几乎所有where的条件可以应用再此

    default约束

    默认值 只在 insert语句中使用,而在 update ,delete语句中 被 忽略掉.

    如果在 insert中提供了值,那么就不会使用默认值,如果没提供,永远都是默认值的.

    创建default约束:  alter table table_name add constraint constraint_name default ‘default_value’ for column_name

    禁用约束

    不能禁用主键约束或者唯一约束,仅适用于 外键和检查约束

    在创建约束时,忽略无效的数据(应用在给已存在数据的表中加约束,但是原来的数据不符合现在的约束标准)

    alter table table_name with nocheck add constraint constraint_name check (条件)

    下面看这个sql  用于屏蔽约束( 主要用于 向当前表中导入外部数据,那有可能外部数据的格式不符合当前的列约束,可以暂时屏蔽掉约束)

    alter table table_name nocheck constraint contraint_name

    下面是操作check_s这个约束,禁用之前:image

    这样就屏蔽的了一个 约束,那么可以通过  执行  sp_helpconstraint ,来查看 该约束的状态, 禁用之后:

    image

    恢复check约束,  sql  :  alter table table_name check constraint constraint_name

  • 相关阅读:
    CodeForces Gym 100500A A. Poetry Challenge DFS
    CDOJ 486 Good Morning 傻逼题
    CDOJ 483 Data Structure Problem DFS
    CDOJ 482 Charitable Exchange bfs
    CDOJ 481 Apparent Magnitude 水题
    Codeforces Gym 100637G G. #TheDress 暴力
    Gym 100637F F. The Pool for Lucky Ones 暴力
    Codeforces Gym 100637B B. Lunch 找规律
    Codeforces Gym 100637A A. Nano alarm-clocks 前缀和
    TC SRM 663 div2 B AABB 逆推
  • 原文地址:https://www.cnblogs.com/soundcode/p/2679993.html
Copyright © 2020-2023  润新知