专项练习-数据库SQL-177题(下)

 ※食用指南:文章内容为牛客网《专项练习-数据库SQL》177道选择题,重点笔记,用于重复思考错题,加深印象

练习传送门:专项练习-数据库SQL-177题

目录:

1、维护参照完整性约束的策略

2、数据库事务的特性(ACID)

3、DQL、DML、DDL、DCL,提交数据的类型

4、视图的概念

5、索引的描述

6、各类查询

7、对表进行修改

8、SQL Server中使用存储过程的优缺点

9、数据库系统三级模式结构

10、截取、删除、提取字符

11、最可能会导致SQL注入的字符

12、游标

13、事务和并发控制

14、各类存储过程

15、锁

16、解决事务的脏读、幻读的方法

17、事务隔离级别

18、批处理的规则

19、授权依据

20、数据库备份类型

21、语句顺序

22、数据类型的函数

23、主键


1、维护参照完整性约束的策略

①对于任何违反了参照完整性约束的数据更新,系统一概拒绝执行

②当删除被参照表的一个元组造成了与参照表的不一致,则删除参照表中的所有造成不一致的元组

③当删除或修改被参照表的一个元组造成了不一致,则将参照表中的所有造成和不一致的元组的对应属性设置为空值

2、数据库事务的特性(ACID)

原子性事务是最小的执行单位,不允许分割
一致性执行事务前后,数据保持一致,对同一数据读取的结果相同
隔离性并发访问数据库时,一个用户的事物不被其他事物所干扰,各并发事务之间数据库是独立的
持久性一个事务被提交后对数据库中数据的改变是持久的

3、DQL、DML、DDL、DCL,提交数据的类型

类型

用途涉及语句
数据查询语言DQLSELECT、FROM、WHERE

数据操纵语言DML

对数据库里的数据进行操作INSERT、UPDATE、DELETE
数据定义语言DDL大多在建立表时使用CREATE、ALTER、DROP
数据控制语言DCL用于对事务的提交、回收和设置保存点GRANT、ROLLBACK、COMMIT 

DDL操作对象:TABLE、VIEW、INDEX、SYN、CLUSTER(隐性提交,无法ROLLBACK)


提交数据的三种类型

显式提交COMMIT
隐式提交ALTER、AUDIT、COMMENT、CONNECT、CREATE、DISCONNECT、DROP、EXIT、GRANT、NOAUDIT、QUIT、REVOKE、RENAME
自动提交SET AUTOCOMMIT ON

4、视图的概念

①可以解决检索数据时一个表中得不到一个实体所有信息的问题

②视图是虚拟表,视图所引用的表称为视图的基表

③若基表的数据发生变化,则变化也会自动反映到视图中

④数据库存储的是视图的定义,不存放视图对应的数据

5、索引的描述

①可通过索引快速查找数据,减少查询执行时间

②数据库索引采用B+树,因为B+树在提高了磁盘IO性能的同时解决了元素遍历效率低下的问题

③如果WHERE子句中使用了索引,那么ORDER BY子句中不会使用索引

④索引提高了查询速度,但索引滥用会降低更新表的速度

⑤为提高效率可建立组合索引,遵循“最左前缀”原则

6、各类查询

①单列单值嵌套查询:结果集为一个值,一般使用=、<、>等运算符

②单列多值嵌套查询:子查询中,父查询中一般使用IN运算符

③多列多值嵌套查询:结果类似于一张虚拟表,父查询中只能使用EXISTS或NOT EXISTS

④集合查询:通常是利用UNION、EXCEPT、INTERSECT集合运算符实现两个表之间的数据查询

7、对表进行修改

ADD COLUMN增加列
CHANGE修改列名或类型
ALTER/DROP DEFAULT修改/删除列的默认值
MODIFY修改列类型
DROP删除列
RENAME TO 修改表名
CHARACTER SET修改字符集
COLLATE修改校对规则(比较和排序时用到)

8、SQL Server中使用存储过程的优缺点

SQL Server中使用存储过程的优缺点
优点执行速度快存储过程只在创造时进行编译,已经通过语法检查和性能优化,以后每次执行存储过程都不需再重新编译
允许组件式编程

当对数据库进行复杂操作时(如对多个表进行UPDATE、INSERT、QUERY、DELETE),可将此复杂操作用存储过程封装起来与数据库提供的事务处理结合一起使用

可多次调用该过程,提高代码的优化率和可读性

减少网络流量

当在客户机上调用该存储过程时,网络中传递的只是该调用语句,否则将会是多条SQL语句

减轻了网络流量,降低了网络负载

提高系统安全性

可将存储过程作为用户存取数据的管道,限制用户对数据表的存取权限,建立特定的存储过程供用户使用

避免非授权用户对数据的访问,保证数据的安全

缺点移植性差依赖于数据库厂商,难以移植(当一个小系统发展到大系统时,对数据库的要求也会发生改变)
难以调试、维护业务逻辑大的时候,封装性不够,难调试难以维护
服务器不能负载均衡

复杂的应用用存储过程来实现,就把业务处理的负担压在数据库服务器上了

无法通过中间层来灵活分担负载和压力.均衡负载等

9、数据库系统三级模式结构

①外模式是面向数据库用户或应用程序的局部数据视图

②索引的组织方式是B+树索引,还是Hash索引与数据库的内模式有关

③模式并不涉及数据的物理存储细节

④模式/内模式映像保证了数据库具有较高的物理独立性

10、截取、删除、提取字符

CHARINDEX返回指定字符串中指定子字符串出现的起始位置的函数
SUBSTRING截取指定字符串的方法
STUFF删除指定长度的字符,并在删除的位置插入新的字符
SOUNDEX返回指定字符串的SOUNDEX值

11、最可能会导致SQL注入的字符

‘单引号作为MySQL中的字段值封装方式,最容易被用作注入攻击,可以执行恶意SQL语句,数据库中的数据都会被盗取

防止SQL注入的方法:

①机密信息必须加密或者HASH掉密码和敏感的信息

②正则表达式对用户的输入进行校验,限制长度,对单双引号进行转换

③直使用存储过程进行数据查询存取、使用参数化的SQL

④减少应用的异常信息的提示,最好使用自定义的错误信息对原始错误信息进行包装

⑥使用辅助软件或网站平台来检测是否有SQL注入(常见的检测工具JSKY、MDCSOFT SCAN、MDCSOFT-IPS)

12、游标

游标:从包括多条数据记录的结果集中每次提取一条记录以便处理的机制,可以看做是查询结果的记录指针

①游标允许定位在结果集的特定行

②从结果集的当前位置检索一行或一部分行

③支持对结果集中当前位置的行进行数据修改

④为由其他用户对显示在结果集中的数据所做的更改提供不同级别的可见性支持

13、事务和并发控制

①并发控制机制的好坏是衡量一个数据库管理系统性能的重要标志之一

②可串行性是判断并发事务是否正确的准则

SQL Server中每一条SELECT、INSERT、UPDATE、DELETE语句都是隐形事务的一部分,显性事务用BEGIN TRANSACTION明确指定事务

④事务的隔离级别越高,并发能力也就越低

14、各类存储过程

sp_helpindex查看表中的索引信息
sp_help查看有关数据库对象的摘要信息
sp_helpdb查看指定数据库或全部数据库信息
sp_helptext查看存储过程、视图、触发器等文本信息,用于获取自定义视图创建的T_SQL文本
sp_refreshview更新视图数据

15、锁

排它锁X用于数据修改操作,其他人不能读也不能写,确保不会同时对同一资源进行多重更新
共享锁S共享锁锁定的资源可以被其他用户读取,但是其他用户无法修改,用于不更改或不更新数据的读取操作,如SELECT语句;
更新锁U用于可更新的资源中,防止当多个会话在读取、锁定以及随后可能进行的资源更换时发生常见形式的死锁;
架构锁在执行依赖于表架构的操作时使用(类型为:架构修改 Sch-M)、架构稳定性 Sch-S)

16、解决事务的脏读、幻读的方法

脏读的解决方法:

①修改时加排他锁,直到事务提交后释放,读取时加共享锁

不可重复读或幻读的解决方法

②读取数据时加共享锁,写数据时加排他锁,都是事务提交才释放锁

17、事务隔离级别

Read uncommitted读未提交是事务隔离级别的最低级别
Read committed读已提交,可避免脏读情况发生
Repeatable Read确保事务可以多次从一个字段中读取相同的值,在此事务持续期间,禁止其他事务对此字段的更新
Serializable最严格的事务隔离级别,要求所有事物被串行执行,不能并发执行,可避免脏读、不可重复读,幻读情况的发生

(15、16、17的详细内容具体可看本人笔记:MySQL数据分析进阶(十)事务)

18、批处理的规则

批处理:指包含一条或多条T-SQL语句的语句组

①修改一个表中的字段名后,不可以在同一个批处理中引用这个新字段

②不能定义一个check约束后,立即在同一个批处理中使用

③Create default,Create rule,Create trigger,Create procedure,Create view等语句同一个批处理中只能提交一个

④不能把规则和默认值绑定到表字段或自定义字段上之后,立即在同一个批处理中使用

19、授权依据

某IT公司人事管理采用专门的人事管理系统来实现,后台数据库名为LF。

新人事部经理在访问员工信息表EMPL里的工资和奖金字段的时被拒绝,只能查看该表其他字段

解决方法:仅授予对表EMPL里的工资列和奖金列的SELECT权限,只给相应字段查询权限即可

db_accessadmin可以添加、删除用户的用户
db_datareader可以查看所有数据库中用户表内数据的用户

20、数据库备份类型

类型概述频率
完整数据库备份可以备份整个数据库,包含用户表、系统表、索引、视图和存储过程等所有数据库对象

花费更多的时间和空间

一周做一次

事务日志备份并不备份数据库本身,只记录事务日志内容,备份的时候只需要复制自上次备份以来对数据库所做的改变

只需要很少的时间

每小时甚至更频繁

差异数据库备份只备份数据库一部分的另一种方法,它不使用事务日志,相反,它使用整个数据库的一种新映象。它比最初的完全备份小,因为它只包含自上次完全备份以来所改变的数据库

存储和恢复速度快

每天做一次

文件和文件组备份如果在创建数据库时,为数据库创建了多个数据库文件或文件组,可以使用该备份方式,如果这个数据库非常大,可以使用文件备份数据库的一部分

不是很常用

21、语句顺序

写法顺序:SELECT--FROM--WHERE--GROUP BY--HAVING--ORDER BY

执行顺序:FROM--WHERE--GROUP BY--HAVING--SELECT--ORDER BY

22、数据类型的函数

CAST将某种数据类型的表达式显式转换为另一种数据类型
CONCAT将两个字符串连接起来,形成一个单一的字符串
ISNUMERIC测试有效数字的数值函数
CHANGE修改字段名

23、主键

①一个数据列只能有一个主键,且不能为空值(NULL)

②主键一定是唯一性索引,唯一性索引并不一定就是主键

③一个表中可以有多个唯一性索引,但只能有一个主键

————END

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

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

相关文章

证书学习(四)X.509数字证书整理

目录 一、X.509证书 介绍1.1 什么是 X.509证书?1.2 什么是 X.509标准?1.3 什么是 PKI?二、X.509证书 工作原理2.1 PKI 的基础——加密算法2.2 PKI 证书编码三、X.509证书 结构3.1 证书字段3.2 证书扩展背景: 我们在日常的开发过程中,经常会遇到各种各样的电子证书文件,其…

微信小程序跳转到另一个微信小程序

引用&#xff1a;http://www.xmdeal.com/mobanjiaocheng/254.html 第一种方法&#xff1a; wx.navigateToMiniProgram 官方文档&#xff1a;https://developers.weixin.qq.com/miniprogram/dev/api/navigate/wx.navigateToMiniProgram.html wx.navigateToMiniProgram({appId…

新电脑Win11系统想要降级为Win10怎么操作?

前言 现在的电脑大部分都是Windows 11系统&#xff0c;组装机还好一些&#xff0c;如果想要使用Windows 10&#xff0c;只需要在安装系统的时候选择Windows 10镜像即可。 但是对于新笔记本、厂商的成品机、一体机来说&#xff0c;只要是全新的电脑&#xff0c;基本上都是Wind…

快速入门游戏领域,开发游戏需要哪些技术?

在这个充满创意和技术的时代&#xff0c;游戏行业成为众多创新人才追求梦想的热土。对于准备踏入这个充满挑战与机遇的领域的新人来说&#xff0c;了解游戏开发流程是至关重要的。 游戏市场蓬勃发展&#xff0c;游戏行业未来行情可观&#xff0c;在这个充满创意和技术的时代&a…

8. GIS数据分析师岗位职责、技术要求和常见面试题

本系列文章目录&#xff1a; 1. GIS开发工程师岗位职责、技术要求和常见面试题 2. GIS数据工程师岗位职责、技术要求和常见面试题 3. GIS后端工程师岗位职责、技术要求和常见面试题 4. GIS前端工程师岗位职责、技术要求和常见面试题 5. GIS工程师岗位职责、技术要求和常见面试…

论文阅读清单

目录 三维重建 视觉语言模型 三维重建 [2408.15235v1] Learning-based Multi-View Stereo: A Survey (arxiv.org) 视觉语言模型 表征 [2407.20229] Improving 2D Feature Representations by 3D-Aware Fine-Tuning (arxiv.org)

vue3 前端实现pdf打印预览 printjs

在utils建print.ts文件 interface PrintFunction {extendOptions: Function;getStyle: Function;setDomHeight: Function;toPrint: Function; }const Print function (dom, options?: object): PrintFunction {options options || {};// ts-expect-errorif (!(this instanc…

电脑技巧:如何在Win11电脑上调整设置,让屏幕更加护眼?

目录 一、调整屏幕亮度 二、启用夜间模式 三、调整色彩设置 四、使用第三方护眼软件 五、保持良好的用眼习惯 总结 随着长时间使用电脑的人越来越多,护眼问题也变得越来越重要。Win11作为更新的操作系统,提供了更多的设置选项来帮助我们保护眼睛。本文将详细介绍如何在…

清华计算几何--凸Polygon的相交问题

凸Polygon和相交定义 本节只讨论凸Polygon的问题&#xff0c;不涉及凹Polygon. 相交包含了边相交和完全包含。 凸Polygon相交的两个问题 Detection(检测) 判断两个凸Polygon是否相交&#xff0c;至于相交部分是什么不关心. Construction(构造) 求出两个凸Polygon具体相交…

AI基础 L9 Local Search II 局部搜索

Local Beam search 对于当前的所有k个状态&#xff0c;生成它们的所有可能后继状态。 检查生成的后继状态中是否有任何状态是解决方案。 如果所有后继状态都不是解决方案&#xff0c;则从所有后继状态中选择k个最佳状态。 当达到预设的迭代次数或满足某个终止条件时&#x…

Linux:归档及压缩

tar命令 • tar 集成备份工具 – -c&#xff1a;创建归档 – -x&#xff1a;释放归档 – -f&#xff1a;指定归档文件名称,必须在所有选项的最后 – -z、-j、-J&#xff1a;调用 .gz、.bz2、.xz 格式工具进行处理 – -t&#xff1a;显示归档中的文件清单 – -C&#xff1a;指定…

Linux系统性能调优技巧

Linux系统性能调优技巧 1. **CPU 调优**1.1. 使用 CPU 亲和力 (CPU Affinity)1.2. 调整 CPU 频率调节器 2. **内存调优**2.1. 优化 Swappiness2.2. 清理缓存 3. **I/O 调优**3.1. 调整 I/O 调度器3.2. 提升文件系统性能 4. **网络调优**4.1. 调整 TCP 参数4.2. 调整连接跟踪表大…

MES的“尽头”是什么?

01 MES的发展历程 要了解MES首先需要知道其发展历程。制造执行系统&#xff08;MES&#xff09;是随着制造业的发展逐步演变和成熟起来的。以下是MES发展的几个主要阶段&#xff1a; 第一阶段&#xff1a;数据收集与报告&#xff08;1980年代 - 1990年代&#xff09; 制造业…

[苍穹外卖]-05Redis快速入门

Redis入门 Redis是一个基于内存的key-value结构数据库 基于内存存储, 读写性能高适合存储热点数据(热点商品,咨询,新闻)企业应用广泛中文官网: Redis中文网英文网: https://rsdis.io 下载安装: Redis安装包分为Windows版本和Linux版本, Redis的windows版属于绿色软件, 解压后…

python之异步任务

在 Python 中&#xff0c;异步任务通常通过使用库如 Celery 来实现。Celery 是一个简单、灵活且可靠的分布式系统&#xff0c;用于处理大量消息&#xff0c;同时提供操作控制。 在 Celery 中&#xff0c;delay 和 apply_async 是两种常用的方法来调度异步任务。 delay 方法 …

OCR技术视角:智能文档管理中的票据自动化识别与处理

在数字化转型的浪潮中&#xff0c;企业对于高效、自动化的文档管理需求日益增长。票据作为企业运营中不可或缺的部分&#xff0c;其识别与管理的智能化成为了提升工作效率的关键。本文将深入探讨智能文档系统中票据识别功能的原理、技术优势以及在不同行业中的应用实践&#xf…

观察者模式observer

允许一个对象将其状态的改变通知其他对象 当Editor调用openFile()和saveFile()时&#xff0c;它会通过EventManager的notify方法&#xff0c;通知所有订阅了这些事件的监听器。

828华为云征文|华为云Flexus X实例部署k3s与kuboard图形化管理工具

828华为云征文&#xff5c;华为云Flexus X实例部署k3s与kuboard图形化管理工具 华为云最近正在举办828 B2B企业节&#xff0c;Flexus X实例的促销力度非常大&#xff0c;特别适合那些对算力性能有高要求的小伙伴。如果你有自建MySQL、Redis、Nginx等服务的需求&#xff0c;一定…

算法分享——《双指针》

文章目录 ✅[《移动零》](https://leetcode.cn/problems/move-zeroes/)&#x1f339;题目描述&#xff1a;&#x1f697;代码实现&#xff1a;&#x1f634;代码解析&#xff1a; ✅[《复写零》](https://leetcode.cn/problems/duplicate-zeros/)&#x1f339;题目描述&#xf…

【React】Vite 构建 React

项目搭建 vite 官网&#xff1a;Vite 跟着文档走即可&#xff0c;选择 react &#xff0c;然后 ts swc。 着重说一下 package-lock.json 这个文件有两个作用&#xff1a; 锁版本号&#xff08;保证项目在不同人手里安装的依赖都是相同的&#xff0c;解决版本冲突的问题&am…