数据库编程

article/2025/9/20 6:47:01

数据库编程

T-SQL编程基础知识

标识符

  • 标识符分类
    常规标识符(严格遵守标识符格式规则)
    界定标识符(引号”或方括号[])
  • 标识符格式规则
    字母或_、@、#开头的字母数字或_、@、$序列
    不与保留字相同
    长度小于128
    不符合规则的标识符必须加以界定(双引号””或方括号[])

注释语句
注释语句是对程序代码的说明或暂时禁用,是程序代码中不编译执行的语句
单行注释 –
例: --求‘3-105’课程的平均分
多行注释 /**/
例: /* 作者:
创建时间: */

数据类型

整数数据、字符数据、货币数据、日期和时间数据、二进制字符串等

变量

局部变量
局部变量是用户定义,必须以@开头,在程序内声明,并只能在该程序内使用
(1)局部变量的声明
DECLARE @<局部变量名> <数据类型>[,…n]
(2)局部变量的赋值
SET|SELECT @<局部变量名>=<表达式>
(3)局部变量的显示
SELECT|PRINT @<局部变量名>

SET 、SELECT赋值的区别
SET赋值语句一般用户赋给变量指定的数据变量
SELECT赋值语句一般用于表中查询数据,当查询的记录多于一条,将把最后一条记录的值赋给变量
SET一次只能赋值一个变量
SELECT可以一次赋值多个变量
SELECT @a=1,@b=2

例1:创建一个@myvar 变量,然后将一个字符串值放在变量中,最后输出 @myvar 变量的值

declare @mychar char(20)
select @mychar='hello sql'
-- set @mychar='hello sql'也行
select @mychar

全局变量

全局变量是SQL Server系统内部使用的变量,以@@开头
全局变量不是由用户的程序定义的,它们是在服务器级定义的
用户只能使用预先定义的全局变量

例3 :用全局变量查看SQL Server的版本、当前所使用的SQL Server服务器的名称以及所使用的服务名称等信息

print '目前所用SQL Server的版本信息如下:'
print @@VERSION
print '目前SQL Server服务器名称为:'+@@SERVERNAME
print '目前所用服务器为:'+@@SERVICENAME

运算符

SQL Server 的运算符和其他高级语言类似,用于指定要在一个或多个表达式中执行的操作,将变量、常量和函数连接起来
在这里插入图片描述

流程控制语句

BEGIN 和 END标记一个程序语句块的开始和结束。它经常与IF…ELSE和WHILE 循环一起使用。

BEGIN
语句1
语句2
语句3
……
END

选择结构

IF ELSE
IF…ELSE语句用来判断当某一条件成立时执行某段程序,条件不成立时执行另一段程序。其中,ELSE子句是可选的, SQL Server允许嵌套使用IF…ELSE语句,而且嵌套层数没有限制
语法格式

   IF <布尔表达式><SQL语句>|<语句块>[ELSE<SQL语句>|<语句块>]

IF 条件
BEGIN
语句块1
END
[ELSE
BEGIN
语句块2
END]

例4:查找有没有学号为202015120的学生,有则显示学生信息,没有显式没找到

if exists(select * from student where sno='2020015120')
begin
select * from student where sno='2020015120'
end
else
print'没找着!'

Case语句

CASE语句可以计算多个条件式,并将其中一个符合条件的结果表达式返回。

CASE 表达式
WHEN 表达式的值1 THEN 返回表达式1
WHEN 表达式的值2 THEN 返回表达式2

ELSE 返回表达式n
END

例5:从学生表STUDENT中,选取SNO,SSEX,如果SSEX为‘男’则输出‘M’,如果为‘女’,则输出‘F’

select sno,ssex=
case ssex
when '男' then 'M'
when '女' then 'F'
end
from student

循环结构

WHILE
设置重复执行 SQL 语句或语句块的条件。只要指定的条件为真,就重复执行语句。可以使用 BREAK 和 CONTINUE 关键字在循环内部控制 WHILE 循环中语句的执行

WHILE 逻辑表达式
BEGIN
T-SQL语句组
[break]/终止整个语句的执行/
[continue]/结束一次循环体的执行/
END

例7: 求1 ~10的和

declare @x int,@sum int
select @x=0,@sum=0
while @x<10
begin
set @x=@x+1
set @sum=@sum+@x
print 'sum='+convert(char(2),@sum)--类型转换函数convert
end

例8 打印1,2,3,4

DECLARE @x int
SELECT @x=1
WHILE @x<=10
BEGINIF @x=5  BREAKELSEPRINT CONVERT(char,@ x) SELECT @x=@x+1
END

例9 打印1~5之间的所有奇数

declare @x int
select @x=0
while @x<=5
begin
select @x=@x+1
if @x%2=0
continue
print convert(char,@x)
end

等待语句

等待语句挂起一个程序中语句的执行,直到指定的某一时间点到来或在一定的时间间断之后才继续执行。
语法格式

WAITFOR DELAY '<时间间隔>‘ | TIME ‘<时间>’

其中,时间间隔以及时间均为datetime类型,格式为“hh:mm:ss”。
DELAY指定在多长时间后执行语句,最长为24小时
TIME指定运行批处理、存储过程或事务的时间,在time内不能指定日期

例10:设置等待一小时后执行查询

begin
waitfor delay '1:00:00'
select * from student
end

例11:设置到十点整执行查询

begin
waitfor time '10:00:00'
select * from student
end

RETURN语句
RETURN语句用于无条件地终止一个查询、存储过程或者批处理,位于RETURN语句之后的程序将不会被执行

系统函数

在这里插入图片描述

日期和时间函数

在这里插入图片描述
例12:使用日期时间函数计算自己现在的年龄

select '年龄'=datediff(YY,'1999-05-01',getdate())

取子串函数
SUBSTRING (字符串,int pos,int length)
函数返回的子串是从字符串左边第pos个字符起length个字符的部分。
SUBSTRING()函数不能用于TEXT 和IMAGE 数据类型

数据类型转换函数:CONVERT和CAST

  • CAST函数允许把一个数据类型强制转换为另一种数据类型,其语法形式为:
    CAST( expression AS data_type )
  • CONVERT函数允许用户把表达式从一种数据类型转换成另一种数据类型,还允许把日期转换成不同的样式,其语法形式为:
    CONVERT (data_type[(length)],expression [,style])

例子:查询学生基本信息表STUDENT中的学号、姓名、年龄,并且将这三个字段通过“+”运算符连接显示在查询结果中

SELECT  SNO+SNAME+CAST(SAGE AS CHAR(2))
FROM STUDENT

游标


http://chatgpt.dhexx.cn/article/vOhyR2eq.shtml

相关文章

数据库编程之ODBC编程

ODBC优点 移植性好 能同时访问不同的数据库 共享多个数据资源 ODBC概述 ODBC产生的原因 由于不同的数据库管理系统的存在&#xff0c;在某个关系数据库管理系统下编写的应用程序就不能在另一个关系数据库管理系统下运行 许多应用程序需要共享多个部门的数据资源&#xff0c…

第8章 数据库编程

文章目录 ❖第一节 T-SQL编程基础标识符注释语句表达式SET、SELECT区别 流程控制语句选择结构❖IF ELSECASE语句搜索式CASE语句 循环结构等待语句返回语句 系统函数标量函数日期和时间函数字符串函数 数据类型转换函数 ❖第二节 游标&#xff08;重点&#xff09;1. 声明游标2.…

teredo实现ipv4公网环境下接入ipv6

teredo实现ipv4公网环境下接入ipv6 系统&#xff1a;macOS High Sierra 10.13.3 测试成功 软件下载 下载安装Miredo http://www.deepdarc.com/miredo-osx-prerelease2.pkg.zip 项目github地址&#xff1a;https://github.com/darconeous/miredo-osx下载安装tuntaposx http…

Tornado简介

Tornado龙卷风是一个开源的网络服务器框架&#xff0c;它是基于社交聚合网站FriendFeed的实时信息服务开发而来的 Tornado是使用Python编写的Web服务器兼Web应用框架与主流Web服务器框架不同的是&#xff0c;Tornado是异步非阻塞式服务器&#xff0c;得益于非阻塞式和对epoll模…

【小白教程】win10系统如何开启ipv6

Teredo 是一种网络协议&#xff0c;用于在客户端和服务器之间建立安全通信&#xff0c;并且在使用网络地址转换 (NAT) 的路由器后增强设备之间的连接。 #####以下代码均在cmd窗口运行###### 一、设置Teredo 服务器 1、设置Teredo 服务器 netsh interface teredo set state …

Teredo Tunnel Adapter: Error Code 10

Teredo Tunneling 该设备无法启动 错误代码 ErrCode:10 解决方法 前文&#xff1a; Win7 系统&#xff0c;打算开启IPV6&#xff0c;本地连接的网络 ip6 驱动是异常的&#xff0c;先重新安装了网卡驱动。 过程&#xff1a; 几次尝试之后&#xff0c;还是无法启动&#xff0c;…

地平线不能多人联机解决方法

玩地平线4时可能会出现无法连接多人网络问题&#xff0c;在Xbox网络中出现Teredo不合格的问题。 解决方案&#xff1a; 按WinR输入gpedit.msc打开组策略编辑器&#xff0c;依次选择管理模块、网络、TCPIP设置、IPv6转换技术。双击设置6to4状态&#xff0c;点已启用&#xff0c…

微软的teredo服务器,win10系统通过teredo连接ipv6的操作方法

win10系统通过teredo连接ipv6的操作方法? 很多win10用户在使用电脑的时候&#xff0c;会发现win10系统通过teredo连接ipv6的的现象&#xff0c;根据小编的调查并不是所有的朋友都知道win10系统通过teredo连接ipv6的的问题怎么解决&#xff0c;不会的朋友也不用担心&#xff0c…

TCP/IP卷一:55---UDP之(UDP与IPv6、Teredo)

前一篇文章&#xff08;https://blog.csdn.net/qq_41453285/article/details/103984794&#xff09;对UDP和UDP数据报、UDP校验和做了简单的介绍&#xff0c;本片文章介绍一些UDP与IPv6有关的知识 一、IPv6下的UDP 考虑到简单性&#xff0c;在对IPv6而非IPv4进行操作时&#…

miredo - Teredo IPv6 tunneling for Unix

世界 IPv6 日&#xff1a;2011年6月8日 Test your IPv6&#xff1a;http://test-ipv6.com 安装miredo sudo apt-get install miredo 编辑miredo配置文件&#xff0c;加入teredo 的公共服务器地址&#xff0c;如ServerAddress teredo-debian.remlab.net sudo gedit /etc…

teredo 未能解析服务器名,Win10系统Xboxlive显示Teredo无法进行限定怎么解决

有的朋友会在windows10电脑上用Xbox live游玩游戏&#xff0c;但是碰到Xbox live设置显示Teredo无法进行限定&#xff0c;这时候我们该怎么办呢&#xff0c;下面由小编给大家介绍如何解决win10系统Xbox live显示Teredo无法进行限定。 具体步骤如下&#xff1a; 1.按下键盘上的&…

报PING:传输失败。常见故障.connect:network is unreachable“的解决方案-IPv6无法ssh连接的解决方案。

vultr当前2.5美金的vps只有IPv6&#xff0c;很多使用者无法正常使用ssh连接等&#xff0c;报PING&#xff1a;传输失败。常见故障。connect&#xff1a;network is unreachable 很多使用者不知所措&#xff0c;笔者也是一脸懵逼&#xff0c;经过一番研究之后&#xff0c;发现了…

微软的teredo服务器,win10系统通过teredo连接ipv6的具体教程

有关win10系统通过teredo连接ipv6的操作方法想必大家有所耳闻。但是能够对win10系统通过teredo连接ipv6进行实际操作的人却不多。其实解决win10系统通过teredo连接ipv6的问题也不是难事&#xff0c;小编这里提示两点&#xff1a;1、在“开始”里输入“cmd”&#xff0c;右击&am…

Win11地平线4 Xbox live无法登录?或者地平线4无法使用在线模式?尝试一波!!!

全是抄袭&#xff0c;只做整理&#xff0c;希望帮到大家&#xff0c;啥也不懂&#xff01;但是&#xff01;我就是这样弄好的 侵权 联系 我 就下架&#xff0c;但是只是想让大家可以解决问题 以下是我参照的文章&#xff1a; XBOX NAT类型:Teredo不合格解决方案 - 知乎 (zhi…

Win7使用teredo连接IPv6的方法

(1) 在 ” 开始 ”->” 运行 ” 中输入 cmd 打开 Windows 命令行。在命令行中输入 ipconfig /all &#xff0c;会出现若干网络配置信息&#xff0c;找到 Tunnel adpter &#xff08;隧道适配器&#xff09; Teredo Tunneling Pseudo-Interface &#xff0c; 查看它是否有正确…

关于Win10用户地平线线上连接xbox live失败问题

问题描述 游玩地平线系列游戏时&#xff0c;无法进入线上游戏游玩更多游戏内容&#xff0c;且无法与朋友联机&#xff0c;问题未知&#xff0c;并且更改加速器节点也没有用。本解决方案针对Win10的小伙伴&#xff0c;Win11的小伙伴可以参考一下。 解决方案 主要是解决xbox网络…

关于解决NAT 类型显示“Teredo 无法获得资格”的一个案例

在试过了网上很多的方法之后&#xff0c;发现依旧解决不了&#xff0c;最后发现了xbox官方的一个解决方法并且成功。&#xff08;这个是在完成了网上众多方法的前提下才解决的&#xff09; 链接:Xbox Support。 其中我估计解决方案2到5就是网上众多的解决方法&#xff0c;由于本…

teredo报文格式

teredo报文是一项 IPv6 / IPv4 过渡技术&#xff0c;为能够通过 IPv4 NAT&#xff0c; IPv6 数据包作为基于 IPv4 的用户数据包协议(UDP) 消息发送出去。 格式如下&#xff1a; 注意&#xff0c;外层为V4报文&#xff0c;内层为V6报文&#xff0c;V4报文后的UDP报文的目的端口…

Teredo 概述

Teredo 概述 发布日期&#xff1a; 2004年05月14日 摘要 了解 Teredo &#xff08;又成为面向 IPv6 的 IPv4 NAT [网络地址转换]穿越&#xff0c;是一项 IPv6 / IPv4 过渡技术&#xff0c;在 IPv6 / IPv4 主机位于一个或多个 IPv4 NAT 之后时&#xff0c;用来为单播 IPv6 连接提…

Java学习-java中的与或非

文章目录 前言一、 与&#xff08;&&#xff09;和短路与&#xff08;&&&#xff09;&#xff08;1&#xff09;概念与区别&#xff08;2&#xff09;代码示例 二、或&#xff08;|&#xff09;与短路或&#xff08;||&#xff09;&#xff08;1&#xff09;概念与…