zoukankan      html  css  js  c++  java
  • SQL的一些基本知识

    Len():得到当前指定字符串的个数,与中英文无关

    DataLength():得到当前字符串占据的字节数,与字符类型有关

    char:char类型空间一旦分配,就不会做自动收缩,就算没有存储满也需要占据指定分配的空间,如果存储过多,就会报错--二进制数据截断的错误,不能越界

    VarChar它会根据存储的内容的长度自动收缩,如果存储的内容小于指定的空间范围,那么多余的空间会收回。所以当存储的内容的长度波动较大的时候就考虑使用VarChar

    n--代表是unicode字符,任何字符都占据两个字节空间 。当以后有中文字符的时候,就使用它。

    --sql语法的特点--
    --1.没有"",所有的字符串都使用''包含
    --2.它的逻辑相等与赋值运算符一样都是= 如 if 1=1
    --3.不区别大小写,但是习惯函数上使用大写。所有与数据库相关的其实都不区分
    --4.类型上没有c#严格。任何类型都可以做为字符串进行赋值
    --5.没有bool值的概念,在视图中进行插入数据操作的时候必须输入true/false,但是在逻辑运算符的时候却不能写bool值
    --6.它是解释语言,你选择了那一句执行那么就只执行你所选择的这一句

    --1.它也算术运算符 + - * / %
    --2.它也有关系运算符: > >= < <= = != <>
    --3.它也有逻辑运算符: not ! and && or ||

    --约束-保证数据完整性--
    数据完整性:为了保证数据是安全和准确的
    1.实体完整性:实体就是指一条记录,实体完整性就是为了保证这一条记录是有效的和不重复的。
    1.主键:非空 唯一,一个表只能有一个主键
    2.标识列:是由系统自动生成的,永远不会重复
    3.唯一键:唯一的,可以为null,但是只能null一次,一个表的唯一键可以有多个
    2.域完整性:域就是指某一个字段列,也就意味着这个完整性是为了保证这一列的值是合理有效的
    check约束 类型 非空 默认值 标识列
    3.自定义完整性:按用户自己的需要创建check约束
    check约束 存储过程 触发器
    4.引用完整性:某一个表的字段值不是独立存在的,它引用自另外一个已经存在的表的字段值。它的取值范围不能超出主表对应字段的值的范围.被引用的表就是主表,引用的表就是从表,也称为外键表
    1.选择外键表去创建主外键关系
    2.建立主外键关系的字段的类型需要一致
    3.建立主外键关系的字段的意义必须要一样。
    4.在添加主外键表数据的时候,先添加主表,再添加外键表
    5.在删除主外键关系表数据的时候,先删除从表,再删除主表的值。
    6.建议主外键关系的字段在主表中必须是 主键或者 唯一键
    级联操作:
    1.不执行任何操作:如果有引用就不能删除,如果没有引用 就可以删除
    2.删除主表,从表对应的记录也删除--太恶心
    3.删除主表 的值,从表对应记录的建立了关系的字段值设置为NULL,前提是这个字段值可以为null
    4.设置为默认值,从表对应记录的建立了关系的字段值设置为默认值,前提是这个字段值你已经添加了默认值

    --SQL聚合函数--
    count():求满足条件的记录数,与值无关
    max():求最大值
    min():求最小值
    sum():求和 只能对数值进行计算不能运用于日期和字符串
    avg():求平均值
    --1.求整个表的记录

    去除约束

    alter table 表名 check constraint all

    代码创建约束:

    语法:

    alter table 表名
    add constraint 约束名称(PRIMARY KEY--PK unique--UQ check--CK default --DF foreign key--FK) 约束类型 约束说明(字段,关系表达式,值)

    ---为Teacher表添加主键值
    if exists(select * from sysobjects where name='PK_id')
    alter table teacher drop constraint PK_id
    alter table teacher 
    add constraint PK_id primary key(id)
    --为name添加唯一键
    alter table teacher
    add constraint UQ_name unique(name)
    --为age添加check约束 0~100
    alter table teacher
    add constraint CK_Age check(age>0 and age<=100)
    --为birthday添加默认值
    alter table teacher
    add constraint DF_Birthday default('1999-9-9') for birthday
    --为subjectId添加外键约束
    alter table teacher with nocheck --不检查现有数据
    add constraint FK_teacher_subjectId foreign key(subjectid) references subject(id)
    on delete no action
    

      

  • 相关阅读:
    072孤荷凌寒从零开始学区块链第72天DAPP027
    014自学方法论_养成随手记录自学过程遇到问题的好习惯
    015把注意力放在养大我们金鹅身上
    071孤荷凌寒从零开始学区块链第71天DAPP026
    070孤荷凌寒从零开始学区块链第70天DAPP024
    068孤荷凌寒从零开始学区块链第68天DAPP022
    014什么才是一个人最宝贵的资产
    013自学方法论_怎样才是最高效率加强记忆的自学
    012自学方法谈_不要依赖视频,培养自己的阅读理解能力
    013学会建立一个个自动化的管道
  • 原文地址:https://www.cnblogs.com/junhuang/p/3763356.html
Copyright © 2011-2022 走看看