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、声明:如有侵权,请联系删除。
    ============================= 升职加薪 ==========================
  • 相关阅读:
    [LeetCode 1029] Two City Scheduling
    POJ 2342 Anniversary party (树形DP入门)
    Nowcoder 106 C.Professional Manager(统计并查集的个数)
    2018 GDCPC 省赛总结
    CF 977 F. Consecutive Subsequence
    Uva 12325 Zombie's Treasure Chest (贪心,分类讨论)
    Poj 2337 Catenyms(有向图DFS求欧拉通路)
    POJ 1236 Network of Schools (强连通分量缩点求度数)
    POJ 1144 Network (求割点)
    POJ 3310 Caterpillar(图的度的判定)
  • 原文地址:https://www.cnblogs.com/uncleyong/p/15874340.html
Copyright © 2011-2022 走看看