1、 SQL和T-SQL
SQL:1974年Boyce提出,IBM公司研制的数据库管理系统原形系统System R实现了这种语言。
sql是一种结构化查询语言 。
T-SQL(Transact-SQL): T-SQL 是标准 SQL 程序设计语言的增强版,它是用来让应用程序与 SQL Server 沟通的主要语言。T-SQL 提供标准 SQL的DDL 和 DML 功能,加上延伸的函数、系统预存程序以及程序设计结构(例如 IF 和 WHILE)让程序设计更有弹性。T-SQL 的功能随着新版的 SQL Server 而持续成长。
T-SQL是标准SQL的加强版,除了标准的SQL命令之外还对SQL命令做了许多扩充,提供类似Basic、C等第三代语言的基本功能,如变量说明、流程控制、功能函数等。
2、T-SQL的组成
DML(数据操作语言)用来查询、插入、删除和修改数据库中的数据,如:SELECT、
INSERT、UPDATE、DELETE等。
DCL(数据控制语言)用来控制数据库组件的存取许可、存取权限等命令,如GRANT、REVOKE等。
DDL(数据定义语言):用来建立数据库、数据库对象和定义列,大部分是一CREATE开头的命令,如CREATE TABLE、CREATE VIEW、DROP TABLE等。
除此之外,T-SQL还包括变量说明、内嵌函数以及其它命令等。
3、T-SQL中的条件表达式和逻辑运算符
3.1、条件表达式
SQL Server中的表达式可以包含以下一个或多个参数:
常量:表示单个指定数据值的符号。一个常量由一个或多个字母、数字字符(字母a~z、A~Z、数字0~9)或符号(!、@、#等)组成。字母和Datetime需要用’’引号括起来,二进制字符串和数字常量不需要。
列名:表中列的名称,表达式中仅充许使用列的名称。
一元运算符:仅有一个操作数的运算符,其中“+“表示正数,”-“表示负数,”~“表示补数运算符。
二元运算符:将两个操作数组合执行操作的运算符。二元运算符可以是算术运算符、赋值运算符(=)、位运算符、比较运算符、逻辑运算符、字符串串联(或联接)运算符(+)或一元运算符。
比较运算符
运算符 |
含义 |
= |
等于 |
> |
大于 |
< |
小于 |
>= |
大于或等于 |
<= |
小于或等于 |
<> |
不等于 |
! |
非 |
3.1.1、通配符运算符
通配符
通配符 |
解释 |
示例 |
‘_’ |
一个字符 |
A Like ‘C_’ |
% |
任意长度的字符串 |
B LIKE ‘CO_%’ |
[] |
括号中所指定范围内的一个字符 |
C Like ‘9W0[1-2]’ |
[^] |
不在括号中所指定范围内的任意一个字符 |
D Like ‘9W0[^1-2]’ E Like ‘%[A-D][^1-2]’ |
通配符经常与LIKE关键字一起配合使用。
TelCode Like ‘13[0-9] [0-9] [0-9] [0-9] [0-9] [0-9] [0-9] [0-9] [0-9]’
3.2、逻辑表达式
T-SQL支持的逻辑运算符有AND(逻辑与)、OR(逻辑或)、NOT(逻辑非)。
当一个语句中使用了多个逻辑运算符时,首先求NOT的值,然后求AND的值,最后再求OR的值。
4、使用T-SQL插入数据
4.1、使用INSERT插入数据行
INSERT [INTO] <表名> [列名] VALUES <值列表>
其中:
[INTO]是可选的,可以省略。
列名是可选的,如果省略,将依次插入。
多个列名和多个值列表用逗号分隔。
INSERT INTO Students(Sname,Saddress,Sgrade,Ssex) VALUES(‘新新’,’湖南’,21,1)
4.1.1、标识列不给值,自动生成值。默认值使用default,注释单行用“--“,注释多行用
”/**/“。
4.2、一次插入多行数据
4.2.1、通过INSERT INTO(INSERT SELECT)语句将现有表中的数据添加到新表
INSERT INTO 新表名 列名
SELECT 列名
FROM 原表名
例如:
INSERT INTO TongXunLu(‘姓名’,’地址’,’电子邮箱’)
SELECT Sname,Saddress,Semail
FROM Students
SELECT语句用于查询。上面把旧表中已经存在的数据插入到新表中,避免了录入大量重复的数据项。
4.2.2、通过SELECT INTO语句将现有表中的数据添加到新表
从一个表中选择一些数据插入到新表,这个新表是执行查询语句的时候创建的,不能够预先存在。
SELECT 旧表名.列名, 旧表名.列名, 旧表名.列名,……
INTO 新表名
FROM 旧表名
例如:
SELECT Students.Sname,Students.Saddress,Students.Semail,IDENTITY(int,1,1) As StudentId
INTO TongXunLu
FROM Students
4.2.3、通过UNION关键字合并数据进行插入
UNION语句用于将两个不同数据或查询结果合并组合的一个新的结果集。不同的数据或查询结果,要求数据个数、顺序、数据类型都一致,因此,当向表中重复插入多次数据的时候,可以使用SELECT UNION来简化操作。
例:
SELECT Students (Sname,Sgrade,Ssex)
SELECT ‘新新1’,1,0 UNION
SELECT ‘新新2’,1,1 UNION
SELECT ‘新新3’,1,0 UNION
SELECT ‘新新4’,1,0 UNION
SELECT ‘新新5’,1,1 UNION
SELECT ‘新新6’,1,0
5、使用T-SQL更新数据
UPDATE <表名> <列名=更新值> [WHERE <更新条件>]
SET后面可以有多个列名。
如果没有WHERE,整个表的所有数据行将被更新,有可能导致数据的丢失。
6、使用T-SQL删除数据
6.1、使用DELETE删除数据
DELETE FROM <表名> [WHERE <删除条件>]
例如:
DELETE FROM Students WHERE Sname=’新新’