好文档 - 专业文书写作范文服务资料分享网站

Model2-Oracle&JDBC&Hibernate面试题及答案

天下 分享 时间: 加入收藏 我要投稿 点赞

Oralce

DML数据操作语言:insert、update、delete(merge)

DDL数据定义语言:create、drop、alter、truncate、rename DCL数据控制语言:grant DQL数据查询语言:select

Transaction:commit、rollback、savepoint

1、 介绍

存储方式:文件、DB SQL语句的分类

关系型数据库:二维表 SQLPLUS

2、 Select语句 选择、投影、连接

select …… from ……

distinct、算术表达式、字符串拼接||、[’字符串’、”列别名case sensitive、特殊字符如空格”]、NVL(salary,100) [where ……]限制

可以出现列名、表达式、常量、运算符

<=、>=、!=、not between……and、in、like(%匹配0-n,_匹配一个,escape转义)、is (not) null、and、or、not [group by……]

select语句只能出现group by从句中出现的字段或者组函数 Mysql不做限制 [having ……]

对分组后的数据进行进一步限制 [order by ……]

默认asc、desc,select中未出现字段可做排序

单行函数:数据计算、修改条目、控制输出、格式转换

操作字符串lower、nvl、to_char(number,”fmt”)、to_number(char) 多行函数(组函数):select或者having从句 count、avg、min、max、sum

多表:笛卡尔积 join 等值(=)、非等值(运算符)、外连接(+在右边相当于left out join)、自连接(用别名区分同一张表)

子查询:内部查询结束进行外部查询 oracle分页借助rownum实现 select salary from

(select salary,rownum rn from

(select salary from s_emp order by salary) ) where rn between 5 and 10;

数据库设计

实体、属性、关系(one-to-one、one-to-many、many-to-many)

数据库范式:

第一范式:记录唯一、列不可再分

第二范式:非主键列完全依赖主键列,主键唯一 第三范式:非主键列互不依赖

第四范式:禁止非主键列与主键列一对多关系不受约束 第五范式:尽可能细分、排除冗余

3、 Table

建表:表名字母开头、1-30、_/$/#开头、表名不能重复、与保留字不冲突 数据类型:varchar2(可变长20)、char(定长20)、number、number(p,s)、date(sysdate函数)、clob、blob(4G)

Date相关:to_date(date,’fmt’),DD-MON-RR、to_char(char[,’fmt’])、java语言SmpleDateFormat、last_day()、next_day()

约束Constraint:表级约束/行集约束,主键约束primary key、外键约束foreign key references、唯一性约束unique、非空约束not null、check约束 DML

insert into……values ……

delete from …… where (drop、truncate差异?) update …… set …… where

4、 数据库事务

ACID:原子性、一致性、隔离性(事务并发)、持久性 事务开始:第一个DML

事务结束:手动控制commit/rollback、自动提交(DDL、DCL、会话正常结束)、系统异常终止即回滚

事务并发:脏读(读到未提交的数据)、不可重复读(两次读出的记录内容不一致)、幻读(两次读出来的记录条数不一致)

5、 数据库对象

Sequence(配合触发器实现逐渐自增,nextval、currval)

index索引由数据库自动维护(具体数据——rowid)相当于目录 唯一性索引(主键约束或唯一性约束自动创建)

好处:加快检索速度、减少IO、Oracle自动维护索引 view视图

方便检索数据、简单查询得到复杂的结果、数据独立多表检索、相同数据不同视图 简单视图(一个表、DML)、复杂视图(多个表、函数、分组、不能用DML) 创建视图时 with check option:插入或修改需满足定义的约束 with read only:禁止DML

6、 其它

exists 子查询(判断子查询的结果是否存在) not exists

union多条查询语句的并集,不显示重复字段、unionall显示重复、intersect交集、minus

差集

修改表和约束

alter 增删改列、增删约束、enable或disable约束 drop不能回滚、删除空间、约束、索引全部失效 truncate 不能回滚、释放空间、可以恢复

(删表——drop、删数据,可能需要回滚——delete、删数据,不要回滚truncate) rename 重命名

SQL练习

JDBC

1、 JDBC使用

java数据库连接

API分为两部分:java程序员java.sql、javax.sql包、jdbc驱动程序开发人员 Driver:驱动程序

DriverManager:驱动程序的管理类,利用连接字符串测试已注册的一个或多个驱动中哪个可用

Connecton:数据库连接

Statement:数据库的操作对象,PreparedStatement预编译、CallableStatement存储过程等

ResultSet:结果集

DataBaseMetaData(通过Connection获得,isReadOnly),ResultSetMetaData(通过ResultSet获得,rowCount),元数据有关容器本身结构方面的数据 Types:类型 开发步骤:

注册驱动:三种方式(类加载器Class.forName,直接实例化驱动new ,使用java -Djdbc.drivers属性)

建立连接:DriverManager.getConnection()——Driver.connect (PPT19检索连接示意图)

创建Statement:createStatement,preparedStatement 执行SQL:无改变的传至数据库

处理结果集:while(rs.next()){rs.getInt…… setter/getter} 关闭连接:ResultSet、Statement、Connection 2、 高级特性

元数据

事务:事务包含若干条数据库操作,并且保证这些操作具有原子性,可以正确的恢复 ACID

默认自动提交,setAutoCommit(false)——执行若干数据库操作——提交/回滚 并发控制:脏读、不可重复读、幻读 3、2.0核心特性

可滚动、可更新结果集:前后滚动+相对/绝对定位,通过结果集对数据库进行增删改 可更新结果集限制(单表、不能join、包含主键、不能为空、不能有默认值) 批量更新:addBatch、executeBatch

Model2-Oracle&JDBC&Hibernate面试题及答案

OralceDML数据操作语言:insert、update、delete(merge)DDL数据定义语言:create、drop、alter、truncate、renameDCL数据控制语言:grantDQL数据查询语言:selectTransaction:commit、rollback、savepoint
推荐度:
点击下载文档文档为doc格式
5aw327sr6085bn78arf2570pk9t82300b3k
领取福利

微信扫码领取福利

微信扫码分享