diff --git "a/docs/views/dev/2021-11-21-sql \344\270\255\347\232\204\347\274\226\347\250\213.md" "b/docs/views/dev/2021-11-21-sql \344\270\255\347\232\204\347\274\226\347\250\213.md" new file mode 100644 index 00000000..786ead83 --- /dev/null +++ "b/docs/views/dev/2021-11-21-sql \344\270\255\347\232\204\347\274\226\347\250\213.md" @@ -0,0 +1,131 @@ + + +``` +header +layout:post +title:sql编程 +date:2021/11/21 +author:ycr +categories + -后端部 +tags: + -sql +``` + + + +# sql 中的编程 + +## 1.介绍数据库语句与数据库编程 + +1.sql查询语句是数据库语句中的基本语句,也是用的最多的语句,英文就是用select,查询语句使用基本格式 : + +select (查询列名) from 数据表 where 查询条件(group by 分组方式) (order by 排序方式) + +例如: + +Select * from student where sno=”420****” + +而在数据库中也有一些相应的编程语句在其中,方便使用者使用 + +# sql语句中应用的编程内容 + +## 1.变量 + +1.变量:@i,@j等 + +2.临时表:#t,#p + +3.声明变量:declare @i int ,@str char(10) + +意思为声明变量@i为整形,声明变量@str为字符型,长度为10 + +(创建临时表:只需要在表的之前加#即可) + +临时表的含义为:在此次查询中可以使用,如果删除了页面,则表也随之删除 + +## 2.控制语句 + +1.begin end + +此语句代表编程的开始与结束,一般在编程之中的开头与结尾 + +2.if else + +此语句与java等一些编程语言中其意思基本相同,进行条件判断。 + +例如:if(select grade from sc where sno =’200215121’,and cno=’1’)<60 + +Print ‘failed’(print的语句与java中相同,即为输出数据) + +Else + +Print ‘congratulation’ + +3.case + +此语句与if else语句的作用基本相同,但是在多种条件情况下,case语句比if else更好使用 + +例如: + +select sno,cno,rank= + +case + +when grade>=90 then ‘A + +When grade >=75 then B + +When grade >=60 then C + +Else D + + End + + From sc + +4.while + +此语句即为循环语句,其使用与java语句中的while使用方法一样,即为达成条件后即退出循环。 + +# 3.存储过程和函数 + +定义:存储过程和函数是存放在服务器上的预先定义并编译好的SQL语句/程序控制语句的集合,是一个独立的数据对象。 + +优点: + +–执行:仅一次编译,执行效率高 + +–通信:降低Server/Client之间的通信量 + +–维护:集中控制,便于规划维护 + +但对于这种方法基本对于初学者基本不会用到,所以只需要知道其定义就行了 + +# 4.触发器 + +定义:触发器是一种特殊类型的存储过程,主要用于保护数据的完整性。当触发事件出现时,触发器被激活,自动执行预先定义的功能。 + +分类:insert/delete/update 触发器 + +但对于这种方法基本对于初学者基本不会用到,所以只需要知道其定义就行了 + +# 5.游标 + +定义:系统为用户开设的一个数据缓冲区,存放sql语句的执行结果。用户可以用sql语句逐一从游标中获取记录,并赋给主变量,交由主语言进一步处理。 + +即为定义一个指针,进行一条一条记录select。 + +例如: + +declare cur_s CURSOR + +FOR select sno,sname,ssex from student + +OPEN cur_s + +FETCH cur_s INTO @no,@name,@sex + +CLOSE cur_s + +对于数据库而言,游标的作用非常大,其可以一个一个进行查询,结合while循环语句可以达到意想不到的效果。 \ No newline at end of file