数据库——实 验 8 SQL 编程

news2024/11/19 13:29:42

1.T-SQL  语言简介

SQL Server 使用的语言称作 Transact-SQL,   它不仅包括基本 SQL  操作的内容,如 SQL 的数据查询功能和数据操作功能等,还有一般程序设计的能力。

2. 局部变量和全局变量的概念

1)局部变量

局部变量是一个能够拥有特定数据类型的对象,它的作用范围仅限制在程序内部。局部变量被引用时要在其名称前加上标志“@”,而且必须先用 DECLARE 命令定义后才可以使用。

定义局部变量的语法形式如下:

DECLAER {@local_variable data_type} […n]

  @local_variable  用于指定局部变量的名称,变量名必须以符号@开头。 

参数  data_type   用于设置局部变量的数据类型及其大小。

使用 DECLARE 命令声明并创建局部变量之后,会将其初始值设为 NULL,  如果想要设定局部变量的值,必须使用SELECT 命令或者 SET 命令。其语法形式为:

SET{(@local_variable=expression }或者 SELECT{@local_variable=expression}[ ,…n ]

  @local_variable  是给其赋值并声明的局部变量。

参数 expression  是任何有效的 SQL  Server 表达式。

2)全局变量

除了局部变量之外,SQL Server系统本身还提供了一些全局变量。全局变量是 SQL Server 系统内部使用的变量,其作用范围并不仅仅局限于某一程序,而是任何程序均可以随时调用。全局变量通常存储一些 SQL  Server 的配置设定值和统计数据。用户可以在程序中用全局变量来测试系统的设定值或者是Transact-SQL  命令执行后的状态值。

在使用全局变量时应该注意以下几点

(1)全局变量不是由用户的程序定义的,它们是在服务器级定义的。

(2)用户只能使用预先定义的全局变量。

(3)引用全局变量时,必须以标记符“@@”开头。

(4)局部变量的名称不能与全局变量的名称相同,否则会在应用程序中出现不可预测的结果。

3. 系统函数的使用

SQI,Server 2005给用户提供了功能全面、种类丰富的函数,常用的函数可以分为以下 几类:

1)行集函数

行集函数是返回值为对象的函数,该对象可在T-SQL.语句中作为表引用。所有行集函数都是非确定的,即每次用一组特定参数调用它们时,所返回的结果不总是相同的。

2)聚合函数

聚合函数对一组值操作,返回单一的汇总值。常用的聚合函数如表1-4所示。函数在如下情况下,允许作为表达式使用。

(1)SELECT 语句的选择列表(子查询或外部查询),

(2)COMPUTE   COMPUTE BY子句。

(3)HAVING 子句。

3)Ranking 函数

Ranking  函数为查询结果数据集分区中的每一行,并返回一个序列值。依据此函数, 些行可能取得和其他行一样的序列值。

4)标量函数

标量函数用于对传递给它的一个或者多个参数值进行处理和计算,并返回一个单一的值

常用的标量函数有如下几类:

(1)字符串函数

 基本字符串函数

UPPER(): 将小写字母转换成大写字母。

LOWER(): 把大写字母转换成小写字母。

SPACE(): 产生空格字符串。

REPLICATE(): 重复一个字符表达式若干次

STUFF(): 用一个子串按规定取代另一个子串。

REVERSE(): 取字符串的逆序。

LTRIM(): 删除字符串的前导空格。

RTRIM(): 删除字符串的尾部空格。

 字符串查找函数

CHARINDEX(): 返回一个子串在字符串表达式中的起始位置。

PATINDEX(): 返回一个子串在字符串表达式中的起始位置,在子串中可以使用通配符“%”。

 长度和分析函数

DATALENGTH(): 返回字符串的长度。

SUBSTRING(): 取子串函数。

RIGHT(): 从字符串的右部取子串。

 转换函数

ASCI(): 返回字符串表达式最左面字符的 ASCIⅡ码值。

CHAR(): 把一个表示 ASCIⅡ代码的数值转换成对应的字符。

STR(): 将数值转换成字符串。

SOUNDEX(): 返回两个字符串发音的匹配程度。

DIFFERENCE(): 返回两个字符串的匹配程序。

(2)日期时间函数

DATEADD(): 在一个日期值上加上一个间隔,返回值是 datetime

DATEDIFF(): 计算两个日期值之间的间隔,返回值是一个整数。

DATENAME(): 返回表示日期中某部分的字符串。

DATEPART(): 返回表示日期中某部分的数值。

DAY(): 返回指定日期的天数。

GETDATE(): 返回当前的日期和时间。

MONTH(): 返回指定日期的月份数。

YEAR(): 返回指定日期的年份数。

(3)数学函数

数学函数用于对数字表达式进行数学运算并返回运算结果。数学函数可以对SQL  Server 提供的数字数据(decimal、integerfloat real money smallmoney smallint  tinyint) 进行处理。

(4)系统函数

系统函数用于返回有关 SQL Server 系统、用户、数据库和数据库对象的信息。系统函 数可以让用户在得到信息后,使用条件语句,根据返回的信息进行不同的操作。与其他函数一样,可以在 SELECT 语句的 SELECT  WHERE 子句以及表达式中使用系统函数。

系统函数中有两个转换函数: CONVERT   CAST

CAST  函数允许把一个数据类型强制转换为另一种数据类型,其语法形式为:

CAST(expression AS data_type)

CONVERT   函数允许用户把表达式从一种数据类型转换成另一种数据类型,还允许把日期转换成不同的样式,其语法形式为:

CONVERT (data_type [ (length)] ,expression [,style])

4. 流程控制语句的使用

流程控制语言是T-SQL  ANSI-92   SQL标准的扩充。它可以控制SQL 语句执行的顺序,在存储过程、触发器和批中很有用。流程控制语言主要包括:

·IF…ELSE 语句:条件判断语句。

·BEGIN…END 语句:将一组 SQL 语句作为一个语句块。

·GO 语句:是批的结束语句。

·CASE 语句:多条件分支选择语句。

·WHILECONTINUEBREAK 语句:用于设置重复执行 SQL 语句或语句块的条件。

·GOTO 语句:无条件转移语句。

·WAITFOR 语句:用于暂时停止执行 SQL 语句、语句块或者存储过程等。

·RETURN 语句:无条件返回语句。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

掌握Linux Shell脚本函数:提高脚本效率与可维护性

目录标题 1、什么是Shell函数?2、如何定义Shell函数?3、Shell函数参数4、返回值5、实例:使用函数进行文件备份6、为什么使用函数?7、最佳实践 在编写Linux shell脚本时,函数是组织和重用代码的重要手段。本文将介绍如何…

python getsize如何使用

第一步,点击键盘 winr,打开运行窗口;在窗口中输入“cmd",点击确定,打开windows命令行窗口。 第二步,在windows命令行窗口中,输入“python”,进入python交互窗口。 第三步&#…

C++ —— 继承

什么是继承? 继承是指一种代码可以被复用的机制,在一个类的基础上进行扩展,产生的新类叫做派生类,被继承的类叫基类。(也可称为子类和父类) 继承的写法: class B : 继承方式 A (…

Laravel 6 - 第十三章 请求

​ 文章目录 Laravel 6 - 第一章 简介 Laravel 6 - 第二章 项目搭建 Laravel 6 - 第三章 文件夹结构 Laravel 6 - 第四章 生命周期 Laravel 6 - 第五章 控制反转和依赖注入 Laravel 6 - 第六章 服务容器 Laravel 6 - 第七章 服务提供者 Laravel 6 - 第八章 门面 Laravel 6 - …

SpringBoot引入第三方jar包或本地jar包

idea2018创建spring boot项目 New Project窗口选择Spring Initializr Type选择Maven(Generate…),有两个Maven选择这一个。 勾选Spring Web。 pom.xml中version改成2.5.10。 在resources中新建jar目录,将第三方jar包fastjson2-2.0.47.jar放入其中。&#xff08…

【C++】日期计算机

个人主页:救赎小恶魔 欢迎大家来到小恶魔频道 好久不见,甚是想念 今天我们要讲述的是一个日期类计算机的代码实现 引言: 我们日常生活中可能会有一个烦恼。 今天几月几号?过n天后又是几月几号?某年某月某天和x年…

Python读写文本URL蓝牙WIFI自动连接电子名片位置坐标智能海报等NDEF标签

本示例使用的发卡器:https://item.taobao.com/item.htm?id615391857885&spma1z10.5-c.w4002-21818769070.11.60ad789erlonvk 近场通信(Near Field Communication,简称NFC),是一种新兴的技术&…

实验:使用apache + yum实现自制yum仓库

实验准备 Web服务器端:cenos-1(IP:10.9.25.33) 客户端:centos-2 保证两台机器网络畅通,原yum仓库可用,关闭防火墙和selinux Web服务器端 ①安装httpd并运行,设置开机自启动 安装…

【人工智能基础】人工神经网络

一、人工神经网络的三要素 人工神经元数理模型 MP模型是世界上第一个神经计算模型,为神经网络理论提供了基础 MP模型功能 对树突输入u的线性加权求和对净输入的非线性转换\ 作用函数的功能作用函数的功能 MP神经元模型的作用函数是单位阶跃函数。当x≥0时f(x)…

实现Node.js安装与配置。

一 、Node.js简介 Node.js是一个基于Chrome V8引擎的JavaScript运行时环境,用于构建高性能、可扩展的网络应用程序。它发布于2009年5月,由Ryan Dahl开发,允许使用JavaScript进行服务器端编程,使开发者能够在前后端都使用同一种编程…

ASP.NET教务平台—学籍管理模块开发与设计

摘 要 教务平台之学籍管理模块是一个典型的教务信息管理系统(MIS),其开发主要包括后台数据库的建立和前端应用程序的开发两个方面。对于后台数据库要求实现数据的完整性、一致性和安全性;对于前台应用程序开发则要求模块功能完备、界面友好、易使用等特…

进程状态和优先级(进程第2篇)【Linux复习篇】

目录 一、进程状态 1、进程有什么状态? 2、 Linux下的进程状态有什么? 二、进程优先级 1、进程优先级是什么? 2、为什么要有优先级 3、怎么改进程优先级?要改吗? 4、操作系统如何根据优先级开展调度的&#xff…

Spring MVC和Spring Boot

上节已经提到过请求,这次梳理响应。 响应 响应基本上都要被Controller所托管,告诉Spring帮我们管理这个代码,我们在后面需要访问时,才可以进行访问,否则将会报错。并且其是由RestController分离出来的,Re…

【MCU】栈溢出问题

项目场景: 硬件:STM32F407,操作系统:rt_thread master分支 问题描述 问题栈溢出 id 499 ide 00 rtr 00 len 8 9 Function[rt_completion_wait] shall not be used in ISR (0) assertion failed at function:rt_completion_wait,…

MATLAB实现蚁群算法栅格路径优化

蚁群算法是一种模拟自然界中蚂蚁觅食行为的优化算法,常用于解决路径规划问题。在栅格路径优化中,蚁群算法可以帮助找到从起点到终点的最优路径。以下是蚁群算法栅格路径优化的基本流程步骤: 初始化参数: (1)设置蚂蚁数量&#xff…

【错题集-编程题】数组中的最长连续子序列(排序 + 模拟)

牛客对应链接:数组中的最长连续子序列_牛客题霸_牛客网 (nowcoder.com) 一、分析题目 排序 模拟。 注意:值连续,位置可以不连续!小心处理数字相同的情况。 二、代码 //值得学习的代码 class Solution { public:int MLS(vecto…

【数据库】Redis

文章目录 [toc]Redis终端操作进入Redis终端Redis服务测试切换仓库 String命令存储字符串普通存储设置存储过期时间批量存储 查询字符串查询单条批量查询 Key命令查询key查询所有根据key首字母查询判断key是否存在查询指定的key对应的value的类型 删除键值对 Hash命令存储hash查…

前端补充17(JS)

一、JS组成成分 JS的组成成分,由三部分组成 第一、ECMAScript:语法规则,如何定义变量,数据类型有哪些,如何转换数据类型,if判断 if-else while for for-in forEach do-while switch 数组 函数 对…

HTML表单(详解网页表单如何实现)

目录 一、表单介绍 1.概念 二、表单用法 1.HTML表单 2.HTML 表单 - 输入元素 2.1.文本域(Text Fields) 2.2.密码字段 2.3.单选按钮(Radio Buttons) 2.4.复选框(Checkboxes) 2.5.提交按钮(Submit)…

SAP 变更记录表查询使用逻辑简介

通常用户在遇到问题后,经常会问某个单据的变更记录,很多模块中在前台的操作界面中都根据对应的菜单栏中可以找到对应的变更记录,像销售订单、交货单、采购申请、采购订单都在菜单栏位中都可以查询到对应的修改记录,但是对于想批量…