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

数据库面试常见问题

数据库

Delete Truncate Drop 区别

答:这三个操作都是针对数据库的表进行操作,都有删除表的功能,其中的区别在于:

Delete:只将表中的数据进行删除,不删除定义不释放空间,是dml语句,需要提交事务,如果不想删除可以回滚。delete每次删除一行,并在事务日志中为所删除的每行记录一项。数据两大的情况下,执行速度相较于其他两个而言较慢。

Truncate:仅仅删除表中数据,不删除定义但释放表空间,是DDL语句,操作立刻生效,无法通过binlog回滚,会清空所有数据且速度较快。

Drop:表中的数据和表的结构都会被删除,且释放空间,是DDL语句,操作立刻生效,无法回滚,操作速度相较于其他两个最快。

数据库语句操作分类:DML,DDL,DCL,DQL,TCL

DML(数据操作语言):对表中的数据进行操作,语句包括增删改查:insert,delete,update,select

DDL(数据定义语言):对表进行操作,语句包括:create,truncate,drop,alter

DCL(数据控制语言):用来管理数据库用户、控制数据库的访问权限:grant……to……,revoke……from……

DQL(数据查询语言):执行顺序:先从表中获取数据(from),然后根据条件进行筛选(where),再根据分组字段进行分组(group by……having),查出数据(select),然后根据查到的数据进行排序(order by),最后进行分页操作(limit)

SELECT
字段列表
FROM
表名列表
WHERE
条件列表
GROUP BY
分组字段列表
HAVING
分组后条件列表
ORDER BY
排序字段列表
LIMIT
分页参数

常用函数

decode(条件,值1,返回值1,值2,返回值2,…值n,返回值n,缺省值)

nvl:nvl(string1, replace_with)

mod(m,n): m/n的余数

round(n,p): 四舍五入

length 长度

lower 小写

upper 大写

to_date 转化日期

to_char 转化字符

to_number 转变为数字
ltrim/rtrim/trim 去左/右/中 空格

substr(c,p,n) 截取字符串,从p位开始截,包含p位,截取n位

KETTLE内存溢出解决方案

答:找到kettle的安装路径,找到spoon.bat,点击进行编辑,找到对应的字段进行调整:-Xmx1024m 加大,最好是265m的整数倍,修改默认缓存条数(默认为1万),双击Transformation空白地方,会弹出一个界面,修改Nr of rows in rowset值。

kettle中黄色的锁,绿色的对勾,红色的停止代表的意思

黄色的锁:表示不论上一步是否执行成功,将会继续向下执行,下一步可以正常执行

绿色的对勾:表示只有当上一步的任务执行成功并且没有任何错误的时候才会执行下一步

红色停止:表示当上一个作业项的执行结果为假或者没有成功执行时,执行下一个作业项

双斜线:并行启动下一个条目,右键菜单launch next entries in parallel可以设置

Oracle的五种约束

  1. 非空(not null) 约束:不能为空;
  2. 主键(PRIMARY KEY)约束:唯一的标识表中的每一行;
  3. 唯一(UNIQUE)约束:每列字段的值不能相同;
  4. 外键(FOREIGN KEY)约束:用来维护从表与主表之间的引用完整性;
  5. 条件(CHECK)约束:表中每行都要满足该约束条件

Oracle和MySQL的区别

1、Oracle是大型数据库,而MySQL是中小型数据库。

2、Oracle的内存占有量非常大,而mysql非常小

3、MySQL支持主键自增长,指定主键为auto increment,插入时会自动增长。Oracle主键一般使用序列。

4、group by用法:MySQL中group by在select语句中可以随意使用,但是在Oracle中如果查询语句中有组函数,那其他列名必须是组函数处理过的或者是group by子句中的列,否则报错。

5、引号方面:MySQL中用双引号包起字符串,Oracle中只可以用单引号包起字符串。

创建索引的优缺点

优点:
索引是数据库优化
表的主键会默认自动创建索引
大量降低数据库的IO磁盘读写成本,极大提高了检索速度
索引事先对数据进行了排序,降低查询是数据排序的成本,降低CPU的消耗
缺点:
索引本身也是一张表,该表保存

http://www.dtcms.com/a/342379.html

相关文章:

  • 【OpenGL】LearnOpenGL学习笔记13 - 深度测试、模板测试
  • 05 ODS层(Operation Data Store)
  • LeetCode算法日记 - Day 18: 只出现一次的数字、只出现一次的数字III
  • 通信工程学习:什么是Template Matching模版匹配
  • iOS 文件管理全景实战 多工具协同提升开发与调试效率
  • Python笔记 第三方库之Pandas的数据组合与缺失数据处理篇
  • 通信工程学习:什么是Camera Calibration相机标定
  • 1000qps怎么保证系统的高可用
  • abc Reachable Set
  • 基于Nodejs作为服务端,React作为前端框架,axios作为通讯框架,实现滑块验证
  • C++ 学习与 CLion 使用:(四)常量和变量,包括字面常量和符号常量
  • 计算机视觉--opencv(代码详细教程)(三)--图像形态学
  • 【框架篇二】FastAPI路由与请求处理
  • javaweb开发笔记——微头条项目开发
  • 零性能妥协:Gearbox Entertainment 通过 AWS 和 Perforce 实现远程开发革命
  • AWS EC2 实例优化检测工具:完整指南与实践
  • WSL的Ubuntu如何改名字
  • AWS Lambda 高并发场景下的错误处理与监控最佳实践
  • 06高级语言逻辑结构到汇编语言之逻辑结构转换 for (...; ...; ...)
  • 一款更适合 SpringBoot 的API文档新选择(Spring Boot 应用 API 文档)
  • 数据结构:构建一棵AVL树需要多少节点(Height VS Nodes in AVL Trees)
  • Claude Code 已支持【团队版】和【企业版】订阅
  • 解析 C 语言整数类型:超越命名的长度奥秘
  • SWMM排水管网水力、水质建模及海绵城市与水环境中的应用
  • 7. if 条件语句的知识与实践
  • 三层交换机
  • CMake2: CMakeLists.txt的常用命令
  • 5.6 element ui
  • 计算机网络技术-第六章
  • STM32 TIM_CtrlPWMOutputs函数