Java面试

一、数据库

    1、常见的数据库查询修改和数据库加密问题   

     (1)数据库的密码加密:单向加密,insert into users (username,password) values (‘mike’,MD5(‘guessme’));          

      ( 2 ) 双向加密:insert into users (username ,password) values (‘mike’,ENCODE(‘guessme’,’abanaafn’));

      ( 3 ) SQL筛选查询:select * from user where user_id in (select user_id from user group by user_id having count(user_id)>1) order by user_id desc;

     (4)SQL聚合查询:select user_id from user group by user_id;

     (5 )  SQL衔接查询:内连接.select s.name,m.mess from student s inner join mark m on s.id=m.studentid;

       ( 6 ) 左外连接: select s.name,m.mess from student s left join mark m on s.id=m.studentid;

       ( 7 ) 右外连接: select s.name, m.mess from student s right join mark m on s.id=m.studentid;

       ( 8 ) 全外连接: select s.name, m.mess from student s full join mark m on s.id =m.studentid;

       ( 9 ) 球队比赛组合: select count(*) from  department as a, department as  b  a.name<>b,name;

        ( 10 ) sql选择重复语句: select id,name from  user  where id  in (select id  from user  group by id having count(1)>2);

·    (11)sql去除重复的语句: select id from user group by id having count(*)>1;

     (12)数据库优化: preparestatement比statement性能高,一个sql语句发给服务器去执行。执行步骤: 语法检查、语句定义、编译和缓存,

有外键约束会影响插入和删除功能,如果程序能保证数据的完整性,那么设计数据库的时候就去掉外键。sql语句全部大写,特别是表名和列名。

2、 如何实现数据库分页功能? sql语句复杂的关联查询,累计求和 

      (1)在不使用任何框架 情况下,如何连接数据库?

        手动连接数据库:

        Connection cn=null;

        preparestatement pst=null;

        Result rs=null;

        try{

         class.forname(driverClassName);

        cn=DriverManager,getConnection(url,username,password);

        pst=cn.prepareStatement("sql");

        pst.setString(1,studentName);

        rs=pst.executeQuery();

        while(rs.next()){

            system.out.println();

    };

}catch(excrption e){

    e.printStackTrace();

}finally{

    if(rs!=null){

        rs.close();

    }

if(pst!=null){

    pst.close();

if(cn!=null){

    cn.close();

}

(2) 数据库连接完之后,需要关闭的两个接口是什么?

            Result prepareStatement 结果集和sql传输。

(3) 关闭数据最容易抛出的异常是什么?

            Exception

(4)分页: select * from user limit "+(pageNo-1)*pageSize+","pageSize","+pageSize";

(5)求和: select * from user1 union select  * from user2;

3、oracle索引的优缺点、视图和储存过程、连接符是什么? 默认端口是什么? mysql什么是左连接、右连接和内连接? 数据库中查询左连接、右连接和内链接结果是什么?

(1)端口:1521;

(2)内连接就是左表和友表相同的数据。

(3)左外连接就是以左表为准,去匹配右表,左表有多少数据,结果就是多少数据。

(4)右外连接:去匹配左表,右表有多少数据,结果就是多少条数据。

(5)外连接分为:左外连接,右外连接,全外连接

(6)全外连接数据条数不一定,相当与是左外连接和右外连接的综合。

(7) oracle索引分为:聚集索引,非聚集索引,唯一索引;优点:方便查询,在数据量大更易查询,缺点:查询时需要进行重新排序,减少了效率。物理索引缺点    建立索引效率低,只能一个更有说服力的;

(8)连接符为“||"或者concat();

(9)视图:其实就是一条查询sql语句,用于显示一个或多个表或其他视图中的相关数据。视图将一个查询结果作为一个表来使用,因此视图可以被看作是存储的查询或一个虚拟表。视图源于表,所有对视图数据的修改最终都会被反映到视图的基表中,这些修改必须服从基表的完整性约束,并同样会触发定义在基表上的触发器

(10)存储过程:oracle有系统存储过程和自定义存储过程,为了完成特定功能的sql语句集,    经编译后存储在数据库中,用户通过特定的存储过程名来执行 。

(11)存储原理:当用户创建索引时,oracle会自动的在表空间里创建索引段来存储索引数据;   

( 12 ) char里面可以储存汉字吗?

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 一. Java基础部分.................................................
    wy_sure阅读 9,293评论 0 11
  • 什么是SQL数据库: SQL是Structured Query Language(结构化查询语言)的缩写。SQL是...
    西贝巴巴阅读 5,878评论 0 10
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 33,238评论 18 399
  • 说说我的梦想以及实现吧 自从我开始能理性的独立的思考以来(基本就是大学期间),就有了一个梦想,去西藏。有多想去,就...
    空白的间隙阅读 2,444评论 0 2
  • 问世间情为何物,直教生死相许? 曾经以为我们能如天南地北双飞燕,老翅一生寒暑。 如今天涯海角,各自为家。感慨中寄情...
    陈千寻阅读 3,173评论 2 1

友情链接更多精彩内容