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
    

      

  • 相关阅读:
    文档管理项目
    根据商品名称、价格区间检索商品的SQL语句
    ASP.NET MVC进阶三
    ASP.NET MVC进阶二
    vscode编写html,常用快捷方式与插件
    bpexpdate – 更改映像目录库中备份的截止日期以及介质目录库中介质的截止日期nbu
    Netbackup用于技术支持的问题报告(报障模版)
    netbackup 8.1安装注意事项
    金融的本质是什么?终于有人讲清楚了!(源于网络)
    nbu集群Alwayson相关问题
  • 原文地址:https://www.cnblogs.com/junhuang/p/3763356.html
Copyright © 2011-2022 走看看