当前位置: 首页 > backend >正文

数据库工程师备考

cascade:层级

foreign:外键声明

references:参照

procedure: 过程

declare:声明

exec sql declare 游标名称 cursor for:游标,游标后边跟select语句

open 游标名称:定义右边之后打开游标

fetch 游标名 into 变量表:推进游标,跟上前面声明的变量名

exec sql close 游标名:关闭游标

commit;return 0;:提交,正常结束

事务(要么都做,要么都不做):
begin transaction:事务开始

end transaction:事务结束

commit:事务提交

rollback:事务回滚,注意,如果说已经使用commit了,那旧不能再使用rollback了

下午题,需要观察题目,sql中一般得书写形式为:commit work,rollback work,

1、原子性:事务的所有操作在数据库中要么都做,要么都不做

2、一致性:一个事务独立执行得结果,将保持数据得一致性,及数据不会因为是无阿执行而遭受到破坏。

3、隔离性:一个事务得执行不能被其他事务干扰,并发事务在执行过程中可能会对同一数据进行操作,这些事务得操作应该不会相互干扰,是相互隔离得

4、持久性:一个事务一旦提交,它对数据库得改变必须是永久得,计时系统出现故障也是如此。

事务的五种状态:
活动状态、部分提交状态、失败状态、中止状态、提交状态

可恢复调度就是读取一个数据前,这个数据所占用的事务一定是先进行提交

并发调度是否正确,要与并行调度的任意一次的调度结果一致

事务的隔离级别:
1、READ UNCOMMIT(读未提交):可避免丢失修改

2、READ COMMIT(读已提交):可避免丢失修改,读脏数据

3、REPEARABLE READ(可重复读):可避免丢失修改、读脏数据、不可重复读

4、SERIALIZABLE(串行化):最高级别,可避免丢失修改、读脏数据、不可重复读、幻读。

幻读:事务A查询得到N条数据,然后事务B又插入了M条数据,或则改变了这N条数据之外的M条符合事务A搜索条件的数据,导致事务A再次搜索发现有N+M条数据了,就产生了所谓的幻读现象。
表级锁:Serializable

一、约束
1.完整性约束
1)直接跟:primary key
2)primary key(属性组,‘,’隔开)

2.外键约束
foreign key(属性名) references 表名(属性名)[on delete [cascade|set null]],foreign key定义哪些列为外码,references指明外码对应于哪个表的主码;on delete cascade指明删除被参照关系的元组时,同时删除参照关系中的元组;set null则是置为空置方式。
1)直接跟references 表名(属性名)
2)foreign key 外键名 on 其他表(属性)

3.属性值上的约束
1)check
2)default
3)unique
4)not null

4.用户全局性约束,
1)基于元组来检查子句:例如,年龄在16至16-20岁之间,可用check(Sage>=16 and Sage<=20)检测。
2)基于断言的语法格式:assertion(断言,实际情况中支持的数据库较少,只需知道断言可用于全局性约束即可)
create assertion<断言名>CHECK(<条件>)
eg:教学数据库的模式Students、SC、C中创建一个约束ASSE-SC2;每门课最多允许50名男同学选修
create assertion ASSE-SC2 CHECK
   (50>=ALL(SELECT COUNT(SC.Sno)
                     FROM Student,SC
                     WHERE Students.Sno=SC.Sno AND SEX='M'
                     GROUP BY Cno));

二、授权
1.grant
grant insert/update/select/privileges on table/database [of  列名] to 用户

revoke insert/update/select from 用户 [restrict/cascade]

with grant option:持续赋予值给其他用户

三.触发器:
declare:声明主变量部分,引用主变量的时候需要在变量名前加上冒号:

section:部分
create trigger 触发器名 【before/after】
   【delete/insert/update of 列名】
referencing new row as nrow,old row as orow     注:referencing 后边跟的是临时视图名
for each row/for each statement
when 触发条件 //when后面的触发条件指明当什么条件时执行下面的触发动作
begin
   触发动作
end

四、存储过程
create procedure 存储过程名(in/out/in out 参数 数据类型)
   【as] //参数的数据类型只需要指明类型名即可,不需要指明宽度,具体的宽度有外部调用者决定
begin
   sql 语句
end
   commit;return 0;

大数据

多样性:variety

高速性:velocity

低价值性:value

大量:volume

真实性:veracity

数据采集(抽取)--->数据分析(机器学习)--->数据解释(可视化、人机交互)
 

http://www.xdnf.cn/news/9024.html

相关文章:

  • 第三届京麒CTF Web
  • ClickHouse性能优化技术深度解析与实践指南
  • (4)-Fiddler抓包-会话面板和HTTP会话数据操作
  • 多模态大语言模型arxiv论文略读(九十三)
  • Odoo 自动化规则全面深度解析
  • 探秘谷歌Gemini:开启人工智能新纪元
  • 基于树莓派的贪吃蛇游戏机
  • 【科研绘图系列】R语言绘制气泡图(bubble plot)
  • 噪声建模在一小时:最小化准备工作的自监督低光RAW图像去噪
  • ArcGIS 与 HEC-RAS 协同:流域水文分析与洪水模拟全流程
  • 数字展厅建设需融合创意设计与实用功能,打造多维用户体验!
  • 动态规划(7):背包问题
  • 解决 docker pull镜像失败
  • DEC Global:技术赋能如何重塑投资者决策模式?
  • Three.js搭建小米SU7三维汽车实战(5)su7登场
  • 深度解析新能源汽车结构与工作原理
  • 多端一体开发:iVX 如何让「一次开发,全平台部署」从理想照进现实
  • Android中一次完整的ipc通信过程
  • Vue 3.0中复杂状态如何管理
  • ARINC818_FILE
  • jquery基础知识
  • 批量转存夸克网盘内容并分享实操教程
  • charAt()
  • ArkUI:鸿蒙应用响应式与组件化开发指南(一)
  • RuoYi前后端分离框架集成UEditorPlus富文本编辑器
  • C++ list基础概念、list初始化、list赋值操作、list大小操作、list数据插入
  • Debian系统安装Python详细教程及常见问题解答
  • 菜鸟之路Day34一一Mybatis-基础操作
  • 基于深度学习的情绪识别检测系统【完整版】
  • 什么是时空学习(Spatiotemporal Learning)