zoukankan      html  css  js  c++  java
  • 【别摸鱼了,来刷题】数据库相关练习题、笔试题

    【快来免费打卡学习】参与方式

    本期计划开始时间:待定,可以先自行打卡,我会定期查看并回复。

    本文文末评论区打卡,需要登录才可以打卡以及查看其他人的打卡记录

    关系数据库(比如mysql)

    练习1:常见sql笔试30题(增、删、改、查):https://www.cnblogs.com/uncleyong/p/14758383.html

    练习2:以mysql为例,单表插入1万条数据,建表的语句:create table test(id int, name varchar(20));

    要求:至少两种方案

    参考答案一(存储过程,不传参&传参):

    -- @Author  : ren168632201
    -- @Blog    : https://www.cnblogs.com/uncleyong/
    
    
    -- 方式一,不传参
    DELIMITER //
    CREATE PROCEDURE insert_data_to_test()
    BEGIN
    SET @i=1;
    WHILE @i<=10000 DO
    	INSERT INTO test(id,name) VALUES(@i,CONCAT("user",@i));
    	SET @i=@i+1;
    END WHILE; 
    END //
    DELIMITER ;
    
    call insert_data_to_test()
    
    
    
    -- 方式一,传参
    DELIMITER //
    CREATE PROCEDURE insert_data_to_test2(in n int)
    BEGIN
    SET @i=1;
    WHILE @i<=n DO
    	INSERT INTO test(id,name) VALUES(@i,CONCAT("user",@i));
    	SET @i=@i+1;
    END WHILE; 
    END //
    DELIMITER ;
    
    call insert_data_to_test2(10000)
    

      

    参考答案二(py):https://www.cnblogs.com/uncleyong/p/10938993.html

    练习3:

    参考答案:

    select distinct t1.id,t1.name 
    form company_org t1,company_org t2 
    where t1.id!=t2.id and t1.name=t2.name 
    order by t1.name desc;
    
    
    select t1.sku_code,sum(stock_quantity) 
    from stock_inquiry t1
    group by t1.sku_code
    having sum(stock_quantity) >0;
    
    
    select t2.sku_code,t1.name,t3.stock_inquiry 
    form company_org t1,sku t2,stock_inquiry t3
    where t1.id=t2.org_id and t2.sku_code=t3.sku_code and t3.stock_quantity is not null;
    

    练习4:一个sql题,查询出grade不一样的人的所有记录

    表stu

    参考答案(基于mysql):

    方式一:

    select * from stu 
    	where name in (
    		select tt.name from (
    			Select t.code,t.name,t.grade  from stu t  group by t.code,t.name,t.grade having count(*)=1) tt);

    方式二:

    select distinct  s.* from stu s  join(
    		select t.code,t.name,t.grade 
    		from stu t 
    		group by t.code,t.name,t.grade 
    		having count(*)=1) s2
    where  s.code = s2.code and s.name=s2.name;

    方式三:(oracle中下面方式写会报错)

    其它参考答案:

    练习5:

    select a.id, b.name, a.course, a.score from A a 
    join B b on a.id= b.id 
    join (select course, max(score) as maxs from A a join B b on a.id= b.id where class= "二班" group by course) c on a.course = c.course and a.score=c.maxs 
    where b.class="二班";
    

    练习6:

    表info有3个字段(name,age,sal),年龄相同的有多个人,查询出相同年龄里面,sal最大的记录。说明:要求是多个年龄一样的排重,取sal最大的即可

    select * from info group by age order by sal asc;

    表info有3个字段(name,age,sal),年龄相同的有多个人,查询出相同年龄里面,sal最大的记录,展示name和sal字段。说明:要求是多个年龄一样的排重,取sal最大的即可

    select t.name,t.sal from (select * from info group by age order by sal asc) t;

    练习7:mysql语法顺序如下,那么其执行顺序是?

    参考答案:

    from
    where
    group by
    having
    select
    distinct
    order by
    limit

    练习8:其它

    InnoDB行锁实现方式?参考:https://mp.weixin.qq.com/s/jPGjfV65wPzli6KGCjnW-A

    innodb如何解决幻读?

    什么是回表?

    B-树的不足?

    B+树如何解决了B-树的不足?

    哪些情况,创建了索引也用不上?

    什么是聚集索引、索引覆盖、索引下推?

    辅助索引的叶子节点为什么不存储数据的指针地址?

    InnoDB、MyISAM的优缺点?

    事务的隔离级别有哪些?分别解决什么问题?

    MVCC的原理?

    主从复制原理?

    什么是自动索引?

    在数据库表里设置完整性约束时,该表会被系统自动创建索引
    

      

    mysql查询缓存,结果存储方式是?

    mysql8以下的版本
    
    执行过的sql语句及其结果以key-value的形式缓存在内存中。key是查询语句,value是查询结果;如果sql在缓存的key中找到,那么对应的value会被直接返回给客户端。
    
    
    8开始,mysql去掉了查询缓存
    

      

    非关系数据库(比如redis)

    练习1:redis批量删除以qzcsbj开头的key

    练习2:什么是缓存穿透、缓存击穿、缓存雪崩?

    练习3:谈谈你对分布式锁的了解

    原文:https://www.cnblogs.com/uncleyong/p/15874340.html

    更多笔试题:https://www.cnblogs.com/uncleyong/p/11119489.html

    ============================= 提升自己 ==========================
    > > > 1、咨询交流,请加微信,备注来意: ren168632201
    > > > 2、【性能测试实战】jmeter+k8s+微服务+skywalking+efk,测试都在学的热门技术: https://www.cnblogs.com/uncleyong/p/15475614.html
    > > > 3、【热门测试技术,建议收藏备用】项目实战、简历、笔试题、面试题、职业规划: https://www.cnblogs.com/uncleyong/p/15777706.html
    > > > 4、【全栈测试题库】常见测试笔试题、面试题汇总(持续更新中。。。): https://www.cnblogs.com/uncleyong/p/11119489.html
    > > > 5、测试基础汇总: https://www.cnblogs.com/uncleyong/p/10530261.html
    > > > 6、声明:如有侵权,请联系删除。
    ============================= 升职加薪 ==========================
  • 相关阅读:
    vs2008支持ajax extender控件
    ComponentArt控件分析之CallBack(1)
    asp.net控件开发技巧(2)关闭基类不必要的功能
    asp.net控件开发技巧(1)使用HtmlTextWriter类规范输出标签
    开了一论坛,专门讨论控件技术
    出来透个气
    道歉
    Kubuntu 9.10 Karmic Koala 预览
    让Nginx 的URL目录自动加斜线”/”
    Nginx的Rewrite正则表达式,匹配非某单词
  • 原文地址:https://www.cnblogs.com/uncleyong/p/15874340.html
Copyright © 2011-2022 走看看