SQL面试常考试题及答案_第1页
SQL面试常考试题及答案_第2页
SQL面试常考试题及答案_第3页
SQL面试常考试题及答案_第4页
SQL面试常考试题及答案_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

SQL面试常考试题及答案考试时间:______分钟总分:______分姓名:______1.查询“员工表”中“部门ID”为10且“薪资”大于5000的员工姓名和薪资,按薪资降序排列。选项:A.SELECTemp_name,salaryFROMemployeeWHEREdept_id=10ANDsalary>5000ORDERBYsalaryDESC;B.SELECTemp_name,salaryFROMemployeeWHEREdept_id=10ORsalary>5000ORDERBYsalaryDESC;C.SELECTemp_name,salaryFROMemployeeWHEREdept_id=10ANDsalary>5000ORDERBYsalaryASC;D.SELECTemp_name,salaryFROMemployeeWHEREdept_id=10ANDsalary<5000ORDERBYsalaryDESC;2.统计“订单表”中每个“客户ID”的订单总金额,仅显示总金额超过10000的客户ID和总金额。选项:A.SELECTcustomer_id,SUM(order_amount)FROMordersGROUPBYcustomer_idHAVINGSUM(order_amount)>10000;B.SELECTcustomer_id,SUM(order_amount)FROMordersWHERESUM(order_amount)>10000GROUPBYcustomer_id;C.SELECTcustomer_id,SUM(order_amount)FROMordersGROUPBYcustomer_idWHERESUM(order_amount)>10000;D.SELECTcustomer_id,total_amountFROMordersGROUPBYcustomer_idHAVINGtotal_amount>10000;3.从“商品表”中查询“商品类别”为“电子产品”且“库存数量”大于100的商品信息,若“商品类别”为空则不显示。选项:A.SELECT*FROMproductWHEREcategory='电子产品'ANDstock>100ANDcategoryISNOTNULL;B.SELECT*FROMproductWHEREcategory='电子产品'ORstock>100ANDcategoryISNOTNULL;C.SELECT*FROMproductWHEREcategory='电子产品'ANDstock>100ORcategoryISNULL;D.SELECT*FROMproductWHEREcategoryLIKE'%电子产品%'ANDstock>100;4.查询“员工表”中“部门名称”为“研发部”且“入职日期”在2020年之后的员工姓名、部门名称和入职日期,要求使用子查询实现。选项:A.SELECTe.emp_name,d.dept_name,e.hire_dateFROMempeWHEREe.dept_id=(SELECTdept_idFROMdeptWHEREdept_name='研发部')ANDe.hire_date>'2020-01-01';B.SELECTe.emp_name,d.dept_name,e.hire_dateFROMempeJOINdeptdONe.dept_id=d.dept_idWHEREd.dept_name='研发部'ANDe.hire_date>'2020-01-01';C.SELECTe.emp_name,d.dept_name,e.hire_dateFROMempeWHEREe.dept_idIN(SELECTdept_idFROMdeptWHEREdept_name='研发部')ANDe.hire_date>'2020-01-01';D.SELECTe.emp_name,d.dept_name,e.hire_dateFROMempe,deptdWHEREe.dept_id=d.dept_idANDd.dept_name='研发部'ANDe.hire_date>'2020-01-01';5.计算“订单表”中每个客户的“订单数量”和“订单总金额”,并添加“订单等级”字段(总金额≥50000为“高价值”,20000≤总金额<50000为“中价值”,<20000为“低价值”),要求使用窗口函数或`CASEWHEN`实现。选项:A.SELECTcustomer_id,COUNT(order_id)ASorder_count,SUM(order_amount)AStotal_amount,CASEWHENSUM(order_amount)>=50000THEN'高价值'WHENSUM(order_amount)>=20000THEN'中价值'ELSE'低价值'ENDASorder_levelFROMordersGROUPBYcustomer_id;B.SELECTcustomer_id,COUNT(order_id)ASorder_count,SUM(order_amount)AStotal_amount,CASEWHENtotal_amount>=50000THEN'高价值'WHENtotal_amount>=20000THEN'中价值'ELSE'低价值'ENDASorder_levelFROMordersGROUPBYcustomer_id;C.SELECTcustomer_id,COUNT(order_id)ASorder_count,SUM(order_amount)AStotal_amount,RANK()OVER(PARTITIONBYcustomer_idORDERBYSUM(order_amount))ASorder_levelFROMordersGROUPBYcustomer_id;D.SELECTcustomer_id,COUNT(order_id)ASorder_count,SUM(order_amount)AStotal_amount,CASEWHENSUM(order_amount)>=50000THEN'高价值'WHENSUM(order_amount)<50000ANDSUM(order_amount)>=20000THEN'中价值'ELSE'低价值'ENDASorder_levelFROMordersGROUPBYcustomer_id;6.查询“商品表”中“价格”高于同类别商品平均价格的商品信息,包括商品ID、商品名称、类别、价格和同类别平均价格。选项:A.SELECTduct_id,duct_name,p.category,p.price,AVG(p.price)OVER(PARTITIONBYp.category)ASavg_category_priceFROMproductpWHEREp.price>(SELECTAVG(price)FROMproductWHEREcategory=p.category);B.SELECTduct_id,duct_name,p.category,p.price,(SELECTAVG(price)FROMproductWHEREcategory=p.category)ASavg_category_priceFROMproductpWHEREp.price>(SELECTAVG(price)FROMproductWHEREcategory=p.category);C.SELECTduct_id,duct_name,p.category,p.price,AVG(p.price)ASavg_category_priceFROMproductpGROUPBYp.categoryHAVINGp.price>AVG(p.price);D.SELECTduct_id,duct_name,p.category,p.price,AVG(price)OVER(PARTITIONBYcategory)ASavg_category_priceFROMproductpWHEREp.price>AVG(price)OVER(PARTITIONBYcategory);7.设计一个简单的“电商订单系统”数据库表结构,需包含用户表、商品表、订单表、订单详情表,说明各表字段及主外键设计,并说明至少一种范式优化思路。选项:A.用户表:user_id(PK),user_name,phone,address;商品表:product_id(PK),product_name,category_id,price,stock;订单表:order_id(PK),user_id(FK),order_date,total_amount;订单详情表:detail_id(PK),order_id(FK),product_id(FK),quantity,subtotal.B.用户表:user_id(PK),user_name,phone,address;商品表:product_id(PK),product_name,category,price,stock;订单表:order_id(PK),user_id,order_date,total_amount;订单详情表:detail_id(PK),order_id,product_id,quantity,subtotal.C.范式优化:将地址字段拆分为省、市、区,满足1NF。D.范式优化:在商品表中存储类别名称,避免关联分类表。8.现有查询语句`SELECT*FROMordersWHEREuser_id=100ANDorder_date>'2023-01-01'ORDERBYorder_dateDESCLIMIT10`,在数据量达百万级时响应缓慢,请从索引、查询结构、数据库配置三方面提出优化方案。选项:A.在orders表的(user_id,order_date)上创建联合索引。B.将order_date字段转换为字符串类型以便索引生效。C.避免SELECT*,改为查询必要字段。D.调整innodb_buffer_pool_size为物理内存的50%-70%。E.使用LIMIT100000,10进行分页优化。试卷答案1.答案:A解析思路:正确查询语句需使用WHERE过滤部门ID和薪资条件,ORDERBY按薪资降序排列,选项A符合语法要求。2.答案:A解析思路:正确使用GROUPBY分组客户ID,SUM计算总金额,HAVING过滤总金额超过10000的分组,选项A语法正确。3.答案:A解析思路:正确使用AND连接多个条件,包括类别匹配、库存大于100和类别非空,选项A逻辑完整。4.答案:A解析思路:正确使用子查询获取研发部部门ID,外层查询通过部门ID关联员工表,过滤入职日期,选项A符合子查询实现要求。5.答案:A解析思路:正确使用GROUPBY分组客户ID,COUNT和SUM计算订

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论