Java笔试总结(SQL)

1、现有余额表balance(userName,balance),程序会对相同的userName做并非扣款操作,但是必须保证余额表的余额大于0。

例如余额表有一条记录zhangsan的余额为10元,扣款5元成功,扣款11元失败。

现有开发写的sql如下:

update balance = balance -(扣款金额)where userName =‘zhangsan’;

请问:上面写的sql在并非场景会出现什么问题?请尝试写出正确的sql

2、有三个redis,每个redis分配8GB内存,请设计一个get和 put方法,使put操作能比均匀的分配数据到三个redis 中, get能正确的获取数据。如果再增加一个redis,从3个redis变成4个 redis,怎么动态的扩容。

3、用一条SQL语句查询出每门课都大于80分的学生姓名

4、写SQL

(1)

为了便于阅读,查询此表后的结果显式如下(及格分数为60):

(2)

怎么把这样一个表儿:

查成这样一个结果:

(3)

客户表t_cust: custName 为“客户名称” ,usableSum 为“可用余额”,mobilePhone 为“客户电话”

订单表t_order: orderAmount 为客户订单金额

其中t_cust表中的id字段和t_order表的custid字段互为主外键。请写一个SQL语句,查询客户id为375,10,709,16的订单次数由大到小的顺序排列,查询结果为:客户名,客户电话,客户可用余额,客户订单次数

(4)

已知关系模式:

DEPT(DNO,DNAME)部门关系。DNO为部门编号,DNAME为部门名称

EMP(ENO,ENAME,JOB,SALARY,DNO)员工关系。ENO为员工编号,ENAME为姓名,JOB为工作,SALARY 为薪资,DNO为所属部门编号。

1.列出每个部门JOB为'CLERK'的员工的最低工资,最高工资

2.如果某一部门,存在多于1人工资高于公司平均水平,列出部门号,人数,平均工资,按部门号排序

(5)grade表

namecourcescore
张三语文81
张三数学75
李四语文76
李四数学90
王五语文81
王五数学100
王五英语90

1.查询每门课都大于80分的同学的姓名:


2.查询平均分大于80的学生名单:

(6)student表

idstudent-idnameclass-idclassnamescore
12005001张三0001数学69
22005002李四0001数学89
32005001张三0001数学69

1.删除除了ID不同,其他都相同的学生冗余信息。
        

(7)表名:team

ID(numbar型)Name(varchar2型)
1a
2b
3b
4a
5c
6c

要求:执行一个删除语句,当Name列上有相同时,只保留ID这列上值小的

例如:删除后的结果应如下:

ID(numbar型)Name(varchar2型)
1a
2b
5c

请写出SQL语句。

5、公司每天要进行打卡上班,每个人每天也可以多次打卡,所有打卡信息会记录到表A 中,表A中有name,date,time等字段。

a.要统计今天迟到的人的名单,请写出相应的SQL。

b.每月会统计迟到次数排行前十的人的名单,请写出相应的SQL。

6、写出一条Sql语句:取出表A中第10000到第10050记录(以自动增长的ID作为主键,注意:ID可能不是连续的,使用熟悉的数据库即可)

7、有数据库设计图如下:

请写出如下查询要求的查询语句:

(1)返回没有购买产品并且位于客户表格上的人的姓名及其客户ID

(2)查看所有客户购买过的产品以及购买数量,列出客户名称、产品名称、购买数量。

8、A公司下面有很多部门,部门下面有一个负责人,很多员工,负责人和员工都可能被换到其他部门,系统需要知道该员工什么时间曾经在哪个部门,并保留员工在系统中的历史记录。不考虑分布式情况,用UML设计类图容纳该公司组织结构和员工,并映射为数据库设计图。

9、地区表T_BasicArea有三个字段id地区代码,parentid上级地区代码,text地区名称。写一个查询语句查出:宝安区 所有上级地区列表

10、数据库中有表t1、t2,这三张表结构如下:

t1 (客户委托记录表):

fund_account客户账号

business_amount委托数量

t2(客户经纪关系表):

fund_account客户账号

broker_account经纪人账号

(注:一个经纪人可能对应多个客户账号)

请编写一条SQL语句统计每个经纪人所辖客户的委托数量汇总情况。

输出:经纪人账号、委托数量汇总、委托数量汇总排名

11、数据库表结构如下

Student(S#,Sname,Ssex)学生表

Course(C#,Cname,T#)课程表

SC(S#,C#,score)成绩表

Teacher(T#,Tname)教师表

试用SQL语句描述

A:查出学生“小张”所选的所有课程。

B:查出选修课程“数学”且成绩及格的学生 。

C:删除学生“小王”的所有成绩记录。

12、表Test(ID,A1,A2)的数据如下

用SQL语句找了所有A1和A2重复的记录

13、根据以下叙述画出数据库表设计图(E-R图)

假设公司有户外协会等7个员工业余兴趣协会,每个协会设立1到3名会长,协会不定期组织业余活动,每次活动结束后,会长会指定一名参与者总结一篇新闻稿。

14、关于登录权限的数据表设计。

场景:项目开发初期阶段需要设计用户登录权限相关的数据表,用户登录成

功后看到相应授权的菜单。请简要说明该功能共需要设计几张表,每张表的设计

目的?

15、现有班级表c_class,学生表t_student,请用SQL查询出每一个班级的学生数量是多少?查询结果含班级名称、学生数量。

Idclass-name
1A班
2B班
3C班
Idc-idnamesex
11张三
23李四
32王五
43赵六

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值