当前位置:首页 » 编程语言 » javasql面试

javasql面试

发布时间: 2022-06-16 00:21:45

java面试sql题,跪求大神解答

SELECTTOP10u.name,u.age,allin=isnull((SELECTsum(t.number*p.buyprice)FROMTEST_PRODECTp,TEST_TREEDt
WHEREp.type=t.ptypeANDt.uid=u.useridANDt.BUY_OR_SALE='BUY'),0),
allout=isnull((SELECTsum(t.number*p.saleprice)FROMTEST_PRODECTp,TEST_TREEDt
WHEREp.type=t.ptypeANDt.uid=u.useridANDt.BUY_OR_SALE='SALE'),0)
,
realin=(isnull((SELECTsum(t.number*p.buyprice)FROMTEST_PRODECTp,TEST_TREEDt
WHEREp.type=t.ptypeANDt.uid=u.useridANDt.BUY_OR_SALE='BUY'),0)-isnull((SELECTsum(t.number*p.saleprice)FROMTEST_PRODECTp,TEST_TREEDt
WHEREp.type=t.ptypeANDt.uid=u.useridANDt.BUY_OR_SALE='SALE'),0))
FROMTEST_USERu
ORDERBY(isnull((SELECTsum(t.number*p.buyprice)FROMTEST_PRODECTp,TEST_TREEDt
WHEREp.type=t.ptypeANDt.uid=u.useridANDt.BUY_OR_SALE='BUY'),0)-isnull((SELECTsum(t.number*p.saleprice)FROMTEST_PRODECTp,TEST_TREEDt
WHEREp.type=t.ptypeANDt.uid=u.useridANDt.BUY_OR_SALE='SALE'),0))DESC
第2题答案
经过测试无误

Ⅱ java 。数据库,面试题,如下图,求SQL

select 姓名, sum(成绩) as 总成绩
from ...
group by 姓名
order by 总成绩

Ⅲ java面试题的sql查询题

这个根据不同企业,不同设计师的命名规范来的,通常设计师都希望看其名知其意

Ⅳ java,oracle面试题,如下,sql怎么写

如题我先进行分析:

  1. 第一句话中按月找出平均 填写时间大于3天的人员信息 :

    那么可用理解为 根据月份查找 员工平均延迟填写日期大于3天的 人员信息。

  2. 第二句话一个人员的日志填写日期有多条则取最早的一条,如果有一天未填写,则取系统当前时间,不含小时。

    以上这句话需要注意两点 第一点,取最早的一条此处需要用到ROW_NUMBER() OVER() 以及未填写 则取系统当前时间 不含小时 那么取值格式应为yyyy-mm-dd此处需要处理格式。

根据以上分析提供如下SQL: 注:(以下SQL已ORACLE为例)

--创建临时表存储数据
withemp_logas(
select1asempno,'张一'asempname,'工作内容1'asworkcontent,date'2017-03-20'asbegdate,date'2017-03-23'asentrydate,1asnumfromal
unionall
select1asempno,'张一'asempname,'工作内容2'asworkcontent,date'2017-03-20'asbegdate,date'2017-03-23'asentrydate,2asnumfromal
unionall
select1asempno,'张一'asempname,'工作内容3'asworkcontent,date'2017-03-20'asbegdate,date'2017-03-24'asentrydate,5asnumfromal
unionall
select1asempno,'张一'asempname,'工作内容1'asworkcontent,date'2017-03-24'asbegdate,date'2017-03-30'asentrydate,8asnumfromal
unionall
select2asempno,'张二'asempname,'工作内容21'asworkcontent,date'2017-03-20'asbegdate,date'2017-03-30'asentrydate,8asnumfromal
unionall
select2asempno,'张二'asempname,'工作内容22'asworkcontent,date'2017-03-25'asbegdate,date'2017-03-28'asentrydate,8asnumfromal
unionall
select3asempno,'张三'asempname,'工作内容31'asworkcontent,date'2017-03-20'asbegdate,nullasentrydate,nullasnumfromal
unionall
select3asempno,'张三'asempname,'工作内容32'asworkcontent,date'2017-03-20'asbegdate,nullasentrydate,nullasnumfromal
unionall
select4asempno,'张四'asempname,'工作内容42'asworkcontent,date'2017-03-25'asbegdate,date'2017-03-28'asentrydate,8asnumfromal
)
select*from(
selectempno,empname,sum(num)num,sum(yanci)/count(empno)pingjunyanci--获取人员当月总延迟数除去当月人员每日的打开数计算出当月每天的平均延迟天数
from(selectROW_NUMBER()OVER(PARTITIONBYe.empno,e.begdateORDERBYe.empno,e.begdate)ASRN,--排序获取当天有多条记录并在后面条件中获取第一条
e.empno,e.empname,
e.workcontent,e.begdate,
e.entrydate,
e.num,
(nvl(e.entrydate,to_date(to_char(sysdate,'yyyy-mm-dd'),'yyyy-mm-dd'))-begdate)asyanci--判断如果没有填写结束日期那么以系统当前日期进行运算延迟日期
fromemp_loge)e1
wheree1.rn=1--获取第一条
andto_char(begdate,'yyyy-mm')='2017-03'--可用的月份条件
groupbyempno,empname,numorderbyempno--根据人员工号、人员姓名分组汇总
)e2wheree2.pingjunyanci>3;

--分析不易忘认真阅读后采纳,有其他问题请追问我。

Ⅳ java面试题求助

第一个问题:select a.姓名,a.薪水,b.薪水级别,count(b.Salclass) from (select * from 员工表 where empid=1) a left join 薪水级别表 b on a.EmpSal = b.MaxSal
楼主可以试一下。我提供点思路。平均工资我没想明白。一个人的平均工资怎么求。。。

第二题就是一个设计模式只要满足它的要求就行比如:
public class Singleton {
private Singleton(){}
//在自己内部定义自己一个实例,是不是很奇怪?
//注意这是private 只供内部调用
private static Singleton instance = new Singleton();
//这里提供了一个供外部访问本class的静态方法,可以直接访问
public static Singleton getInstance() {
return instance;
}
}

Ⅵ java开发面试难吗应该注意啥

与正常面试一样,首先需要进行自我介绍、所学专业、在校期间参加的比赛以及项目经验,其中项目经验是最重要的,因为java开发主要就是技术支持,如果你写过好的程序相应的也得过一些奖励,不过这些奖励最好是有点代表性的,比如ACM地区赛、国家赛这类的,势必会对你的面试有所帮助
无论你是否为学计算机、软件开发等专业的学生,面试官都会问你为什么会选择IT行业,如果你是女生,开发本来就是重男轻女的活,面试官可能会问压力方面、今后婚姻方面以及你将如何在同行业中获得竞争优势等等一系列问题;
之后就是考专业性的了,会不会JSP框架,继承这个类那个类有什么区别,Java中的IO类怎么怎么样的,或者说是如果让你开发软件你该怎么进行设计等,口头上考的专业性的东西应该不太多,因为正常开发都会有笔试,除非是面试特别高端的企业(比如IBM)。
对了,有笔试的话如果你的笔试成绩不错那还好,如果笔试成绩打的擦边球,那面试官就会以你专业性不够扎实对你进行刁难,这个有点准备。

Ⅶ Java面试题,基本都是Java基础题目,大家看看咋做

以Oracle为例吧
Statement为一条Sql语句生成执行计划,
如果要执行两条sql语句
select colume from table where colume=1;
select colume from table where colume=2;
会生成两个执行计划
一千个查询就生成一千个执行计划!

PreparedStatement用于使用绑定变量重用执行计划
select colume from table where colume=:x;
通过set不同数据只需要生成一次执行计划,可以重用

是否使用绑定变量对系统影响非常大,生成执行计划极为消耗资源
两种实现 速度差距可能成百上千倍

1.PreparedStatement是预编译的,对于批量处理可以大大提高效率.也叫JDBC存储过程

2.使用 Statement 对象。在对数据库只执行一次性存取的时侯,用 Statement 对象进行处理。PreparedStatement对象的开销比Statement大,对于一次性操作并不会带来额外的好处。

3.statement每次执行sql语句,相关数据库都要执行sql语句的编译,preparedstatement是预编译得,preparedstatement支持批处理
4.PreparedStatement对象不仅包含了SQL语句,而且大多数情况下这个语句已经被预编译过,因而当其执行时,只需DBMS运行SQL语句,而不必先编译。当你需要执行Statement对象多次的时候,PreparedStatement对象将会大大降低运行时间,当然也加快了访问数据库的速度。
5.执行许多SQL语句的JDBC程序产生大量的Statement和PreparedStatement对象。通常认为PreparedStatement对象比Statement对象更有效,特别是如果带有不同参数的同一SQL语句被多次执行的时候。PreparedStatement对象允许数据库预编译SQL语句,这样在随后的运行中可以节省时间并增加代码的可读性。
第一:
prepareStatement会先初始化SQL,先把这个SQL提交到数据库中进行预处理,多次使用可提高效率。
createStatement不会初始化,没有预处理,没次都是从0开始执行SQL

第二:
prepareStatement可以替换变量
在SQL语句中可以包含?,可以用ps=conn.prepareStatement("select* from Cust where ID=?");
int sid=1001;
ps.setInt(1, sid);
rs = ps.executeQuery();
可以把?替换成变量。
而Statement只能用
int sid=1001;
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("select * from Cust where ID="+sid);
来实现。

第三:
prepareStatement会先初始化SQL,先把这个SQL提交到数据库中进行预处理,多次使用可提高效率。
createStatement不会初始化,没有预处理,没次都是从0开始执行SQL

1. truncate和 delete只删除数据不删除表的结构(定义) drop语句将删除表的结构被依赖的约束(constrain),触发器(trigger),索引(index); 依赖于该表的 存储过程/函数将保留,但是变为invalid状态. 2.delete语句是dml,这个操作会放到rollback segement中,事务提交之后才生效;如果有相应的trigger, 执行的时候将被触发. truncate,drop是ddl, 操作立即生效,原数据不放到rollback segment中,不能回滚. 操作不触发 trigger. 3.delete语句不影响表所占用的extent, 高水线(high watermark)保持原位置不动 显然drop语句将表所占用的空间全部释放 truncate 语句缺省情况下见空间释放到 minextents个 extent,除非使用reuse storage; truncate 会将高水线复位(回到最开始). 4.速度,一般来说: drop> truncate > delete 5.安全性:小心使用drop 和truncate,尤其没有备份的时候.否则哭都来不及. 使用上,想删除部分数据行用delete,注意带上where子句. 回滚段要足够大. 想删除表,当然用drop 想保留表而将所有数据删除. 如果和事务无关,用truncate即可. 如果和事务有关,或者想触发trigger,还 是用delete. 如果是整理表内部的碎片,可以用truncate跟上reuse stroage,再重新导入/插入数据/

Ⅷ 面试java程序员,PL/SQL学到什么程度可以过关

既然是Java程序员,CRUD语句熟悉,一些关联查询,基本的存储过程和触发器知道就行了,不用太深

Ⅸ 面试Java开发时问到高并发怎么处理的,还有sql优化有哪些办法,有哪位大神知道啊,新手!!

Java开发高并发的处理方法:

  1. 最基础的地方做起,优化我们写的代码,减少必要的资源浪费


    避免频繁的使用new对象,对于整个应用只需要存在一个实例的类,我们可以使用单例模式。对于String连接操作,使用StringBuffer或StringBuilder,对于工具类可以通过静态方法来访问。


    避免使用错误的方式,尽量不用instanceof做条件判断。使用java中效率高的类,比如ArrayList比Vector性能好。

  2. 图片服务器分离


    对于web服务器来说,图片是最消耗资源的,于是我们有必要把图片与页面进行分离,我们把图片放到独立的图片服务器。这样的架构可以降低提供页面访问请求的服务器系统压力,并且可以保证系统不会因为图片的问题而崩溃。在图片服务器上,我们可以对不同的配置进行优化。

  3. 缓存


    具体接触过的缓存机制是hibernate的缓存机制。为了避免每次都向数据库中取得数据,我们把用户常常访问到的数据放到内存中,甚至缓存十分大的时候我们可以把内存中的缓存放到硬盘中。还有高级的分布式缓存数据库使用,都可以增加系统的抗压力。

  4. 分批传送

在做某项目的时候,一次传递的参数太多,而且数据库规定一次最多传递的参数最多是三万条,当时有五万条记录,那怎么传送呢?最终是分批传送,电梯里一次乘不下那么多的人,会报超重的bug,那就分批把人送上去。

还有一次在考试系统中,如果那么多的考试人员同时提交到数据库中,数据库的压力增大,有时会被down掉,当时采用的方法是使用ajax异步传输,没有等待考生点击提交按钮的时候,就把考生的答案自动提交,这样也避免了突然断电考生前面做过的题出现丢失的现象。

DB优化

  • 在数据库设计的时候就要考虑到后期的维护,数据库三范式是我们设计数据库索要遵循的原则。

  • 索引的建立:建立索引要适当,如果一个表经常用来被查询,对于增加和修改很少被用到,我们就可以为这个表建立索引,因为对于增加和修改和删除操作时,我们对索引的维护要大大超过索引给我们带来的效率。

  • 表字段的类型选择要恰当。包括字段的长度、类型等,要根据实际存储的数据进行选择,长度不要过长,否则会影响效率。

  • 外键要慎用,因为主键代表这一张表,而外键代表一群表,对表之间进行了关联,在删除修改等需要我们关联。

  • 在数据库操作上。 尽量使用prepareStatement,少用Statement,因为PrepareStatement是进行预编译的。

    connection设置为readOnly,Connection是对书库连接,属于重量级,我们使用即可。

    连接池的使用,我们可以修改数据库默认的连接数。

Ⅹ JAVA和SQL面试题

(2)查询B列中长度大于2的记录,结果为
A B

1 abc

可能么? 1对应a 而不是abc

--> 生成测试数据: @T
DECLARE @T TABLE (A INT,B VARCHAR(3))
INSERT INTO @T
SELECT 1,'a' UNION ALL
SELECT 2,'b' UNION ALL
SELECT 3,'abc' UNION ALL
SELECT 4,'c' UNION ALL
SELECT 5,'a' UNION ALL
SELECT 6,'b' UNION ALL
SELECT 7,'ba'

--SQL查询如下:

select min(A) as A,B from @T group by B having count(*) > 1

select * from @T where len(B) > 2

select * from @T where B like '%A%' and B like '%B%'

/*
A B
----------- ----
1 a
2 b

(2 行受影响)

A B
----------- ----
3 abc

(1 行受影响)

A B
----------- ----
3 abc
7 ba

(2 行受影响)
*/

热点内容
压缩机消音罩 发布:2025-02-12 02:37:41 浏览:528
javawsdl2java 发布:2025-02-12 02:25:21 浏览:366
java默认权限 发布:2025-02-12 02:25:20 浏览:655
算法预测用户 发布:2025-02-12 02:24:44 浏览:390
旧电脑搭建网络打印服务器 发布:2025-02-12 02:09:45 浏览:648
c语言顺序表基本操作 发布:2025-02-12 02:09:41 浏览:887
安卓光遇怎么开三档画质华为 发布:2025-02-12 01:55:51 浏览:193
微信哪里能找到登陆游戏的密码 发布:2025-02-12 01:54:22 浏览:591
php获取服务器ip地址 发布:2025-02-12 01:54:12 浏览:578
对象存储和nas哪个好 发布:2025-02-12 01:50:34 浏览:445