数据库总结

1.数据库三大范式
  1NF:所有属性和属性值不可再分
2NF:在满足1NF的基础上,所有非主属性完全依赖于全部的主键属性,而非依赖于部分主键属性
  3NF:在满足第二范式的基础上,非主属性间接依赖与主属性,存在传递依赖的关系。
2.存储过程
  存储过程是为了完成一组特定功能的用户自定义的一系列SQL语句,存储在数据库,经过一次编译后,以后再次调用将不在编译。由于数据库执行动作时,是先编译后执行的。然而存储过程是一个编译过的代码块,所以执行效率要比T-SQL语句高。有局部变量参数,可传入参数,可以返回值。
基本语法形式:

CREATE proc | procedure procedure_name
    [{@参数数据类型} [=默认值] [output],
     {@参数数据类型} [=默认值] [output],
     ....
    ]
as
    SQL_statements
go
exec procedure_name

-------------创建名为GetUserAccount的存储过程----------------

create Procedure GetUserAccountRe1
@UserName nchar(20),
@UserID int output
as
if(@UserName>5)
select @UserID=COUNT(*) from UserAccount where UserID>25
else
set @UserID=1000
return @@rowcount
go

-------------执行上面的存储过程----------------

exec GetUserAccountRe1 '7',null
  1. 数据查询
    1.整个select语句的含义是,根据where子句的条件表达式,从from子句指定的基本表或视图中找出满足条件的元组,再按照select子句中的目标列表达式选出元组中的属性值形成结果表。
    2.指定别名,例如,select Sname Name,'Year of Birth:' BIRTH, 2004-age BIRTHDAY。
    3.模糊查询like的通配符表示,当字符集为ASCII时,一个汉字用两个表示,GBK时用一个表示,为了使通配符失去含义可加上 _ escape ''。
  2. where子句作用于基本表或视图,having 作用于元组,通常指group by 的分组。
  3. 在进行多表连接时,可以采用一种优化,先做条件表达式,选出符合条件的元祖形成一个中间关系,在做连接操作。
  4. order by不能在子查询的select语句中,只能出现在最终查询中。
  5. 相关子查询 找出每个学生超过他选修课平均成绩的课程号。
    select Sno,Cno from SC x where Grade >= (select AVE(Grade) from SC y where x.Sno = y.Sno);注意这个语句的执行过程:首先,从外查询中取出一个元组,将该元组的Sno传给内查询,然后内查询执行全表扫描,并统计Ave。接着外查询传入第二个元组,依次循环结束。
  6. 当子查询返回的结果不是一个单值,而是一个集合时,可使用ANY或者ALL谓语或者聚集函数,但聚集函数效率较高。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 由于最近要参加面试,不得不把雪藏很久的数据库知识拿出来翻一翻,我想吧,数据库作为一个基础也是核心的技能是每一个...
    什么都不会的码农丶阅读 508评论 0 8
  • 一、基本概念 记录 -- 行 字段 -- 列 主键: 唯一 外键 完整性 数据完整性实体完整性表中每一记录是唯一实...
    rh_Jameson阅读 3,732评论 2 13
  • 数据字典 数据库系统中存放三层结构定义的数据库称为数据字典(DD),对数据库的操作都要通过DD才能实现。DD系统中...
    panda_say阅读 1,127评论 0 6
  • 若我早知无法把你忘记 我将不再大意 我会尽力镂刻 在那个初识的 古老的夏季 深沉而缓慢 刻出一张精致而繁复的铜板 ...
    米琼恩阅读 262评论 2 2