当前位置:网站首页 > SQL数据库编程 > 正文

.sql文件有什么用(.sql文件的作用)



面试中有时候会问:存储过程有什么用?看了今天的知识,你就知道如何回答了。

1.存储过程是什么?
假如你每天要开车完成一些列重复的操作:车钥匙启动车,倒车。现在出现了一款新车,可以自动的完成这些重复的工作。每次你上车以后,车就自动帮助你倒出来了。

同样的,在工作里也会经常遇到重复性的工作,这时候就可以把常用的SQL写好存储起来,这就是存储过程。

这样下次遇到同样的问题,直接使用存储过程就可以了,就不需要再重新写一遍SQL了,这就极大的提高了工作效率。

2.如何使用存储过程?

使用存储过程需要:1)先定义存储过程 2)使用已经定义好的存储过程。

(1)无参数的存储过程

定义存储过程的语法形式:


语法里的begin...end用于表示sql语句的开始和结束。语法里面的<sql语句>就是重复使用的sql语句。下面通过一个例子看下如何使用。例如查出“学生表”里的学生姓名。

sql语句是:


把这个sql语句放入存储过程的语法里,并给这个存储过程起个名字叫做就a_stuent1:


下次使用存储过程的用下面sql语句就可以,就不需要重新写一遍sql了。


(2)有参数的存储过程

前面的存储过程名称后面是(),括号里面没有参数。当括号里面有参数时,就是下面的语法:


通过一个案例看下,现在要在“学生表”里查找出指定学号的学生姓名。如果指定学号是0001,那么sql语句是:


现在问题来了,一开始不知道指定学号是哪一个,只有使用的时候才知道业务需求。比如今天要查找学号0001,明天要查找学号002。这时候就需要用到参数,来灵活应对这种情况。把sql语句放入存储过程语法里就是:


其中getNum是存储过程的名称,后面括号里面的num varchar(100)是参数,参数由2部分组成:参数名称是num;参数类型是是varchar(100),这里表示是字符串类型。

存储过程里面的sql语句(where 学号=num)使用了这个参数num。这样在使用存储过程的时候,给定参数的值就可以灵活的按业务需求来查询了。

比如现在要查询学号=0001的学生姓名,那么就在使用存储过程的参数中给出学号的值,也就是下面括号里的0001:


3)默认参数的存储过程

前面的存储过程名称后面是(参数1,参数2),括号里面只包含参数的类型和名字,方便调用。

存储过程还一种情况是有默认参数,是下面的语法。

in 输入参数:参数初始值在存储过程前被指定为默认值,在存储过程中修改该参数的值不能被返回


out输出参数:参数初始值为空,该值可在存储过程内部被改变,并可返回

inout输入输出参数:参数初始值在存储过程前被指定为默认值,并且可在存储过程中被改变和在调用完毕后可被返回

3.有哪些注意事项

1)定义存储过程语法里的SQL语句代码块必须是完整的sql语句,必须用“;”结尾


2)定义不同的存储过程,要使用不同的存储过程名称,相同的存储过程的名字会引起系统报错。

4.存储过程有什么用?

如果业务比较复杂、重复性工作比较多,存储过程会比较实用。

把重复要做的事情整理成一步一步的业务步骤,然后把业务步骤写成sql语句,然后再把sql语句写到存储过程的语法里。就像自动驾驶一样,把可能遇到的状况提前规划好,就不需要自己操纵方向盘,车子就按照我们写的步骤向前开了。

我是猴子,中科院硕士/前IBM高级软件工程师/豆瓣8分《数据分析思维》作者,我和知乎知学堂研职在线联合出品的「数据分析训练营」即将开课,3天带你掌握数据分析实用技巧,包含课程+实战带练,工作提效、升职加薪必备神器!

报名还有独家Excel自学资料领取,点击开启数据分析升职加薪密码:

推荐:

到此这篇.sql文件有什么用(.sql文件的作用)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • goldendb数据库 mysql(goldendb数据库下载)2025-03-02 23:27:05
  • mysql主键,外键(mysql外键必须是另一个表的主键吗)2025-03-02 23:27:05
  • plsql注册码(plsql注册码在哪里填)2025-03-02 23:27:05
  • sql文件转json(sql 转json)2025-03-02 23:27:05
  • sql文件格式化在线(sql语句格式化工具)2025-03-02 23:27:05
  • sql语句中foreach循环(sql中的foreach用法)2025-03-02 23:27:05
  • .sql文件有什么用(数据库.sql文件)2025-03-02 23:27:05
  • pymysql连接数据库失败(pymysql 连接数据库)2025-03-02 23:27:05
  • 数据库增删改查关键字(sql增删改查关键字)2025-03-02 23:27:05
  • mysql主键用uuid(mysql主键用什么类型)2025-03-02 23:27:05
  • 全屏图片