数据库考试的错题总结-summary

本文详述了数据库中的SQL语句使用,包括forupdate字句的排他锁、复合索引创建、SQL执行顺序、日期函数及集合操作符的应用。还探讨了视图、索引效率、事务的ACID特性、字符串操作函数以及数据更新约束。通过对错误题目的分析,强调了审题和理解的重要性。
摘要由CSDN通过智能技术生成

悲惨的总结一下考试错题~
吃一堑,长一智。

  1. 带有(for update)字句的select语句可以在表的一行或多行放置排他锁

分析:数据库默认的为共享锁,即多个事务可以同时访问一条数据。排它锁就是指对于多个不同的事务,对同一个资源只能有一把锁,在需要执行的语句后面加上 for update就可以了

  1. 有关索引描述正确的是(可以在多个列上创建复合索引)

分析:什么是复合索引?
索引可以包含一个、两个或更多个列。两个或更多个列上的索引被称作复合索引。
如果某表的某个字段有主键约束和唯一约束,则数据库会自动在相应的约束列上建立唯一索引。创建复合索引应当包含少数几个列,并且这些列经常在select查询里使用。
主键/主码、候选码的例子:假设在学生关系中,没有重名的学生,则“学号”或“姓名”都可作为学生关系的候选码,若选定“学号”作为数据操作的变量,则被选用的候选码称为主键/主码

  1. 对于SQL语句:select 输出的列 from 表名 where 条件 group by 分组 having 分组之后的条件过滤 order by 排序,其执行的顺序应该是(from - where - group by - having - select - order by)
  2. 有sql语句select ename,to_char(HIREDATE-10, 'yyyy-mm-dd') from EMP;,其中HIREDATE是一个date日期类型。

分析:该句正确的原因是参数是一个日期类型。
SYSDATE是Oracle日期常用函数,SYSDATE函数可以得到目前系统的时间。
-10是什么意思?答:天数减了10天。
to_date和to_char分别实现了字符串和时间互转,其代码如下:
select to_date('2004-05-07 13:23:44','yyyy-mm-dd hh24:mi:ss') from dual //字符串转换为日期,其参数必须为字符串!
select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') as nowTime from dual; //日期转化为字符串,其参数必须为日期类型!

  1. nvl函数:nvl(参数1, 参数2)即:若参数1为null,则返回参数2,否则返回参数1。
  2. 在Oracle中,字符串拼接用concat(str1, str2)Oracle特有的连接符是||。SQL中 两个连续的单引号 就是一个引号。SQL中输出字符串用单引号括起来。
  3. Oracle中属于集合操作符的是(union并集运算:去重、minus差集运算、intersect交集运算)
  4. 视图:一个或几个基表或视图中导出的虚表。
  5. 创建索引Create index i_deptno_job on emp(empno, job),错误的索引查询是 (select * from emp where empno=11 or job=‘SALESMEN’)

分析:注意:在创建索引时,如果在where子句中有or操作符或单独引用job列(索引后边的列)则将不会走索引,将会进行全表扫描。

  1. 对小数的操作:ceil()向上取整;round()四舍五入;floor()向下取整

分析:
ceil是天花板的意思,因此要向上取整,floor是地板的意思要向下取整。
round语法格式:ROUND(number,[,decimals])其中number,待处理的数值,decimals,小数点后保留的位数;为负,则从小数点往前截取。与trunc函数不同的是,round函数需要四舍五入。

  1. 数据库Oracle中,通过(Rowid)访问能够以最快的方式访问表中的一行。

分析:oracle数据库的表中的每一行数据都有一个唯一的标识符,或者称为Rowid,在oracle内部通常就是使用它来访问数据的。
rowid是伪列,表示的每行记录在磁盘中存放的物理位置,主要是运用在索引查询中。

  1. SQL中,描述正确的是:
  • sysdate函数返回Oracle服务器的日期和时间;
  • substr函数从字符串指定的位置返回指定长度的字符串。

分析:
round 截取数字格式如下:ROUND(number[,decimals])
其中number是要截取的数字,decimals是指定的位数,按这个来进行截取。若该值为0,则在小数点左侧进行四舍五入;若不为0,则四舍五入到指定的小数位。
add_months日期函数add_months(date, n)
在给定的日期的月份上再加 n 个月,当 n 为负数时,月份减 n。
​date: 给定的日期数据(注意:不能是字符串形的日期,只能是日期数据类型的)
n: 月份要增加的数

  1. 以下哪些事物的特性属于ACID:(原子性、一致性、隔离性、持久性)
  2. lower()是将字符串转换成小写;upper是将字符串转换成大写。
  3. 数据库中有哪些约束类型(主键约束,非空约束,唯一约束,自定义约束,外键约束)。
  4. oracle数据库中字符串数据是区分大小写的。

分析:注意是字符串数据,而不是字符串定义语句。

  1. drop属于DDL数据定义语言。

分析:
DDL是数据定义语言,主要是对表格结构或数据类型的操作,常用的createalterdrop
DML是数据操纵语言,主要有insertupdatedelete

  1. insert语句中不能使用where子句!!!

where这个语句是用在select语句中的,注意!

  1. 多表查询,为了查询结果更全更有意义可以直接做查询,不添加任何连接条件。
    错。

分析:这里连接条件,只要做连接操作了where也算,where也算是连接的条件!

  1. with check option

with check option 分析:
如果创建的视图中带有where等条件,则with check option子句可以保证让你只能在视图的where条件之内对视图进行DML操作。
创建视图的时候with check option选项可以检查一些数据检查,避免脏数据的录入。
对视图进行update或者insert操作时,保证更新或者插入的行满足图中定义的谓词条件
参考文献

反思错题的原因:未认真学习,审题不细心,看错题,没好好记重点,没将要事放第一。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值