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 约束名
相关文章推荐
- Oracle获取两个日期相差的小时
- ODI数据抽取教程_02创建简单项目
- Redis学习之关闭持久化
- Redis学习之关闭持久化
- mysql主主互备模式配置
- MySQL 数据库及表的创建
- Redis
- redis--sorted sets类型及操作
- 数据库无法创建数据库视图
- MySQL关于日期的查询sql
- [MySQL] 添加索引
- mysql关联查询怎么在查询软件中一下就能查询到所有的关联数据,修改的时候也方便,对比数据
- mysql之通过日志定时备份和恢复(上)
- SQL截取非固定长度(有关键字符)的字符串
- Ubuntu16.04手动安装MongoDB
- 使用OrmLite数据库实现本地的账号登录,注册功能
- 开启mysql的远程访问权限
- MYSQL性能优化分享(分库分表)
- Oracle之表空间、索引、管理权限及角色
- SQL中遇到多条相同内容只取一条的最简单实现