T-SQL语言基础
- 格式:doc
- 大小:129.50 KB
- 文档页数:14
数据库T-SQL语⾔操作(T-SQL语句、数据库、表、视图、索引)T-SQL语⾔按⽤途分四部分1. 数据定义语⾔(CREATE,DROP,ALTER)2. 数据操作语⾔(INSERT,DELETE,UPDATE)3. 数据查询语⾔(SELECT)4. 数据控制语⾔(GRANT,REVOKE,DENY)数据类型1. 系统数据类型2. ⽤户⾃定义数据类型(建⽴⽅式:a.图形化⽅式 b.命令⽅式)1use TEST2EXEC sp_addtype sno,'varchar(10)','nonull'3EXEC sp_droptype sno变量命名规则:字母、下划线、@或#开头,但不能全为下划线、@或#不能为“关键字”,不能嵌⼊空格及其他特殊字符,如需使⽤则需要双引号或⽅括号括起1.局部变量:由⽤户声明,必须以@开头,只在定义该变量的过程中有效,局部变量必须先声明后使⽤注意:第⼀次声明变量时,其值设置为NULL。
局部变量不能使⽤“变量=变量值”的格式进⾏初始化,必须使⽤SELECT或SET语句来设置其初始值。
如果声明字符型的局部变量,⼀定要在变量类型中指明其最⼤长度,否则系统默认其长度为1。
若要声明多个局部变量,请在定义的第⼀个局部变量后使⽤⼀个逗号,然后指定下⼀个局部变量名称和数据类型。
1USE student2DECLARE@var1char(10),@var2int3SET@var1='number'4select@var2=cgrade5from sc6where sno='201810010'78print@var1+"s"2.全局变量:由系统定义,供SQL server系统内部使⽤的变量,任何程序任何时间都可以调⽤。
通常以“@@”开头。
T-SQL语句1.注释语句(1) --(2) /*……*/2.批处理--GO3.控制流程语句(1) begin...end语句(相当于C语⾔中的{} )(2) if...else语句(可嵌套)(3)case语句(多条件选择语句)(4)print语句(屏幕输出语句)(5)while语句(有条件的循环语句)(6)goto语句(⽆条件跳转语句)(7)break语句(8)continue语句4.常⽤函数(系统函数、⽤户⾃定义函数)⼀些系统函数:(1)字符串函数(2)数学函数(3)⽇期和时间函数(4)聚合函数注意:⽤户⾃定义函数:1.分类:标量值函数:返回单个值内联表值函数:返回可更新的表多语句表值函数:返回不可更新的表2.标量值函数命令⽅式创建1CREATE FUNCTION f2(@a real,@b real) 2RETURNS real3AS4BEGIN5IF@a>=@b6RETURN@a7RETURN@b8END910PRINT'最⼤值为'11PRINT dbo.f2(77,56)1CREATE FUNCTION f3(@n real)2RETURNS real3AS4BEGIN5DECLARE@i real,@sum real6SET@i=07SET@sum=08WHILE@i<@n9BEGIN10SET@i=@i+111SET@sum=@sum+@i12END13RETURN@sum14END1516PRINT dbo.f3(10)3.⾃定义函数的调⽤(1)标量值函数可以使⽤select、print、exec调⽤(2)表值函数只能⽤select调⽤4.删除⽅式drop function 函数名数据库数据库概述1.数据库常⽤对象:表、数据类型、视图、索引、存储过程、触发器系统数据库:master、model、tempdb、msdb2.数据库存储结构(数据库⽂件、数据库⽂件组):数据库⽂件:存放数据库数据和数据库对象的⽂件。
tsql语句创建表的方法一、TSQL语句创建表的基础。
1.1 什么是TSQL语句创建表。
嘿呀,咱先来说说这个TSQL语句创建表是咋回事儿呢。
TSQL呢,就是Transact SQL,这是SQL Server数据库里用的一种编程语言。
创建表就像是盖房子打地基一样,是数据库操作里特别重要的一步。
你想啊,要是没有表,数据就像没家的孩子,到处乱飘呢。
1.2 为啥要用TSQL创建表。
这可就有门道了。
用TSQL创建表那是相当方便、灵活。
你可以按照自己的需求,精确地定义表的结构。
比如说,你要管理一个书店的库存,你就能创建一个表,里面有书的名字、作者、价格、库存数量这些栏位。
这就好比是量身定做衣服,不大不小正合适。
二、创建表的具体步骤。
2.1 基本语法结构。
这创建表的语法啊,就像是一个魔法咒语。
一般来说呢,是“CREATE TABLE”这个关键字开头,后面跟着表的名字。
就像“CREATE TABLE BookInventory”,这就表示要创建一个叫BookInventory的表。
然后呢,在括号里面定义表的列。
比如说“(BookName VARCHAR(50), Author VARCHAR(50), Price DECIMAL(10, 2), StockQuantity INT)”。
这里面的“VARCHAR”就是可变长度的字符类型,“DECIMAL”是小数类型,“INT”就是整数类型。
这就像告诉数据库,这个表的每一列都长啥样,是啥类型的数据能住进去。
2.2 设定约束条件。
这约束条件啊,就像是给表立规矩。
比如说主键约束,这就像是给每一行数据一个独一无二的身份证。
在TSQL里,你可以这样写“PRIMARY KEY (BookID)”,这就表示BookID这一列是主键,每一行的BookID都不能相同。
还有像非空约束“NOT NULL”,就好比这个栏位必须得有东西,不能为空着。
这就好比是一个房子里有些房间必须得放东西,不能空着一样。
t-sql 标准T-SQL(Transact-SQL)是一种面向关系数据库管理系统(RDBMS)的编程语言,主要用于Microsoft SQL Server。
下面是关于T-SQL标准的基本概念和特性的详细介绍:1. T-SQL基本概念:1.1 定义:T-SQL是Microsoft SQL Server上的一种SQL方言,它扩展了标准的SQL语言,提供了更丰富的功能,包括存储过程、触发器、视图、函数等。
1.2 特点:•过程性编程:T-SQL支持过程性编程,允许开发者创建存储过程、触发器等数据库对象。
•批量操作:提供了丰富的数据操作语句,支持批量处理,提高了效率。
•事务控制:支持事务控制,包括BEGIN TRANSACTION、COMMIT、ROLLBACK 等语句。
2. T-SQL语言特性:2.1 数据查询语言(DQL):T-SQL提供了丰富的查询语言,包括SELECT语句,用于检索数据库中的数据。
SELECT column1, column2 FROM table WHERE condition;2.2 数据操作语言(DML):T-SQL包括INSERT、UPDATE、DELETE等语句,用于对数据库中的数据进行增、删、改操作。
INSERT INTO table(column1, column2) VALUES(value1, value2);2.3 数据定义语言(DDL):T-SQL支持CREATE、ALTER、DROP等语句,用于定义数据库、表结构等。
CREATE TABLE table_name (column1 datatype, column2 datatype, ...);2.4 过程性编程:T-SQL允许创建存储过程、触发器、函数等,以实现更复杂的业务逻辑。
CREATE PROCEDURE procedure_name ASBEGIN--T-SQL statementsEND;2.5 事务控制:T-SQL提供了BEGIN TRANSACTION、COMMIT、ROLLBACK等语句,用于控制事务的开始、提交和回滚。
实验二Transact-SQL语言基础(2)一、实验目的与要求:1、掌握T-SQL语言的基本概念、语法格式。
2、掌握T-SQL语言常规标示符的格式规则(即命名规则)。
3、熟悉T-SQL语言的数据类型。
4、掌握T-SQL语言常量的数据类型及各类型常量的表达。
5、掌握局部变量的概念、局部变量名的约定规则。
6、掌握T-SQL语言局部变量的定义语句(DECLARE)、赋值语句(SET和SELECT)。
7、掌握T-SQL语言简单输出语句(PRINT和SELECT)。
8、掌握T-SQL语言常用内部函数的使用。
注意:⑴函数名及函数的调用格式;⑵函数各参数(自变量)的数据类型及取值范围;⑶各参数(自变量)的顺序及作用;⑷函数值的数据类型。
9、掌握T-SQL语言各类型运算符及表达式的使用。
二、实验类型基本验证型三、实验内容(一)启动“Microsoft SQL Server Management Studio”并使用SQL 查询编辑器具体操作,见实验一。
(二)在SQL查询编辑器窗格中,输入以下练习的命令,理解数据类型、常量、变量、表达式、函数等相关的知识(不必交作业):1、有关常量的数据类型及表达。
(1) 字符串常量、数值常量及money常量Print ‘Shandong University’Select N‘Shandong University’,110,-1.32,1.3e9,$3000(2) bit常量和datetime常量Declare @a bit,@d datetimeSet @a=2Set @d=’2010/03/24 18:10’Select @a as ‘bit data’,@d as ‘datetime data’2、局部变量的定义、赋值与简单输出(注意:SET与SELECT语句的区别,PRINT和SELECT语句的区别)。
DECLARE @idno char(18),@sname varchar(20),@class_1 varchar(30),@bd datetime;Set @idno=’370101************’Select @sname=’Han Zhen’,@class_1=’database technology’Set @bd=substring(@idno,7,8)Select @idno,@sname,@class_1,@bd3、完成以下有关函数及表达式的练习。
第七课T-SQL语言基础课前导读基础知识重点知识基础知识SQL语言概述。
重点知识数据类型、常量、运算符和常用函数,读者应结合上机实战熟练相关操作。
课堂讲解在SQL Server 2000中,企业管理器是一个功能强大、操作方便的图形化管理工具,几乎所有的操作都可以在其中完成,但它仍不能完全取代SQL语句。
无论是SQL Server 2000,还是在其他的数据库中,SQL都扮演了重要的角色,要成为一名突出的数据库开发人员,首先就应该掌握SQL语言。
本课将介绍SQL语言的基本概况、数据类型、常量、运算符和常用函数等内容。
SQL语言概述数据类型常量运算符常用函数SQL语言概述SQL是Structured Query Language(结构化查询语言)的缩写,是关系数据库使用的标准数据库查询语言。
SQL在20世纪70年代由IBM开发出来,随着关系数据库管理系统的不断推出,SQL语言被广泛应用。
由于关系数据库供应商都根据需要定义了自己的SQL语法规则,例如,Microsoft使用的SQL为Transact-SQL(简称T-SQL),Oracle使用的SQL为SQL-Plus。
为了统一各种数据库产品中SQL语法,ANSI(American National Standard Institute,美国国家标准局)制定了SQL语言标准。
最早的ANSI标准于1986年完成,它也被叫做SQL-86,目前新的SQL标准是1992年制定的SQL-92。
很显然,各个数据库供应商不可能抛弃自己的专长来适应ANSI标准,所以业界使用的SQL语言基本上是以SQL-92为基础,在加上各供应商自己的特有语法。
所以,SQL语言标准有“业界标准”和“ANSI标准”之分。
SQL语言具有“非过程性”的特点,使用SQL编写的程序不能独立运行,必须在特定的数据库管理系统中使用,这与“过程性”的高级程序设计语言,如VB、VC等不同。
SQL语言中的语言可从功能上分为3类:数据定义语言DDL(Data Definition Language)、数据处理语言DML(Data Manipulation Language)和数据控制语言DCL(Data Control Language)。
数据定义语言:用于定义或修改数据库、数据表等对象的SQL语句称为数据定义语言。
例如,SQL Server中定义数据库使用的Create Database语句,定义数据表使用的Create Table语句,都是数据定义语言。
数据处理语言:用于完成数据处理的SQL语句称为数据处理语言。
例如,完成数据查询的Select 语句,完成添加数据的Insert语句,完成数据修改的Update语句,都是数据处理语言。
数据控制语言:用于数据库权限设置的语句称为数据控制语言。
例如,授权语句Grant、取消权限语句Revoke等都是数据控制语言。
SQL Server 2000中使用的SQL就是Microsoft的T-SQL,所以在本课中主要介绍T-SQL 的语法基础,包括数据类型、常量、运算符和常用函数等内容。
关于T-SQL的各种语句,将在本书后继课程中介绍使用到的部分常用语句。
数据类型当在定义数据表的字段或在程序中使用变量时,都会使用到数据类型,数据类型决定了一个数据如何存储以及可以执行的操作。
T-SQL中的数据类型可分为系统数据类型和用户自定义数据类型,下面介绍T-SQL的系统数据类型。
数据类型整数精确小数货币数据近似数字日期时间数据pubs数据库字符串Unicode字符串二进制数据其他数据类型整数整数数据类型用于定义存储整数(如1234,-456等)的字段和变量,包括bigint、int、smallint、tinyint、bit5种类型,如表7-1所示。
精确小数精确小数是指精度和小数点位置固定的数,如12.345,-100.05,精确小数类型包括decimal 和numeric,如表7-2所示。
货币数据货币数据是指以货币符号$开头的数据,如$12.345,$100.05。
货币数据类型包括money 和smallmoney,其精度都精确到小数点后4位,如表7-3所示。
近似数字近似数字指小数点位置不固定的数据,如1.23E+13,近似数字类型有Float和Real两种,如表7-4所示。
日期时间数据日期时间数据是指表示日期和时间的数据,如'2004-04-01 21:23:15'。
日期时间数据类型有datetime和smalldatetime,如表7-5所示。
字符串字符串是指文本数据,如'数据类型','abc'。
在SQL Server 2000中,使用双引号或单引号括起来的数据都为字符串。
字符串数据类型包括char、varchar和text,如表7-6所示。
Unicode字符串Unicode是双字节字符编码标准。
Unicode字符串中的字符使用两个字节存储,而普通字符采用一个字节存储。
Unicode字符串类型包括nchar、nvarchar和ntext,如表7-7所示。
二进制数据二进制数据是指Word文档、Excel电子表格以及bmp、gif和jpeg等图像文件。
二进制数据包括binary、varbinary和image,如表7-8所示。
其他数据类型其他数据类型指一些具有特殊作用的数据类型,如表7-9所示。
常量常量是指使用字符或数字表示出来的字符串、数值或日期等数据,表示一个特定数据值的符号。
根据数据类型,可将常量分为各种不同类型。
字符串常量Unicode字符串二进制常量bit常量datetime常量整型常量decimal常量float和real常量货币常量uniqueidentifier常量字符串常量字符串常量是指使用单引号作为定界符,由字母(a~z、A~Z和汉字等)、数字(0~9)以及特殊字符(如感叹号!、at符@和数字号#)等组成的字符序列,不包含任何字符的字符串,称为空字符串,表示为''。
在字符串中,可使用两个单引号来插入一个单引号。
下面是字符串的示例:'abcdef''123''数据类型''abc''def'Unicode字符串Unicode字符串的格式与普通字符串相似,但需在字符串前面加一个N进行区别,N前缀必须大写。
下面是Unicode字符串的示例。
N'abcdef'N'123'N'数据类型'二进制常量二进制常量是指使用0x作前辍的十六进制数字字符串,如下所示。
0x1230xABC单独的0x视为一个空二进制常量。
bit常量bit常量使用数字0或1表示,并且不使用引号。
如果使用一个大于1的数字,它将被转换为1。
datetime常量datetime常量是用单引号括起来的日期和时间数据,如下所示。
'2004-3-12''1 may,2003''2004年3月12日''04/03/12 12:00:00'整型常量整型常量是指不带小数点的整数,例如,123,+123,-100。
decimal常量decimal常量是指带小数点的数,例如,123.56,+45.67,-10.005。
float和real常量float和real常量是指使用科学记数法表示的数例如,1.2E5,+0.45e-9,+5.7E12。
货币常量货币常量是指以$符号开头的数字,如下所示。
$12,$542023.14。
uniqueidentifier常量uniqueidentifier常量是指表示全局惟一标识符(GUID)值的字符串,可以使用字符或二进制字符串格式指定,如下所示。
'6F9619FF-8B86-D011-B42D-00C04FC964FF'0xff19966f868b11d0b42d00c04fc964ff运算符T-SQL的运算符可分为算术运算符、赋值运算符、位运算符、比较运算符、逻辑运算符、字符串连接符和一元运算符,下面分别进行介绍。
算术运算符赋值运算符位运算符比较运算符逻辑运算符字符串连接符运算符的优先顺序算术运算符算术运算符用于完成两个表达式的数学运算,表7-10列出了各个算数运算符。
赋值运算符赋值运算符只有一个,即=(等号),用于为字段或变量赋值。
例如,下面的语句先定义一个int变量@xyz,然后将其值赋为123。
declare @xyz intset @xyz=123位运算符位运算符用于在两个数之间执行位操作,T-SQL的位运算符如表7-11所示。
位运算符的操作数可以是整型或二进制数据类型(binary和varbinary,但不包括image 数据类型)的任何数据,并且,两个操作数不能同时是二进制数据。
表7-12列出了位运算支持的操作数数据类型。
比较运算符比较运算符用于测试两个表达式是否相等,除了text、ntext或image数据类型的表达式外,比较运算符还可用于其他所有类型的表达式。
如表7-13所示列出了比较运算符及其含义。
比较运算的结果为布尔数据类型,它有3种值:TRUE、FALSE和UNKNOWN 当SET ANSI_NULLS为ON时,带有一个或两个NULL表达式的比较运算结果为UNKNOWN。
当SET ANSI_NULLS为OFF时,上述规则同样适用,但两个NULL表达式相等比较运算结果为TRUE。
布尔数据类型比较特殊,不能用于定义变量或表中字段的数据类型,也不能在结果集中返回布尔数据类型。
布尔表达式通常用在WHERE子句或流控制语言语句(如IF和WHILE)中表示条件,如下所示。
use northwind --指定查询使用的数据库declare @x int --声明一个变量@xset @x=100IF (@x <> 0) --根据条件执行查询SELECT *FROM ProductsWHERE ProductID < @x --查询Products表中ProductID小于100的记录逻辑运算符逻辑运算符用于对某个条件进行测试,和比较运算符一样,逻辑运算的运算结果为布尔数据(TRUE或FALSE)。
如表7-14所示列出了逻辑运算符及其含义。
字符串连接符字符串连接运算是指使用加号(+)将两个字符串连接成一个字符串,加号作为字符串连接符。
例如,'abc' +'123'结果为'abc123'。
运算符的优先顺序如果一个表达式中使用了多种运算符,则运算符的优先顺序决定计算的先后次序。
计算时,从左向右计算,先计算优先级高的运算,再计算优先级低的运算。