Transact-SQL语言

1.SQL语句通常分成4类:数据查询语言、数据操作语言、数据定义语言和数据控制语言

2.设置日期格式

SET DATEFORMAT mdy

GO

DECLARE @datevar datetime

SET @datevar='03/21/2013'

SELECT @datevar

 

3.局部变量与全局变量

  局部变量:用DECLARE语句声明,用SET语句为其赋值

   定义整形局部变量和一个可变长字符局部变量并赋值

DECLARE @local_variable_int int, @local_variable_char nvarchar(9)

SELECT @local_variable_int=40

SET @local_variable_char='welcome to guangzhou'

SELECT @local_variable_int

SELECT @local_variable_char

GO

  全局变量:是SQL Server 系统所提供并赋值的变量,用户不能建立全局变量,也不能使用SET语句去修改全局变量的值,全局变量的名字以@@开头

  常用的全局变量:

  @@connections:返回今天试图连接到本服务器的连接数目

  @@rowcount:返回上一条T-SQL语句影响到的数据行数

  @@error:返回上一条T-SQL语句执行后的错误号

  @@procid:返回当前存储过程的ID标识

  @@remserver:返回登录记录中远程服务器的名字

  @@spid:返回当前服务器进程的ID标识

  @@version:返回当前SQL Server 服务器的版本、处理器类型等

4.数学函数

SELECT ABS(-2) /*绝对值*/,

       SQRT(16)/*开方*/,

       POWER(4,2)/*平方*/,

       RAND(2)/*返回0到1之间的随机float值*/

5.字符串函数

SELECT SUBSTRING('MICROSOFT SQL SERVER 2012 ',11,10),/*SQL SERVER*/

       REVERSE('MICROSOFT')/*逆序返回*/

 6.流程控制语言

   CASE表达式

CASE expression 

{WHEN expression THEN result}[,...n]

[ELSE result]

END

   BEGIN... END

BEGIN 

 Sql_statement

 END

  IF...ELSE

IF Boolean_expression

 Sql_statement

 [ ELSE [IF Boolean_expression]

  Sql_statement

 ]

  WHILE语句

 WHILE boolean_expression

 sql_statement

 [BREAK]

 {Sql_statement}

 [CONTINUE]

 {Sql_statement}

7.ERA模型

  在ERA模型中,实体一般用长方形表示,关系一般用棱形,属性一般用椭圆形

 

8 从student 表检索名字的第二个字不是“红”或“虹”的同学的资料;

  李红[大](student表中有两个学生“李红”同名同姓,分别以李红[大]、李红[小]加以区分)同学的信息

select * from student where student_name like '_[^红,虹]%'



select * from student where student_name like '李红b[大b]' escape 'b'

  在ESCAPE 子句中,定义"b"为转义字符,这样,like 子句中紧跟字符"b"后面的字符被定义为匹配字符而不再是通配符

 

9.多表查询:基于主键和外键指定查询条件,连接条件可使用"主键=外键"

  从student、course及student_course 三个表中检索学生的学号,姓名,学习课程号、学习课程名及课程成绩

select student.student_id,student.student_name,student_course.course_id,course.course_name,student_course.grade
from student, course,student_course where student.student_id =student_course.student_id and course.course_id =student_course.course_id

10.使用UNION子句:把两个或多个SELECT 语句查询的结果组合成一个结果集

select student_id,student_name from student

union

select teacher_id,teacher_name from teacher

11.Having 子句 是针对Group By 子句的,没有group by 子句时使用having 子句是没有意义的

select student_id,sum(grade) from student_course 

group by student_id 

having sum(grade)>450

12.使用compute 和coupute by 子句

select  student_id ,grade from student_course order by student_id 

compute sum(grade)

 

select student_id,grade from student_course order by student_id 

compute sum(grade) by student_id

13.若建临时表,必须在表前设置#(局部临时表)或##(全局临时表)#temp_grade

14.删除表的列:

alter table [dbo].[Students] drop column [student_num]

  修改表的列

alter table [dbo].[Students] 

alter column [course_id] int not null

 

 

你可能感兴趣的:(t-sql)