数据库知识复习
来源:互联网 发布:卡通地图制作软件 编辑:程序博客网 时间: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 语句:回滚之前所做的修改,将数据恢复到原来的状态
- 数据库知识复习
- 【复习】数据库知识
- 数据库相关知识复习总结《一》
- 数据库知识复习--三大范式
- 复习知识
- 数据库复习
- 数据库复习
- 数据库复习
- 数据库复习
- 数据库复习
- 数据库复习
- 数据库复习
- 数据库复习
- 数据库复习
- 数据库复习
- 复习数据库
- 数据库复习
- 数据库复习
- HDU 4405 Aeroplane chess (概率DP)——2012 ACM/ICPC Asia Regional Jinhua Online
- 项目感悟:TV端项目的0—1
- JavaScript 运算符
- 课堂笔记
- ubuntu时区设置
- 数据库知识复习
- Android程序崩溃统一处理机制
- Maven软件管理学习
- nmon集群资源使用情况 监控工具
- swift闭包的使用 -- 类似于OC中的Block
- Android - View绘图原理总结(转载)
- UE4学习示例 Animation2
- 再进一步优化—获取某id下的ClassName—IE8以下浏览器的兼容语句,同上一篇文章的原理
- 第二章:Django入门篇