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

