期末速成数据库极简版【分支循环函数】(4)

目录

全局变量&局部变量

局部变量定义declare

局部变量赋值select

局部变量赋值select

【1】分支结构IF

【2】分支结构CASE

简单CASE语句

搜索CASE语句

【3】循环结构While 

【4】系统函数

常用字符串函数

时间函数

【5】自定义函数—标量函数 

函数创建

函数调用

【6】自定义函数—内嵌表值函数

函数创建

函数调用


  • 语法
  • 注意事项
  • 举例
  • 与C语言差别就是把花括号{ } ,变成了begin end语句块,其他均差不多

 

全局变量&局部变量

 @@全局变量

  • 全局变量由系统提供且预先声明的变量。
  • 全局变量的使用: 用户只能读取,不能修改
  • 引用全局变量时,变量名前一定要加上@@标记
  • 输出全局变量可以采用SELECT或者PRINT命令。

@局部变量 

  • 局部变量由用户根据需要定义,用于保存临时数据或由存储过程返回的结果。
  • 局部变量的使用: 引用局部变量时,变量名前一定要加上@标记
  • 采用DECLARE命令定义declare
  • 采用SET或者SELECT命令赋值select
  • 输出局部变量可以采用SELECT或者PRINT命令。select  print

局部变量定义declare

局部变量的定义:局部变量是由用户采用declare命令定义。

DECLARE  @ 变量名  数据类型   [,… n]  

  • 一次可以声明多个变量,变量之间用逗号隔开;
  • 声明时可不赋初值,此时均初始化为NULL;
  • 声明时也可以根据需要赋初值。

例: DECLARE    @A   CHAR(20)

DECLARE    @f  float,@cn  CHAR(8)=‘aa’ 

局部变量赋值select

局部变量赋值:局部变量可以在定义变量的同时赋值,也可以定义后采用SET或者SELECT命令赋值。

  • 格式一:定义变量的同时赋值

例: DECLARE    @A   int=888

  • 格式二:SET 赋值

语法具体为: SET  @变量名 = 表达式

DECLARE  @a char(30),@b int      

SET  @a = 'This is my test'        

SET  @b=999

注:SET语句一次只能给一个变量赋值

局部变量赋值select

  • 格式三: SELECT 赋值

语法具体为: SELECT  @变量名 = 表达式 [,…n ]

例: DECLARE  @a char(30),@b int        

SELECT  @a = 'This is my test',@b=999  

注:SELECT语句可同时为多个变量赋值。

【1】分支结构IF

 

--【例1】 对给定学号进行查询,如果其平均成绩不及格的则打印学号和平均成绩,否则打印学号即可declare @sno char(12),@avgrade numeric(3,1) 
set @sno='6310910329'
select @avgrade=avg(grade)
from scores
where sno=@sno
if @avgrade<60
begin
print @sno
print @avgrade
end
else
begin
print @sno
end
--【例2】 对给定学号进行查询,运用多分支IF句型实现分等级打印学生成绩。declare @sno char(12),@grade float(10)
set @sno='6310910329'
select @grade=grade
from scores
IF @grade>=90.0   
begin 
PRINT '优秀' 
print @grade
end
ELSE IF @grade>=80.0  
begin 
PRINT '良好'
print @grade
end
ELSE IF @grade>=70.0  
begin
PRINT '中等'
print @grade
end
ELSE IF @grade>=60.0 
begin 
PRINT '及格'
print @grade
end
ELSE   
PRINT '不及格'

【2】分支结构CASE

简单CASE语句

--【例1】查询教师姓名、职称以及职称等级。其中职称等级对应规则为:
--教授与副教授为高级;讲师为中级;助教为初级;其它为不清楚。
--select teachername,profession,
--case profession
--when '教授' then  '高级'
--when '副教授' then  '高级'
--when '讲师' then  '中级'
--when '助教' then  '初级'
--else '不清楚'
--end as 职称等级
--from teacher;

搜索CASE语句

--【例2】查询grade表中的学号、课程号以及成绩等级。其中成绩等级对应规则为:
--成绩>=90,等级为“优”;
--成绩>=80,等级为“良”;
--成绩>=60,等级为“及格”;
--成绩<60,等级为“不及格”。
select sno,grade,course,--逗号千万不要忘记
case
when grade >=90 then '优'
when grade >=80 then '良'
when grade >=60 then '及格'
when grade< 60 then '不及格'
end as 等级
from scores

【3】循环结构While 

看的懂即可,和C语言差不多 

 

【4】系统函数

进入函数,函数和C语言也一样,分为系统函数和用户自定义函数(个人创建)

常用字符串函数

  • ltrim(x)函数用于去掉字符串x开头的所有空格字符。
  • rtrim(x)函数用于去掉字符串x结尾的所有空格字符。
  • left(x,n)函数返回字符串x的前n个字符。
  • right(x,n)函数返回字符串x的后n个字符。
  • substring(x,start,length)函数返回从字符串x的第n个位置开始获取length长度的字符串。
  • concat(x1,x2,….)函数用于将x1、x2等若干个字符串连接成一个新字符串。
--【例1】将字符串' 中 国 '作为参数,观察两个函数的返回结果。
select ltrim('  中国')
select rtrim('中国   ')
select left('中国',1)
select right('中国',1)
select substring('我爱中国',1,2)
select concat('我爱','中国')

 

时间函数

  • GETDATE()函数返回当前系统日期和时间。(无参数)          
  • YEAR(date)函数返回表示指定日期中的年份。(有参数)
--【例2】采用系统函数返回当前系统日期和时间以及当前的年份。
select GETDATE(),YEAR(GETDATE())

 

【5】自定义函数—标量函数 

  • 标量型函数只能返回单个值。
  • 只能是输入参数,不能有输出参数,所有输入参数前加@
  • create后返回,单词是returns,不是return
  • returns 后面是返回值的变量类型
  • 在函数体中式 return

函数创建

函数调用


 🙂

--【例1】创建一个名为get_name_fn()的函数,该函数的功能是为根据学生学号查询学生姓名。并且调用
--【例2】创建一个函数get_name_fn(),该函数查询成绩不及格的学生的姓名,并且调用

【6】自定义函数—内嵌表值函数

  • 内联表值函数返回结果为一张表

函数创建

函数调用


🙂

--【例1】在xkgl数据库中创建一个用户自定义函数uf_Getcno1,该函数通过输入的学号返回该生选修课程的课程号。

这章的内容会考察一个【大题】必须会!!但是其实和C语言差不多,相信大家都能够轻松上手。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/255133.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【EI会议征稿-ACM出版】2023年信息化教育与人工智能国际学术会议(ICIEAI 2023)

2023年信息化教育与人工智能国际学术会议&#xff08;ICIEAI 2023&#xff09; 2023 International Conference on Information Education and Artificial Intelligence 2023年12月22-24日 中国-厦门 2023年信息化教育与人工智能国际学术会议&#xff08;ICIEAI 2023&#xf…

解决react启动服务时source-map-loader插件报错找不到源文件“index.ts“的源映射文件

webpack 5: Failed to parse source map from “**********” 如下图所示: The source map files links to the src/ - folder that is not distributed. // node_modules/mswjs/interceptors/lib/interceptors/utils/uuid.js.map {"version":3,"file":&…

如何本地搭建Linux DataEase数据可视化分析工具并实现公网访问

文章目录 前言1. 安装DataEase2. 本地访问测试3. 安装 cpolar内网穿透软件4. 配置DataEase公网访问地址5. 公网远程访问Data Ease6. 固定Data Ease公网地址 前言 DataEase 是开源的数据可视化分析工具&#xff0c;帮助用户快速分析数据并洞察业务趋势&#xff0c;从而实现业务…

Unity | 渡鸦避难所-1 | 修复资源导入后呈现洋红色(Built-in 转 URP)

1 前言 Unity 编辑器导入 Asset Store 的资源包后&#xff0c;在预览和使用时&#xff0c;发现对象显示为洋红色 以小狐狸为例&#xff0c;打开资源包中的场景&#xff0c;可以看到小狐狸和地板均显示为洋红色 这是因为 Asset Store 中的资源包大部分是针对内置渲染管线项目制…

20、XSS——XSS跨站脚本

文章目录 一、XSS漏洞概述1.1 XSS简介 二、XSS漏洞分类2.1 反射型XSS2.2 存储型XSS2.3 DOM型XSS 三、XSS payload构造以及变形3.1 XSS payload构造3.2 XSS payload 变形 一、XSS漏洞概述 1.1 XSS简介 XSS被称为跨站脚本攻击&#xff08;Cross-site scripting&#xff09;&…

排序算法介绍(二)冒泡排序

0. 简介 冒泡排序&#xff08;Bubble Sort&#xff09;是一种简单的排序算法。它重复地遍历要排序的数列&#xff0c;一次比较两个元素&#xff0c;如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复地进行直到没有再需要交换&#xff0c;也就是说该数列已经排…

ROS小练习——话题订阅

目录 一、话题与消息获取 二、代码编写 1、C 2、python 三、编译运行 一、话题与消息获取 rostopic list rostopic type /turtle1/pose rosmsg info turtlesim/Pose 二、代码编写 1、C //包含头文件 #include "ros/ros.h" #include "turtlesim/Pose…

新秀丽(中国)CIO李德胜:数据安全是企业数字化转型的基石

大数据产业创新服务媒体 ——聚焦数据 改变商业 随着科技的飞速发展&#xff0c;企业数字化转型已经成为全球商业领域的主要趋势。数据在企业数字化转型中扮演着至关重要的角色。数据不仅仅是数字化转型的驱动力&#xff0c;更是企业实现创新、提高效率以及满足客户需求的基石…

socket 套接字

1、套接字介绍 socket起源于Unix&#xff0c;遵循“一切皆文件”出发点&#xff0c;都可以用“打开open –> 读写write/read –> 关闭close”模式来操作。 在设计模式中&#xff0c;Socket把复杂的TCP/IP协议族隐藏在Socket接口后面&#xff0c;Socket去组织数据&#xf…

Google DeepMind推出大模型 Gemini (vs GPT4):规模最大、能力最强的人工智能模型

系列文章目录 文章目录 系列文章目录前言谷歌和 Alphabet 首席执行官桑达尔-皮查伊&#xff08;Sundar Pichai&#xff09;的说明一、Gemini 介绍二 、最先进的性能三、新一代功能四、复杂的推理能力五、理解文本、图像、音频及其他内容六、先进的编码技术七、更可靠、可扩展、…

解决:IndentationError:unindent does not match any outer indentation level

解决&#xff1a;IndentationError:unindent does not match any outer indentation level 文章目录 解决&#xff1a;IndentationError:unindent does not match any outer indentation level背景报错问题报错翻译报错位置代码报错原因解决方法今天的分享就到此结束了 背景 在…

谷达冠楠:现在做抖音电商到底怎么样

随着互联网的发展&#xff0c;电商行业也在不断地壮大。而近年来&#xff0c;抖音作为一款短视频社交平台&#xff0c;也逐渐成为了电商的新兴渠道。那么&#xff0c;现在做抖音电商到底怎么样呢? 首先&#xff0c;抖音拥有庞大的用户群体。根据数据显示&#xff0c;抖音的日活…