数据库知识复习

来源:互联网 发布:卡通地图制作软件 编辑:程序博客网 时间:2024/06/06 03:59

一、数据模型
(1)概念模型,逻辑模型,物理模型
(2)数据模型三要素:数据结构,数据操作,数据的完整性约束条件

二、基本概念
实体
属性


实体型
实体集
联系

三、关系的三类完整性约束
(1)实体完整性 Entity Integrity
主属性不能为空
(2)参照完整性 Referential Integrity
外码取空值或等于被参照关系主码值
(3)用户定义的完整性 User-defined Integrity
针对某一具体关系数据库的约束条件(语义)

四、E-R图
实体:矩形
属性:椭圆
关系:菱形

五、关系操作
两大部分:(1)查询(Query)
(2)插入(Insert),删除(Delete),修改(Update)
关系代数

六、数据更新
1.插入元组

insert into <表名>[属性列···] values(···)

2.插入子查询结果、

insert into <表名>[属性列···]子查询;(select 子句目标列必须与into子句匹配)

3.修改数据

update <表名> set <列名>=表达式 where <条件>

4.删除

delete from <表名> where <条件>

七、标量函数
输入参数为基本类型,返回值也是基本类型
(1)数学函数
ABS 返回绝对值
RAND 返回0~1随机值
(2)字符串处理
ASCII() 返回字符串最左端字符的ASCII值
CHAR() 转换字符
LIRIM() 删除前导空格
REPLACE(a,b,c) 用c替换a中的b
LEFT(a,n)返回从字符a开始左边开始的n个字符
substring(a,s,length)返回a中s开始长度为L的部分数据
STR()数字转字符,返回char

类型转换的2个记住:cast(expression as type)
convert(type,expression)

八、游标

    1.定义游标  declare cursor_name cursor[forward_only | scroll][static | keyset | dynamic | fast_forward]for select语句[for update [ ····]]2.打开游标open cursor_name3.使用 fetch next from cursor_name into 变量···4.关闭 close cursor_name5.删除 deallocate cursor_name

游标例子:

    declare t_cursor cursor    for    select sid,sname from s    open t_cursor    declare @sid char(5),@name char(10)    fetch next from t_cursor into @sid,@sname    while @@FETCH_STATUS =0            begin select @sid,@sname                    fetch next from t_cursor into @sid ,@sname            end    close t_cursor    deallocate t_cursor

九、基本表定义、删除与修改

1.create table <表名> (列名,类型,列级完整性约束条件···)

2.修改基本表

alter table <表名>[add <新列名><类型>[约束]]         添加列[drop <完整性约束名>] [drop column 列名]                    删除列[alter column <列名><类型>]         修改列

3.删除表

drop table <表名>[restrict | cascade]

delete 与drop
delete 是删除数据,drop是删除表定义
十、查询

select ···from 表名where 条件group by <列> [having 条件]order by <列> [ASC | DESC]

十一、字符匹配

[Not] like ‘匹配串’ [Escape ‘换码字符’]
%—-任意字符
_—-单个字符
[]—-指定范围
[^]—-指定不属于范围

十二、视图

1.创建 create view <名>[列]        as 子查询        [with check option] 2.删除 drop view 名 [cascade]

十三、范式

1NF : R中属性都是不可分割的基本数据2NF : R属于1NF,且每一个非主属性完全函数依赖于码(消除部分依赖)3NF : 每个非主属性既不部分依赖于码,也不传递依赖于码(消除传递依赖)BCNF(修正范式):每一个决定因素都包含于码(若R属于3NF,则R未必属于BCNF)

若x->y,则x为决定因素;
完全函数依赖:在R(U)中,若x->y,对x的任一真子集x’,有x’-/>y,即为完全函数依赖
部分函数依赖
传递函数依赖
直接函数依赖

十四、数据库三级模式结构

(1)外模式:也称子模式(用户模式)一个应用程序只能使用一个外模式 ,(多个)(2)模式:一个数据库只有一个模式(3)内模式:也称存储模式,数据库的物理结构与存储方式的描述(一个)

十五、case 语句
1.简单case A,B,C数据类型必须相同或可隐式转换

    case A        when B then 结果1        when C then 结果2        [else]    end

2.搜索型case 返回第一个结果为真的

case    when 布尔表达式 then 结果1    when 布尔表达式 then 结果2    [else]end

case例子:(sex是结果列名,性别是 表中字段)

1. select sex=            case 性别                when 0 then '女'                when 1 then '男'            end    from xs2. select sex=            case                when 性别=0 then '女'                when 性别=1 then '男'                else '无'            end    from xs

十六、函数

if exists(select name from sysobjects where name='函数名' and type='FN')    drop function 函数名

创建函数

create function aver_age(@sex bit) returns int     as    begin        declare @aver int        select @aver=            (select avg(年龄)                from s                 where 性别=@sex)        return @aver    endGO 

函数调用:

      1.select @result=dbo.aver_age(@sex)      2.exec 语句      exec @result=dbo.aver_age @sex=0

十七、存储过程
创建

create procedure/proc 过程名 参数(或无参)as    执行语句

执行

execute/exec 过程名[参数]

修改

alter procedure 过程名as ···

删除

drop procedure 过程名

十八、触发器(触发器最大用途是返回行级数据完整性,不是返回结果)

DML触发器  insert,update,deleteDDL触发器  create,alter,drop触发器中的特殊表1.inserted表  保存insert数据的副本2.deleted表   保存已从表中删除的记录

update的过程:先删除再插入

创建触发器:

create trigger 名字    on table/view        for/after/instead of        insert/update/delete    as sql语句;

rollback transaction 语句:回滚之前所做的修改,将数据恢复到原来的状态

0 0