[]( )数据类型
-------------------------------------------------------------------
**1.系统数据类型**
系统数据类型又称为基本数据类型。
**2.用户自定义数据类型**
用户自定义数据类型可看做是系统数据类型的别名。
**例如**:在图书借阅系统中xsbook数据库,创建了xs、book、jy三个表,从三个表的表结构可看出:表xs中的借书证号字段值与表jy中的借书证号字段值应有相同的类型,均为字符型值、长度可定义为8,并且不允许为空值,为了使用方便,并使含义明确,可以先定义一数据类型,命名为:library\_card\_num,用于描述借书证号的类型属性,然后将表xs中的借书证号字段和表jy中的借书证号字段定义为library\_card\_num数据类型。
自定义数据类型library\_card\_num后,重新设计xsbook数据库中xs、jy表结构中的借书证号字段,如表5.4~表5.6所示。
![在这里插入图片描述](https://img-blog.csdnimg.cn/921ab5732f354891b0a73384ce56163a.png)
![在这里插入图片描述](https://img-blog.csdnimg.cn/6297ddcc16324319882df2cb4cf8b819.png)
![在这里插入图片描述](https://img-blog.csdnimg.cn/f878cb5139a54965be0cc51f110b6576.png)
创建用户自定义数据类型时应考虑如下三个属性:
* 数据类型名称;
* 新数据类型所依据的系统数据类型(又称为基类型);
* 为空性。
创建用户自定义数据类型的方法如下:
(1)使用“对象资源管理器”定义。步骤如下:
> ① 启动“SQL Server Management Studio”→在“对象资源管理器”中展开“数据库”→“xsbook”→“可编程性”→右击“类型”,选择“新建”选项,再选择“新建用户定义数据类型”,弹出“新建用户定义数据类型”窗口。
> ② 在“名称”文本框中输入自定义的数据类型名称,如Library\_card\_num。在“数据类型”下拉框中选择自定义数据类型所基于的系统数据类型char。在“长度”栏中填写要定义的数据类型的长度8。其他选项使用默认值,如图5.1所示,单击“确定”按钮即可完成创建。
![在这里插入图片描述](https://img-blog.csdnimg.cn/c46a939252de419d92599d05f40638fc.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6L-Z5Liq5pi156ew5oiR5oOz5LqGMjDliIbpkp8=,size_8,color_FFFFFF,t_70,g_se,x_16)
(2)使用CREATE TYPE命令定义。在SQL Server 2012中,使用CRETAE TYPE语句来实现用户数据类型的定义。语法格式:
CREATE TYPE [<数据库架构名>. ] <自定义类型名>
FROM <系统数据类型名> [ ( <精度> [ , <小数位数> ] ) ]
[ NULL | NOT NULL ]
[ ; ]
根据上述语法,定义描述借书证号字段的数据类型的语句如下:
CREATE TYPE library_card_num
FROM char(8) NOT NULL
(3)删除用户自定义数据类型。界面方式删除用户自定义数据类型的主要步骤如下:
在“对象资源管理器”中展开数据库“xsbook”→“可编程性”→“类型”→在“用户定义数据类型”中选择类型“dbo.library\_card\_num”,右击鼠标,在弹出的快捷菜单中选择“删除”菜单项,打开“删除对象”窗口后单击“确定”按钮即可(实际不做操作)。
(4)使用命令删除用户自定义数据类型。使用命令方式删除自定义数据类型可以使用DROP TYPE语句。语法格式:
DROP TYPE [ <数据库架构名>. ] <自定义类型名>[ ; ]
例如,删除前面定义的library\_card\_num类型的语句为:
DROP TYPE library_card_num
(5)利用用户自定义数据类型定义字段。
在定义类型后,接着应考虑定义这种类型的字段,同样可以利用“对象资源管理器”和“T-SQL命令”两种方式实现。
利用命令方式定义xs表结构如下:
CREATE TABLE xs
(
借书证号 library_card_num NOT NULL PRIMARY KEY, /*定义为library_card_num类型*/
姓名 char(8) NOT NULL,
性别 bit NOT NULL DEFAULT 1,
出生时间 date NOT NULL,
专业 char(12) NOT NULL,
借书量 int NOT NULL,
照片 varbinary(MAX) NULL
)
GO
**3.用户自定义表数据类型**
SQL Server 2012还提供了一种新的用户自定义数据类型,称为用户自定义表数据类型(User-defined Table Types)。这种数据类型也是由用户自行定义,可以作为参数提供给语句、存储过程或者函数。创建自定义表数据类型也使用CREATE TYPE语句,语法格式如下:
CREATE TYPE [ <数据库架构名>. ] <自定义类型名>
AS TABLE ( <column_definition>
[ <table_constraint> ] [ ,...n ] )
[ ; ]
【**例**】 创建用户自定义表数据类型,包含jy表中的所有列。
CREATE TYPE jy_tabletype
AS TABLE
(
借书证号char(8) NOT NULL,
ISBN char(18) NOT NULL,
索书号 char(10) NOT NULL PRIMARY KEY,
借书时间date
)
[]( )变量
-----------------------------------------------------------------
**1.变量**
变量名必须是一个合法的标识符。
(1)标识符
在SQL Server中标识符分为两类:
> ① 常规标识符。
> ② 分隔标识符。
(2)变量的分类
SQL Server中变量可分为两类:
> ① 全局变量。
> ② 局部变量。
**2.局部变量的使用**
(1)局部变量的定义与赋值
① 局部变量的定义
在批处理或过程中用 DECLARE 语句声明局部变量,所有局部变量在声明后均初始化为NULL。
语法格式:
DECLARE { @<局部变量名> <数据类型> [= <变量值>]} [ ,…n]
② 局部变量的赋值
定义局部变量后,可用SET或SELECT语句给其赋值。
用SET语句赋值,语法格式:
SET @<局部变量名>=<值>
【例】 创建局部变量@var1、@var2,并赋值,然后输出变量的值。
DECLARE @var1 char(10), @var2 char(30)
SET @var1=‘中国’ /一个SET语句只能给一个变量赋值/
SET @var2=@var1+ ‘是一个伟大的国家’
SELECT @var1, @var2
语句的执行结果如图所示。
![在这里插入图片描述](https://img-blog.csdnimg.cn/e0fc0e40889d458fad5651f129acea49.png)
【例】 创建一个名为sex的局部变量,并在 SELECT 语句中使用该局部变量查找表xs中所有男同学的借书证号、姓名。
DECLARE @sex bit
SET @sex=1
SELECT 借书证号,姓名
FROM xs
WHERE 性别=@sex
【例】 将查询结果赋给变量。
DECLARE @student char(8)
SET @student=(SELECT 姓名 FROM xs WHERE 借书证号= ‘131101’)
SELECT @student
用SELECT语句赋值,语法格式:
SELECT {@<局部变量名>=<值>} [,…n]
使用SELECT语句赋值时局部变量可以是出cursor、text、ntext、image外的任何类型变量。值可以是任何有效的SQL表达式,包含标量子查询。
【例】 使用SELECT给局部变量赋值。
DECLARE @var1 nvarchar(30)
SELECT @var1 =‘刘丰’
SELECT @var1 AS ‘NAME’
【例】 给局部变量赋空值。
DECLARE @var1 nvarchar(30)
SELECT @var1 = ‘刘丰’
SELECT @var1 =
(
SELECT 姓名
FROM xs
WHERE 借书证号= '131101'
)
SELECT @var1 AS ‘NAME’
(2)局部游标变量的定义与赋值
① 局部游标变量的定义。语法格式:
DECLARE { @<游标变量名> CURSOR } [ ,…n]
CURSOR表示表示该变量是游标变量。
② 局部游标变量的赋值。利用SET语句给一个游标变量赋值,有三种情况:
* 将一个已存在的并且赋值的游标变量的值赋给另一局部游标变量;
* 将一个已申明的游标名赋给指定的局部游标变量;
* 申明一个游标,同时将其赋给指定的局部游标变量。
③ 游标变量的使用步骤
定义游标变量→给游标变量赋值→打开游标→利用游标读取行(记录)→使用结束后关闭游标→删除游标的引用。
【例】 使用游标变量
DECLARE @CursorVar CURSOR /定义游标变量/
SET @CursorVar = CURSOR SCROLL DYNAMIC /给游标变量赋值/
FOR
SELECT 借书证号, 姓名
FROM xs
WHERE 借书证号 LIKE '20%'
OPEN @CursorVar /打开游标/
FETCH NEXT FROM @CursorVar
WHILE @@FETCH_STATUS = 0
BEGIN
FETCH NEXT FROM @CursorVar /*通过游标读行记录*/
END
CLOSE @CursorVar
DEALLOCATE @CursorVar /删除对游标的引用/
(3)表数据类型变量的定义与赋值
语法格式:
DECLARE
{ @table_variable_name [AS] TABLE ( { <column_definition> | <table_constraint> } [ ,… ] ) }
【例】 声明一个表数据类型变量并向变量中插入数据。
DECLARE @var_table
AS TABLE
(
num char(8) NOT NULL PRIMARY KEY,
name char(8) NOT NULL,
最后
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。
因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
*
深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。
因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
[外链图片转存中…(img-G4igd9Pu-1715041545825)]
[外链图片转存中…(img-Kd8M6Kje-1715041545825)]
[外链图片转存中…(img-KnI7wibz-1715041545826)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!