您的位置:首页 > 数据库

T-SQL

2016-09-27 14:37 99 查看

零碎知识

1、T—SQL 的组成

1、DML(数据操作语言 Data Manipulation Language)

查询、插入、删除和修改数据库中的数据。SELECT、INSERT、UPDATE、DELETE 等;

2、DCL(数据控制语言 Data Control Language)

用来控制存取许可、存取权限等。GRANT、REVOKE 等。

3、DDL(数据定义语言 Data Definition Language)

用来建立数据库、数据库对象和定义其列。CREATE TABLE 、DROP TABLE 等。

4、变量说明、流程控制、功能函数

定义变量、判断、分支、循环结构等。日期函数、数学函数、字符函数、系统函数等。

2、sysdatabases 表在 master 数据库中,保存着当前系统中所有的数据库



USE master  --设置当前数据库为 master,以便访问 sysdatabases 表
GO
IF  EXISTS(SELECT * FROM  sysdatabases WHERE  name ='stuDB')
DROP  DATABASE stuDB


3、EXISTS 判断是否存在

4、sysobjects 保存当前数据库表信息



IF EXISTS(SELECT * FROM  sysobjects  WHERE  name='stuInfo' )
DROP  TABLE  stuInfo
--建表
CREATE  TABLE  stuInfo    /*-创建学员信息表-*/
(
stuName  VARCHAR(20)  NOT  NULL ,  --姓名,非空(必填)
stuNo   CHAR(6)  NOT  NULL,   --学号,非空(必填)
stuAge  INT  NOT  NULL,  --年龄,INT 类型默认为 4 个字节
stuID  NUMERIC(18,0),     --身份证号
stuSeat   SMALLINT  IDENTITY (1,1),   --座位号,自动编号
stuAddress   TEXT   --住址,允许为空,即可选输入
)
GO


GO

作用:

向 SQL Server 实用工具发出一批 Transact-SQL 语句结束的信号.

1、用户必须遵照使用批处理的规则.例如,在同一批处理中,创建数据库之后不能直接使用其新建的数据库.局部(用户定义)变量的作用域限制在一个批处理中,不可在 GO 命令后引用.

2、GO 命令和 Transact-SQL 语句不能在同一行中.但在 GO 命令行中可包含注释.

3、不同批处理是分开执行的,一个查询失败不会影响另外一个查询.

4、GO [count] count 为正整数.指定GO 之前的批处理执行指定的次数.

GO 10

–批处理执行10次,

T-SQL语法

1 注释

单行注释:–

多行注释:

2 结束T-sql语句

在每个命令后用分号“;”表示结束,但是分号是可选择的,不要也可以

不要在try end 后面添加分号

不要在 if 后面添加分号

必须在get 之前添加分号

3游标

概念:游标实际上是用户在系统中开设的一个数据缓冲区,存放SQL语句的执行结果。

游标的使用:游标中存放查询结果的一组记录,用户可以通过移动游标指针逐一访问记录,

并赋给主变量,交由主语言进行进一步处理。

使用游标的五个步骤:

1,声明游标

2,打开游标

3,利用游标读取、修改或删除所取的行

4,关闭游标

5,释放游标

4 字符串连接符+

SELECT ‘WQJFF’+’88KK’

–while 语句

declare @i int

set @i = 1

while @i <= 10

begin

print @i

set @i=@i + 1

end

5 waitfor

waitfor delay ‘00:00:01’

print ‘哈哈,现在是10点41’

waitfor time ‘10:41’

print ‘哈哈,现在是10点41’

SELECT * FROM SYS.MESSAGES

6 CHARINDEX

CHARINDEX ( char1 ,string1 [ , start_location ] )

char1 一个表达式,其中包含要查找的字符的序列。

string1 一个表达式,通常是一个为指定序列搜索的列。string1 属于字符串数据类别。

start_location 开始在 string1 中搜索 char1 时的字符位置。

如果 start_location 未被指定、是一个负数或零,则将从 string1 的开头开始搜索。start_location 可以是 bigint 类型。

string1 中包含 char1 时返回字符位置

string1 中不包含 char1 时返回0

SELECT CHARINDEX(‘Q’,’WQFDF’)

返回2

SELECT CHARINDEX(‘WQFDF’,’Q’)

返回0

如果 char1 或 string1 之一为 NULL,并且数据库兼容级别为 70 或更高,则 CHARINDEX 将返回 NULL。如果数据库兼容级别为 65 或更低,则 CHARINDEX 将仅在 char1 和 string1 都为 NULL 时才返回 NULL 值。

SELECT CHARINDEX(NULL,’12345’)

返回NULL

约束

1、主键(primary key)

ALTER TABLE stuInfo

ADD CONSTRAINT PK_stuNo PRIMARY KEY (stuNo)

3

SQL Server 编程入门 作者:徐佳

2、唯一性(uinque)

ALTER TABLE stuInfo

ADD CONSTRAINT UQ_stuID UNIQUE (stuID)

3、默认填写(default(‘……’ ) for)

ALTER TABLE stuInfo

ADD CONSTRAINT DF_stuAddress

DEFAULT (‘地址不详’) FOR stuAddress

4、检查(check(……))

ALTER TABLE stuInfo

ADD CONSTRAINT CK_stuAge

CHECK(stuAge BETWEEN 15 AND 40)

5、外键(foreign key(列名) references 主表名(列名))

ALTER TABLE stuMarks

ADD CONSTRAINT FK_stuNo

FOREIGN KEY(stuNo) REFERENCES stuInfo(stuNo)

6、删除约束

ALTER TABLE 有约束的表名 DORP 约束名
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: