【面试必备】除了基本的增删改查外,面试官好问的那些看上去高级但又非常实用的Sql查询语句(以Mysql为例),涵盖视图和存储过程等众多知识点

在平时的面试中,我们经常遇到面试官考我们的SQL功底,当然并不是考我们的基本的增删改查这些简单的SQL,而是那些我们不经常使用的,通常在你原来的公司你不怎么关注但在新公司却常用的语句。这种情况下,如果你回答的好,就等于成功了一半。我有一次就遇到这种面试的题目,让我说出Mysql除了基本的加减乘除平均数这些函数外还有哪些函数,我一听蒙了,本来我们用JPA,原生sql的不是很多的,这就蛋疼了,然后凭借记忆说了几个比如天花板函数ceil,拼接函数concat,以及转大小写的函数upper,lower。但是我看面试官并没有说什么,但我依然对此耿耿于怀,心想一定要好好复习下sql语句这块。本次整理,会涵盖我任为重要的所有的sql语句,如果有不足的地方和需要补充的语句,大家可以在下面留言,我会及时补充上,前人栽树后人乘凉,大家一起来接力吧。

Mysql函数模块

 这个图是从别人的博客里借鉴的,我觉得总结的甚和我心就摘录过来了,源博客地址是https://blog.csdn.net/BF02jgtRS00XKtCx/article/details/109733185

我们拣选几个经典的进行一些练习

SELECT NOW() FROM `test` WHERE id=2  // 取当前日期时间的字符串   举一反三 CURDATE()  CURTIME()  就是  当前的日期  和当前的时间

在这里插入图片描述

SELECT DATEDIFF(NOW(),"2020-11-01")   // 两个日期字符串之间的天数间隔

在这里插入图片描述

视图模块
  • 创建单表视图
    这个没什么好说的 创建后的视图可以像表一样进行查询
    在这里插入图片描述
    在这里插入图片描述
  • 创建的视图
    在这里插入图片描述

需要注意的是 这里的查询和更新操作只能是视图中的字段,视图中就是相当于一个表了。可以有id 也可以没有,如上图可知。同样的,创建多表视图就是基于一个多表查询,然后结果当成一个视图。

查看视图信息
在这里插入图片描述
另外,下面这两个语句也可以查询视图

desc view_name;

select * from view_name;
drop view view_name;  // 删除视图  
create or replace view view_name as 查询语句; // 修改视图
  • 个人来看,这个视图在实际的应用中应用的不是很广泛,它只不过是查询语句的一个变形,在频繁使用一些固定的查询中可以提高效率。

提醒: 创建视图后如果更改视图中的内容或者表中的内容,视图对应的位置的内容也会更改。因此建议谨慎对待视图的更改。

存储过程
  • 定义

存储过程(Stored Procedure)是一种在数据库中存储复杂程序,以便外部程序调用的一种数据库对象

  • MYSQL 存储过程关键语法
DELIMITER $$ 或 DELIMITER //声明存储过程
CREATE PROCEDURE test(IN p_in int) //存储过程开始和结束符号:
BEGIN .... END    //变量赋值:
SET @p_in=1  //变量定义:
DECLARE l_int int unsigned default 4000000; //创建mysql存储过程、存储函数:
create procedure  //存储过程体:
create function  //存储函数名(参数)

(未完待续)

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

朝不见暮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值