数据库错误知识集3(摘)

news2025/7/17 16:08:04

(摘)
逻辑独立性外模式不变模式改变时,如增加新的关系,新的属性,改变属性的数据类型,由数据库管理员对各个外模式/模式的映像做相应改变,可以使得外模式不变,因为应用程序依据外模式编写的所以外模式不变,应用程序也不变,即保证了逻辑独立

物理独立性是模式不变内模式改变,如数据库存储结构发生改变,选用另一种数据结构,由数据库管理员对各个模式/内模式的映像做相应改变,可以使得模式不变 ,从而保证了应用程序也不变

从下往上控制改变


  • 聚集函数里只有SUM AVG需要参数是数值型
  • 聚合函数MAX(<列名>)用于求某一列值的最大值,它对列名不限制数据类型。

外模式也称子模式,通常是模式的子集。-----《数据库系统概论》


删除异常: 不该删除的但是却被删除;
插入异常:应该插入的但是却没有被插入;


  • All():对所有数据都满足条件,整个条件才成立,>=all()等价于max,<=all()等价于min;
  • Any:只要有一条数据满足条件,整个条件成立,>any()等价于>min,<any()等价于<max;
    some的作用和Any一样

在数据库技术中,为提高数据库的逻辑独立性和物理独立性,数据库的结构被划分成用户级、概念级,和存储级三个层次。


  • DFD图即为数据流图(Data Flow Diagram),它从数据传递和加工角度,以图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具及用于表示软件模型的一种图示方法。
  • E-R是实体联系图 里面有方形圆形和菱形
  • I/O图是输入输出图
  • IPO图是输入加工输出图

SQL server支持的备份类型有四种:
1、完全数据库备份
2、差异备份或称增量备份
3、事务日志备份
4、数据库文件和文件组备份


MySql中的权限分为五个级别:

Global Level:Global Level所有权限信息都保存在mysql.user 表中,它的所有权限都是针对整个mysqld 的,对所有的数据库下的所有表及所有字段都有效

Database Level:Database Level其作用域即为所指定整个数据库中的所有对象

Table Level:Table Level 的权限作用范围是授权语句中所指定数据库的指定表。Table Level 的权限由于其作用域仅限于某个特定的表,所以权限种类也比较少,仅有
ALTER,CREATE,DELETE,DROP,INDEX,INSERT,SELECT UPDATE 这八种权限。

Column Level:Column Level 的权限作用范围就更小了,仅仅是某个表的指定的某个(活某些)列。Column Level 级别的权限仅有 INSERT , SELECT 和 UPDATE 这三种。

Routine Level:Routine Level 的权限主要只有EXECUTE 和ALTER ROUTINE 两种,主要针对的对象是procedure 和function 这两种对象。


Mysql sql注入中使用延时注入时常用的语句是:sleep(5);


数据库的外键可以为空也可以非空,但是如果非空,则这个值必须在主表中存在


视图设计一般有 3 种设计次序,
通常有如下几种方法:
1、自顶向下。先全局框架,然后逐步细化
2、自底向上。先局部概念结构,再集成为全局结构
3、由里向外。先核心结构,再向外扩张
4、混合策略。1与2相结合,先自顶向下设计一个概念结构的框架,再自底向上为框架设计局部概念结构


SQL Server中每一条select、insert、update、delete语句都是隐形事务的一部分,显性事务用BEGIN TRANSACTION明确指定事务。


数据库主要(根本)解决的是数据的共享问题
DBMS中实现事务
持久性
的子系统是恢复管理子系统


这是关于查询树的启发式优化规则的代数优化,对关系代数表达式的查询树进行优化,典型的启发式规则有

  1. 选择运算尽可能早做,在优化策略中这是最重要,最基本的一条,它常常可以使执行节约几个数量级,因为选择运算一般使计算的中间结果大大变小
  2. 投影运算和选择运算同时进行。如果有若干的投影和选择运算,并且他们都对同一个关系进行操纵的话,就可以在扫描此关系的同时完成所有的这些运算以避免重复扫描关系。
  3. 投影同其前或其后的双目运算结合起来,没有必要为了去掉某些字段而扫描一遍关系
  4. 把某些选择同在他前面要执行的笛卡儿积结合成一个连接运算,连接特别是等值连接运算要比同样关系上的笛卡儿积省很多时间
  5. 找出公共子表达式
    (数据库优化是一个重点)

(摘)
数据字典是数据库的重要组成部分。它存放有数据库所有的有关信息,对用户来说是一组只读的表。数据字典内容包括:
1、数据库中所有模式对象的信息,如表、视图、簇、及索引等。
2、分配多少空间,当前使用了多少空间等。
3、列的缺省值。
4、约束信息的完整性。
5、用户的名字。
6、用户及角色被授予的权限。
7、用户访问或使用的审计信息。
8、其它产生的数据库信息。
数据库数据字典是一组表和视图结构。它们存放在SYSTEM表空间中。
数据库数据字典不仅是每个数据库的中心。而且对每个用户也是非常重要的信息。用户可以用SQL语句访问数据库数据字典。
关于数据的信息集合,是一种用户可以访问的记录数据库和应用程序元数据的目录,是对数据库内表信息的物理与逻辑的说明。


在mysql中:CONCAT合并字符串只要有一个字符串为空,则输出为空;CONCAT_WS合并字符串,只要第一个字符串不为空,则输出不为空


count()函数有两种使用方式:1、使用count(*)对表中的行数进行计数,此种用法不忽略null值;2、使用count(column)对特定列中具有值的行进行计数,此种用法忽略null值。


  • 各分E-R图之间的冲突主要有:属性冲突,命名冲突,和结构冲突

数据库中:

  • ROUND(a,b) 函数用于把数值字段a舍入为指定的b小数位数,四舍五入;
  • TRUNCATE() 函数是按照小数位数进行数值截取没有四舍五入

ALTER TABLE table_name ADD INDEX index_name ( column )


  • 完全备份:所有都备份 。
  • 事物日志备份:自上次备份以来对数据库的改变,备份数据库的操作 。
  • 差异备份:自上次完全备份后所改变的数据库,备份的是数据 。
  • 文件备份:可进行部分备份。

E-R模型属于概念模型也即信息模型


  • DATEADD() 函数在日期中添加或减去指定的时间间隔
    语法: DATEADD(datepart,number,date)
    • datapart参数的取值范围是:{yy/yyyy,qq/q,mm/m,dy/y,dd/d,wk/ww,dw/w,hh,mi/n,ss/s,ms,mcs,ns}
    • number 是希望添加的间隔数
    • date 参数是合法的日期表达式

coalesce函数,返回第一个非空值,如果都是空,返回空值。


VARCHAR型字段(可变字段长度)的另一个突出的好处是它可以比CHAR型字段占用更少的内存和硬盘空间。当你的数据库很大时,这种内存和磁盘空间的节省会变得非常重要.
虽然VARCHAR使用起来较为灵活,但是从整个系统的性能角度来说,CHAR数据类型的处理速度更快,有时甚至可以超出VARCHAR处理速度的50%。因此,用户在设计数据库时应当综合考虑各方面的因素,以求达到最佳的平衡。


数据库管理系统(DBMS)最主要的功能是( 定义数据库)。


(1)PCTFREE:为一个块保留的空间百分比表示数据块在什么情况下可以被insert
(2)PCTUSED:是指当块里的数据低于多少百分比时又可以重新被insert
形象举例说明:
假如:一个杯子一共可装10分水:
PCTFREE = 10,说明杯子装到9分水,就不能再装了,即:不能进行insert操作,但可以进行update操作。
PCTUSED = 40,说明杯子中的水喝到4分一下,就可以往里面装水,即:进行insert操作。


外部并操作的概念是:如果R和S的关系模式不同,实现R与S的并操作所构成的新关系的属性由R和S的所有属性组成(公共属性只取一次),新关系的元组由属于R或属于S的元组所构成,同时元组在新增加的属性上填入空值


hash索引用于**=、in查询**,为确定值的查询
btree用于<、>和between的范围查询,并且支持排序


MySQL数据库中,变量分为 系统变量(以"@@"开头)用户自定义变量。系统变量分为全局系统变量(global)和会话系统变量(session)。

  • @@global 仅用于访问全局系统变量的值;
  • @@session 仅用于访问会话系统变量的值;
  • @@ 先访问会话系统变量的值,若不存在则去访问全局系统变量的值;
    sql_mode 为系统变量,既是全局系统变量,又是会话系统变量。

& 位与运算,对于一个数(a)来说: a与1的结果如果为1,则这个数是奇数如果为0,则这个数是偶数


(摘)
rank() over()与dense_rank() over()的作用基本相同,都是对查出指定条件后的进行排名
rank() over()条件相同排名相同,排名间断不连续:1233567
区别在于dense_rank() over 排名是密集连续的:123345678
eg:

SELECT
score,
(rank() over ( ORDER BY score DESC )) AS rank FROM scores
select score, 
(dense_rank() over (order by Score desc)) AS "rank" from Scores;

ank是mysql的保留字段,会报错,错误码1064,解决方法是rank加上右撇引号rank


(摘)
A. RDBMS:(Relational Database Management System)关系数据库管理系统
B. NoSQL:非关系型的数据库
C. Nginx:是一个高性能的HTTP和反向web服务器,同时也提供了IMAP/POP3/SMTP服务
D. NewSQL:新型关系型数据库
E. ActiveMQ:Apache下的一个中间件
F. Hbase:是一个分布式的面向列的数据


语法结构:OVER( [ PARTITION BY … ] [ ORDER BY … ] )

1 、partition by 字段名字A:子句进行分组,partition by是固定的分组语法

2、order by 字段名字B:子句进行排序,order by 是固定的排序语法。

比如我们上面的例子就是用到了partition by classid 和 order by score这样的用法了,注意:如果联合使用指的意思是:先分组然后再排序

原文链接:https://blog.csdn.net/weixin_45003816/article/details/103721121


聚合函数之间不能嵌套使用


drop、delete、truncate的区别:
1:处理效率:drop>truncate>delete
2:删除范围:drop删除整个表(结构和数据一起删除);truncate删除全部记录,但不删除表结构;delete只删除数据
3:高水位线:delete不影响自增ID值,高水线保持原位置不动;truncate会将高水线复位,自增ID变为1。


between 和 and 关键字是闭区间


全文索引创建:FULLTEXT KEY title (title,content)
全文索引使用:如我们想要在article表的title和content列中全文检索指定的查询字符串,SQL如下:

SELECT * FROM article WHERE MATCH(title,content) AGAINST (‘查询字符串’);


SQL中正则表达式和模糊查询的使用:
一 . ‘%’ 可以替代0或者多个字符,放在不同位置作用不同

  1. select id from student where name like ‘李%’’(表示查找所有名字是‘李’开头的
  2. select id from student where name like ‘%李%’’(表示查找所有名字中间有‘李’的)
  3. select id from student where name like ‘%李’’(表示查找所有名字末尾有‘李’的)
    二.’_ ‘ 他是替代任意单个字符,放在不同位置作用不同,用法与’%’类似,这里就不赘述了

三. ‘**[ ] ‘ ,里面放任意字符列,**数量不限,表示满足括号内任意字符

注意:和上面两个不同的是这个通配符不再是与LIKE 一起使用了,他是正则里面的内容,所有用法稍有不同,他的前面要加上 regexp 关键字
F: select id from student where name regexp ‘[ 李王]’
表示查找所有名字中出现‘李’,或者‘王’的任意学生id
四.‘ [! ] ‘(也可以写成**[^ ]**)里面放任意字符列,**数量不限,表示满足除了括号内任意字符,这与上面一个相反,但是用法相似,
在这里插入图片描述
^: 匹配输入字符串的开始位置
$: 匹配输入字符串的结束位置
[]: 匹配中括号里任意1个
|: 并集,就是或(or)


(摘)
在子表元素大于1时, 不能用= 要用in in(子表)


当遇到以下情况发生时,游标将自动设定INSENSITIVE 选项。
在SELECT 语句中使用DISTINCT、 GROUP BY、 HAVING UNION 语句;
使用OUTER JOIN;
所选取的任意表没有索引;
将实数值当作选取的列

INSENSITIVE表明MS SQL SERVER 会将游标定义所选取出来的数据记录存放在一临时表内(建立在tempdb 数据库下)。对该游标的读取操作皆由临时表来应答。因此,对基本表的修改并不影响游标提取的数据,即游标不会随着基本表内容的改变而改变,同时也无法通过游标来更新基本表。如果不使用该保留字,那么对基本表的更新、删除都会反映到游标中。


一个是空字符串,一个是NULL。针对这两种数据使用length()函数结果是不相同的。


  • 创建索引的语句是create index indexname on tablename (username (length))
  • 其中若是char和varchar类型,length可以小于字段实际长度,
  • 若是blob或text类型,必须指定length

复合索引: Mysql从左到右的使用索引中的字段,一个查询可以只使用索引中的一部份,但只能是最左侧部分。


多级安全是指:给每一类数据设定一个安全级别,同时给每一类用户也设定安全级别,以此来控制什么级别的数据能被什么级别的用户访问。
强制安全性机制:通过对数据和用户强制分类,使不同类别的用户能访问到不同类型的数据;(数据分类)


删除列可以省略column,添加列必须说明数据类型

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/38148.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

sdfsdfasfsdfdsfasfdfasfasadsfasdfasf

白包api 图片编辑功能&#xff1a; 1、你变体下 SnapEditMenuManager 的 这个方法 public void initEditMainMenu(final EditUITabMenu editUITabMenu) 换成你需要的配置&#xff0c;需要哪个功能 就拿哪一坨&#xff0c;别拿多了 //相框 MenuBean menuBean new MenuBean…

线程的学习

v# 1. 线程基本概念 1.1进程 进程是指运行中的程序&#xff0c;比如启动了QQ&#xff0c;就相当于启动了一个进程&#xff0c;操作系统会为该进程分配空间&#xff1b;当我们使用迅雷&#xff0c;就相当于又启动了一个进程&#xff0c;操作系统将为迅雷分配新的内存空间&…

坦克大战①

1. java绘图技术 JFrame&#xff1a;画板 Jpanel&#xff1a;画板 Graphics&#xff1a;画笔 初始化画板&#xff0c;定义画框的大小&#xff0c;设置可视化&#xff1b; 1.1 画坦克 初始化我方坦克、敌方坦克 绘图&#xff1a;(1)更改背景颜色&#xff1b;(2)绘制敌方坦克…

【Docker】常用命令

背景 当下&#xff0c;docker技术已成为开发者常用的技术栈。不管是开发过程中需要应对的各种复杂多变的开发环境的搭建&#xff0c;还是生产部署环节需要的自动化运维&#xff0c;都离不开docker&#xff0c;本文简单介绍相关命令的含义&#xff0c;用作平时查询使用。 1. doc…

【计算机毕业设计】38.网上轰趴预订系统

一、系统截图&#xff08;需要演示视频可以私聊&#xff09; 摘要 在网上轰趴发展的整个过程中&#xff0c;网上轰趴预定担负着最重要的角色。为满足如今日益复杂的管理需求&#xff0c;各类网上轰趴程序也在不断改进。本课题所设计的网上轰趴预定系统&#xff0c;使用SSM框架…

一文看懂Transformer(详解)

文章目录Transformer前言网络结构图&#xff1a;EncoderInput EmbeddingPositional Encoderself-attentionPadding maskAdd & NormFeed ForwardDecoderinputmasked Multi-Head Attentiontest时的Decoder预测Transformer 前言 Transformer最初是用于nlp领域的翻译任务。 …

大屏图表,ECharts 从“熟练”到入门

&#x1f4d6;阅读本文&#xff0c;你将 了解 配置驱动 的思想理解 Echarts 基本概念了解 graphic 和 动画基本玩法。了解 Echarts 基底组件的封装的思路 一、不是标题党&#xff01;Echarts&#xff0c;简历上人均 “熟练”&#xff1f; 公司最近在招外包&#xff0c;而因为…

基于ASP学生资助管理系统的设计与实现

项目描述 临近学期结束&#xff0c;还是毕业设计&#xff0c;你还在做ASP程序网络编程&#xff0c;期末作业&#xff0c;老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里根据疫情当下&#xff0c;你想解决的问题…

用Python蹭别人家图片接口,做一个【免费图床】吧

打开本文&#xff0c;相信你确实需要一个免费且稳定的图床&#xff0c;这篇博客就让你实现。 文章目录⛳️ 谁家的图床⛳️ 实战编码⛳️ 第一轮编码⛳️ 第二轮编码⛳️ 第三轮编码⛳️ 第四轮编码⛳️ 谁家的图床 这次咱们用新浪微博来实现【免费图床应用】&#xff0c;通过…

栈浅谈(上)

目录 栈的定义 栈的实现 初始化 判断栈是否为空 入栈操作 获取栈顶元素 出栈操作 遍历栈 销毁栈 完整代码演示 栈—STL 基本操作 例题 参考代码 栈的定义 说到栈&#xff0c;一些不会计算机语言的“小白”&#xff08;我就是&#xff09;就会想到栈道之类的词语…

基于JavaWeb的婚恋交友网站设计与实现

项目描述 临近学期结束&#xff0c;还是毕业设计&#xff0c;你还在做java程序网络编程&#xff0c;期末作业&#xff0c;老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里根据疫情当下&#xff0c;你想解决的问…

如何平衡新老策略的好与坏,一道常见风控送命题解答

作为一个风控策略从业者&#xff0c;在做风险管理的过程中一直在做的就是&#xff0c;不断的挖掘有效的变量特征来填充风控决策体系&#xff0c;使决策体系的功效变大变强&#xff0c;最终形成一套可变的稳定风险护盾。我们常见的一个场景比如如何筛选一些新策略来挑战老策略&a…

【C++中预处理语句 include、define、if】

1.预处理阶段 预处理阶段&#xff0c;在实际发生编译之前就根据对应的预处理语句进行操作&#xff0c;等到预处理阶段完成之后才进行编译阶段 。 2.预处理语句 预处理语句主要有include、define、if 和 program。利用 # 进行标记 2.1 include语句 include语句就是将所包含的…

if-else练习

if单分支 输入两个数&#xff0c;分别放入x和y中&#xff0c;若两数不相等&#xff0c;则输出其中的大数&#xff0c;若两数相等&#xff0c;则输出字符串“xy&#xff1a;”并输出其值 #define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> int main() {int a 0;int …

智慧油田解决方案-最新全套文件

智慧油田解决方案-最新全套文件一、建设背景1、智慧油田的概念及意义2、智慧油田的建设目标二、建设思路三、建设方案四、获取 - 智慧油田全套最新解决方案合集一、建设背景 1、智慧油田的概念及意义 石油产量、采收率、安全生产等都与石油工业未来息息相关&#xff0c;随着石…

十八、CANdelaStudio深入-Data Types

本专栏将由浅入深的展开诊断实际开发与测试的数据库编辑,包含大量实际开发过程中的步骤、使用技巧与少量对Autosar标准的解读。希望能对大家有所帮助,与大家共同成长,早日成为一名车载诊断、通信全栈工程师。 本文介绍CANdelaStudio的Data Types(数据类型),欢迎各位朋友订…

旧系统改造

背景 很多时候&#xff0c;我们在项目前期会优先确保项目业务的落地&#xff0c;在短时间内进行项目冲刺&#xff0c;最后完成项目上线。这样做让短时间内的目标达貌似达成了&#xff0c;却给系统留下了很大的隐患。 在项目的冲刺过程中&#xff0c;我们的精力大部分花在了业…

动态规划-不同路径

一个机器人位于一个 m x n 网格的左上角 &#xff08;起始点在下图中标记为 “Start” &#xff09;。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角&#xff08;在下图中标记为 “Finish” &#xff09;。 问总共有多少条不同的路径&#xff1f; 示例 …

单源广度优先搜索 (leetcode经典例题 C++实现)

文章目录01矩阵地图分析腐烂的橘子深度优先搜索与广度优先搜索前情回顾&#xff1a; 深度搜索dfs与广度搜索bfs算法总结&#xff08;c 例题&#xff09; 本节是广度优先搜索的进阶&#xff1a; 01矩阵 传送门&#xff1a; https://leetcode.cn/problems/01-matrix/?envType…

JavaWeb----Servlet技术

JavaEE简介 什么是JavaEE JavaEE&#xff08;Java Enterprise Edition&#xff09;&#xff0c;Java企业版&#xff0c;是一个用于企业 级web开发平台,它是一组Specification。最早由Sun公司定制并发 布&#xff0c;后由Oracle负责维护。在JavaEE平台规范了在开发企业级web 应…