首页 > 数据库 >SQL常见面试题(测试工程师)

SQL常见面试题(测试工程师)

时间:2024-01-20 09:22:07浏览次数:44  
标签:面试题 join name 工程师 外键 score student SQL id

用一条 SQL 语句 查询出每门课都大于 60 分的学生姓名。表 scores 如下

SELECT name,MIN(score) as higt

from student_score ss

group by name

HAVING higt >60

用一条 SQL 语句 查询两门以上不及格课程的同学的学号姓名以及其平均成绩, 并按成绩排序

SELECT student.id ,student.student_name ,AVG(score)

FROM student ,score

WHERE student.id =score .id AND score .score <60

GROUP BY student.id

HAVING COUNT(*)>1

 或者

SQL 中常用的聚合函数都有哪些?

max():最大值  min():最小值   avg():平均值   sum():求和    count():统计总数

 

主键、 外键和索引的区别

1) 定义

主键: 唯一标识一条记录,不能有重复的,不允许为空

外键: 表的外键是另一表的主键,  外键可以有重复的,  可以是空值

索引: 该字段没有重复值,但可以有一个空值

2) 作用

主键: 用来保证数据完整性

外键: 用来和其他表建立联系用的

索引: 提高查询排序的速度

3) 个数

主键: 只能有一个

外键: 一个表可以有多个外键

索引: 一个表可以有多个索引

drop、delete、truncate 三者的区别

都表示删除,但是三者有一些差别,

Delete 用来删除表的全部或者一部分数据行,执行 delete 之后,用户需要提交(commmit) 或者回滚(rollback)来执行删除或者撤销删除。会触发这个表上所有的delete 触发器

Truncate  删除表中的所有数据,这个操作不能回滚, 也不会触发这个表上的触发器, TRUNCATE 比 delete 更快, 占用的空间更小;

Drop 命令从数据库中删除表, 所有的数据行, 索引和权限也会被删除, 所有的 DML 触 发器也不会被触发, 这个命令也不能回滚。

 

列举几种表连接的方式,有什么区别?

左外连接:  左边为主表表数据全部显示,  匹配表的不匹配部分不显示。    left join  on

右外连接:  右边为主表表数据全部显示,  匹配表的不匹配部分不显示。              right     join   on

内连接:  只有两个元素表相匹配的才能在结果集中显示                                        inner  join   on

全外连接:  连接中的不匹配的数据全部会显示出来

交叉连接:  笛卡尔乘积,  显示的结果是连接表数的乘积                                    cross   join  on

 

一、 列出总人数大于 4 的部门编号和该部门人数

select dept_id, count(*)

from employees 

 group by dept_id

 having count(*)>4

二、 列出开发部和测试部的职工号, 姓名

 select e.emp_id,d.emp_name

from employees e 

inner join department d

on e.dept_id = d.dept_id

where d.dept_name in ('开发部','测试部')

另外一种

三、 显示工资最高的前 3 名职工的职工号和姓名 

select e.emp_id, e.emp_name,s.money

from salary s 

inner join employees e on s.emp_id = e.emp_id

order by s.money desc

limit 3

四,列出工资在 1000-2000 之间的所有职工姓名 

select e.empname,s.salary

from salary s

inner join employees e on s.empid = e.empid

where s.salary between 1000 and 2000

 查询出表中相同数据

 

SQL,成绩表中有id和科目,分数,找出每个人最大分数的科目

 

 

 

标签:面试题,join,name,工程师,外键,score,student,SQL,id
From: https://www.cnblogs.com/cyq0528/p/17910903.html

相关文章

  • MySQL连接池最大连接数设置
    默认连接数的选择应该基于你的应用程序的需求以及数据库服务器的性能和配置。 对于大多数小型和中型应用程序来说,10个连接可能是一个合理的起点。然而,如果你的应用程序具有较高的并发性或处理大量数据库操作,你可能需要增加连接数。否则,在高负载时,连接池中的连接可能会快速耗尽......
  • k8s之构建Mysql和Wordpress集群
    一、实验目的基于Kubernetes集群实现多负载的WordPress应用。将WordPress数据存储在后端Mysql,Mysql实现主从复制读写分离功能。1、准备Kubernetes集群环境root@k8s-master01:~#kubectlgetnodesNAMESTATUSROLESAGEVERSIONk8s-master01Re......
  • 代码之外:工程师的成长进阶秘籍
    程序员只懂技术能行吗? 为什么说技术人员“说”和“写”总得擅长一个? 你以为的“关注结果”是真的结果吗? 从一线工程师跃升团队管理者一共分几步? 在不断变化的职场环境中,技术人如何保持竞争力并实现自我增值,是摆在每个人面前的挑战。无论是一线工程师还是技术管理者,如......
  • Linux离线安装MySQL
    在Linux上离线安装MySQL,可以按照以下步骤进行操作:下载MySQL安装包:去MySQL官网下载适合Linux系统的MySQL安装包,选择一个合适的版本和文件格式进行下载。根据gclib安装对应的版本和架构进行选择。将安装包复制到Linux系统中:将下载的MySQL安装包复制到Linux系统中的一个合适的目录,例......
  • pymysql模块
    支持python代码操作数据库MySQL#安装,不用考虑版本pip3installpymysql1 链接、执行sql、关闭(游标) importpymysqluser=input('用户名:').strip()pwd=input('密码:').strip()#链接conn=pymysql.connect(host='localhost',port=3306,user='ro......
  • 工程师姓X“X工”
    工程师姓什么很重要!别再叫我“X工”!!!2022年05月11日09:57137浏览 · 1喜欢 · 1评论 工程师之间都是这么互相打招呼的——“高工,你设计图通过了么?”“李工,代码写完了吗?”“王工,你真是越来越漂亮了!”"张工,你的Bug解决了吗"“周公,Schedule该更新了”“刘工,代码提交......
  • 1.19 _fetchSql() 和 getLastSql() 的用法
    1fetchSql()的用法重要点:语法2getLastSql()的用法删除不掉的原因具有外键的那张表叫:主表,也就是details是主表,internet_bar这个是从表当使用:DELETEFROMbusiness_internet_barwhereid=34;删除表中的数据的时候,会发生下面的错误DELETEFROM`business_in......
  • Mysql Row size too large (> 8126)
    问题描述:Rowsizetoolarge(>8126).ChangingsomecolumnstoTEXTorBLOBorusingROW_FORMAT=DYNAMICorROW_FORMAT=COMPRESSEDmayhelp.Incurrentrowformat,BLOBprefixof768bytesisstoredinline.解决问题有几种潜在的解决方案可以解决这个问题。将表转......
  • Sql Server 创建用户并限制权限
    创建登录名使用sa或者Windows身份验证登录,【安全性】-【登录名】,右键【新建登录名】设置登录名属性设置数据库权限dbowner--拥有数据库全部权限,包括删除数据库权限dbaccessadmin--只给数据库用户创建其他数据库用户的权限,而没有创建登录用户的权限dbsec......
  • SQL Server 清除一个数据库下所有表数据,保留表结构
    用法:在需要清空数据的数据库创建并执行存储过程,该存储过程并不会影响其他数据库❗请小心使用这些脚本,确保在生产环境之前备份您的数据库。⚠️存储过程:CREATEPROCEDUREClearAllTablesASBEGINDECLARE@TableNameNVARCHAR(255)DECLAREtableCursorCURSORFOR......