软件测试之数据库⾯试题
第⼀期:
学⽣表(学⽣id,姓名,性别,分数) )student(s_id, name, sex, score)
班级表(班级id,班级名称) class(c_id, c_name)
学⽣班级表(班级id,学⽣id) student_class(s_id,c_id)
1.查询⼀班得分在80分以上或者等于60,61,62的学⽣
2.査询所有班级的名称,和所有版中⼥⽣⼈数和⼥⽣的平均分。
答案:
企业网站模板源码免费(1)SELECT s.s_id,s.name,s.score,sc.c_id,c.c_name from student s LEFT JOIN student_class sc on s.s_id = sc.s_id LEFT JOIN class c on sc.c_id=c.c_id where (s.score>80 or s.score in(60,61,62)) and c.c_name='⼀班';
(2)SELECT sc.s_id,c.c_name,COUNT(s.sex),AVG(s.score) from student_class sc LEFT JOIN class
c on sc.c_id=c.c_id LEFT JOIN student s on sc.s_id = s.s_id where s.sex='⼥' group BY c.c_name ORDER BY c.c_id asc;
第⼆期:
sql语句应该考虑哪些安全性?
答案:
(1)防⽌sql注⼊,对特殊字符进⾏转义,过滤或者使⽤预编译的sql语句绑定变量。
(2)最⼩权限原则,特别是不要⽤root账户,为不同的类型的动作或者组建使⽤不同的账户。
(3)当sql运⾏出错时,不要把数据库返回的错误信息全部显⽰给⽤户,以防⽌泄漏服务器和数据库相关信息。
第三期:
⽤⼀条 SQL语句查询出每门课都⼤于 80 分的学⽣姓名?
答案:
mysql面试题sql优化select name from student where name not in (select name from student where fenshu <=80);
第四期:
MySQL外连接、内连接的区别?
答案:
内连接
华为平板python编程软件连接的数据表相对应的匹配字段完全相等的连接。连接关键字是 inner join
外连接
分为左外连接与右外连接、全连接。
左连接的结果集包括指定的左表全部数据与匹配的右表数据,右表中没匹配的全为空值.关键字 left join
右连接的结果集包含指定的右表全部数据与匹配的左边数据,左边中没匹配的全为空值.关键字 right join
静态成员函数只能在类外定义吗全连接返回左右数据表的所有⾏.关键字 full join
第五期:
什么是数据库事务?
答案:
单个逻辑单元执⾏的⼀系列操作,这些操作要么全做要么全不做,是不可分割的.事务的开始和结束⽤户是可以控制的,如果没控制则由数据库默认的划分事务.事务具有以下性质:
(1)原⼦性
指⼀个事务要么全执⾏,要么全不执⾏.也就是说⼀个事务不可能执⾏到⼀半就停⽌了.⽐如:你去买东西,钱付掉了,东西没拿.这两步必须同时执⾏ ,要么都不执⾏.
ignore是什么意思中文翻译
(2)⼀致性
指事务的运⾏并不改变数据库中的⼀致性.⽐如 a+b=10;a改变了,b也应该随之改变.
(3)独⽴性
两个以上的事务不会出现交替运⾏的状态,因为这样可能导致数据的不⼀致
(4)持久性
事务运⾏成功之后数据库的更新是永久的
第六期:
union 与union all的区别?
答案:
sqrt函数的编写union 在进⾏表链接后会筛选掉重复的记录,所以在表链接后会对所产⽣的结果集进⾏排 序运算,删除重复的记录再返回结果。
union all 则会显⽰重复结果,只是简单的两个结果合并并返回.所以效率⽐union⾼,在保证没有重复数据的情况下⽤union all.
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论