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表
name | cource | score |
张三 | 语文 | 81 |
张三 | 数学 | 75 |
李四 | 语文 | 76 |
李四 | 数学 | 90 |
王五 | 语文 | 81 |
王五 | 数学 | 100 |
王五 | 英语 | 90 |
1.查询每门课都大于80分的同学的姓名:
2.查询平均分大于80的学生名单:
(6)student表
id | student-id | name | class-id | classname | score |
1 | 2005001 | 张三 | 0001 | 数学 | 69 |
2 | 2005002 | 李四 | 0001 | 数学 | 89 |
3 | 2005001 | 张三 | 0001 | 数学 | 69 |
1.删除除了ID不同,其他都相同的学生冗余信息。
(7)表名:team
ID(numbar型) | Name(varchar2型) |
1 | a |
2 | b |
3 | b |
4 | a |
5 | c |
6 | c |
要求:执行一个删除语句,当Name列上有相同时,只保留ID这列上值小的
例如:删除后的结果应如下:
ID(numbar型) | Name(varchar2型) |
1 | a |
2 | b |
5 | c |
请写出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查询出每一个班级的学生数量是多少?查询结果含班级名称、学生数量。
Id | class-name |
1 | A班 |
2 | B班 |
3 | C班 |
Id | c-id | name | sex |
1 | 1 | 张三 | 男 |
2 | 3 | 李四 | 男 |
3 | 2 | 王五 | 男 |
4 | 3 | 赵六 | 女 |