@开头的表示局部变量或参数,以##开头的标识符表示全局临时对象,以@@开头的表示全局变量,也称为配置函数
如不符合规则的标识符,被称为分隔标识符,需用“”或[ ] 对其进行分割,例如:SELECT * FROM [my table]
在数据库XSCJ 中定义一个长度为12的字符串类型变量@student,对 该变量进行赋值,并且查询出“学生基本信息表”中该变量所指定姓名的学生的信息。
USE XSCJ
GO
DECLARE @student CHAR(12)
SET @student='Brown'
SELECT * FROM 学生基本信息表 where 姓名=@student
在数据库XSCJ中定义两个日期时间类型的变量@max_csrq、@min_csrq,分别用于查询"学生基本信息表"中"出生日期"的最大值、最小值。
USE XSCJ
GO
DECLARE @max_csrq DATETIME,@min_csrq DATETIME
SELECT @max_csrq=MAX(出生日期),@min_csrq=MIN(出生日期)FROM 学生基本信息表
PRINT @max_csrq
PRINT @min_csrq
计算XSCJ数据库中课程编号为003的课程总成绩和平均成绩
USE XSCJ
GO
SELECT SUM(成绩)AS'课程总分‘,AVG(成绩)AS'课程平均分’
FROM 成绩表 WHERE 课程编号=‘003’
GO
通过对“学生基本信息表”中的“出生日期”字段进行计算,查询每一位学生的年龄。
SELECT 学号,姓名,DATEDIFF(yy, 出生日期,GETDATE() ) FROM 学生基本信息表
将学生95021的性别改为女
UPDATE Student SET sex='女‘
WHERE Sno='95021';
将newstudent 的内容合并到student表中,学号相同的以newstudent为准,学号不存在的将newstudent的记录插入到student中。
Merge into student s1 using newstudent s2 ON (s1.sno=s2.sno)
when matched then update set s1.name=s2.name, s1.sex=s2.sex,......
when no matched then insert values( s2.sno,s2.name,s2.sex,.. );
查找英文名称中包含stone的电影名称
SELECT VName,VEngName
FROM Video
WHERE UPPER(VEngName) like '%stone%';
LENGTH 确定某一列的数据长度
SELECT VName 片名,LENGTH(VName) 片名长度
FROM Video
WHERE LENGTH (VName)>10 ORDER BY VName ;
TO_DATE 单行函数
INSERT INTO EMPLOYEE VALUES
(
7369,
20,
'NAME'
'TEL'
TO_DATE('17/12/1995','DD/MM/YY')
);
显示员工的电话 NVL(input_value,result_if_value_is_null)
input_value通常是某个一列名
result_if_value_is_null可以是字面值,或其它任何表达式
要求两个参数必须属于同一数据类型
SELECT EName ,NVL(EPhone,'N/A') FROM EMPLOYEE