T-Sql高级查询

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

高级理论部分

简单子查询语法:

select......from表where列>(子查询)

其中:子查询语句必须放置在一对圆括号内

*********

⏹习惯上,外面的查询成为父查询,圆括号中嵌入的查询称为子查询

⏹注意:SQL编译时:先执行父查询,后执行子查询,即先父后子

●SQL执行时:先执行子查询,后执行父查询,即先子后父

*********

表命名别名(alias) 的方法:

----1.使用AS 关键字,符合ANSI标准

select列表from表名as表的别名

----2.使用空格,简便的方法

select列表from表名表的别名

●提示:

◆1>.般来说,表连接都可以用子查询替换,但反过来却不一定,有的子查询不能用表连接来

替换

◆2>.查询比较灵活,方便,形式多样,适用于作为查询的筛选条件,而表连接更适合于查看

多表的数据

●注意:

⏹当某个表命名别名后,在select 语句中出现该表的列需要指定表名时,就必须统一使用该表的

别名,

⏹否则将产生语法错误

IN 子查询:

◆后面可跟随返回多条记录的子查询,用于检测某列的值是否存在于某个范围中NOT IN 子查询:

◆后面可跟随返回多条记录的子查询,用于检测不存在于某个范围中的某列的值EXISTS :

◆关键字能够检测数据是否存在

◆语法:

if exists (子查询)

语句

其中:如果子查询的结果非空,则Exists将返回真(true),否则返回假(false)

NOT EXISTS子句:

EXISTS和IN 一样,同样允许添加not关键字实现取反操作,not exists 表示不存在子查询注意事项:

⏹子查询语句可以嵌套在SQL 语句中任何表达式出现的位置

●嵌套在select 语句的select 子句中的子查询语句如下:

⏹select (子查询)from表名

子查询结果为单行单列,但不必指定列的别名

●嵌套在select 语句的from 子句中的子查询语句如下:

⏹select*from (子查询)as表的别名

必须为表指定别名

⏹在子查询的select 子句中不能出现TEXT 、NTEXT、IMAGE数据类型的列

⏹目前大部分数据库管理系统的编译器不支持在子查询语句中查询二

进制类型的数据

⏹只出现在子查询中而没有出现在父查询中的表不能包含在输出列中

SQL为列命名别名的方法

◆使用AS 关键字:

⏹select列名as列的别名from表名

◆使用空格:

⏹select列名列的别名from表名

◆使用赋值运算符,SQL Server 支持的方式:

⏹select列的别名=列名from表名

列命名别名时注意的问题:

⏹当使用中文列名时,可不写引号,但千万不能使用全角引号,否则查询会出错

⏹当使用的英文列名超过两个单词时,必须使用引号将列名括起来

合并多个表中的数据的方法:

◆联合——合并多个数据集中的行

◆子查询——将一个查询嵌套在另一个查询中

◆连接——合并多个数据表中的列

基础理论部分

◆在查询中使用的函数,根据用途,把函数分为四类

字符串函数:

用于控制返回给用户的字符串

◆Charlndex:用来寻找一个指定的字符串在另一个

字符串的起始位置

◆len:返回传递给它的字符串长度

◆upper:把传递给它的字符串转化成大写

◆ltrim:清除字符左边的空格

◆rtrim:清除字符右边的空格

◆right:从字符右边返回指定数目的字符

◆replace:替换一个字符串中的字符

◆stuff:在一个字符串中,删除指定长度的字符,并

在该位置插入一个新的字符

日期函数

getdate:取得当前的系统日期

●例如:select getdate()

●返回:今天的日期

dateadd:将指定的数值添加到指定的日期部分后的日期

●例如:select dateadd

(mm,4,‘01/01/1999’)

●返回:以当前的日期格式返回05/01/1999

datediff:两个日期之间的指定日期部分的区别

●例如:select

datediff(mm,‘01/01/1999’,‘05/01/19

99’)

●返回:4

datename:日期中指定日期部分的字符串形式

●例如:select

datename(dw,‘01/01/2000’)

●返回:saturday

datepart:日期中指定日期部分的整数形式

●例如:select

datepart(day,‘01/15/2000’)

●返回:15

数学函数

⏹abs:取数值表达式的绝对值

例如:select abs(-43)

返回:43

⏹ceiling:取大于或等于指定数值,表达式的最小整数

例如: select ceiling(43.5)

返回:44

⏹floor:取小于或等于指定表达式的最大整数

例如:select floor(43.5)

返回:44

⏹power:取数值表达式的幂值

例如:lelect power(5,2)

返回: 25

⏹round:将数值表达式四舍五入为指定精读

例如:select round(43.543,1)

例如:43.5

⏹sign:对于正数返回+1,对于负数返回-1,对于0返回

例如:select sign(-43)

返回:43

⏹sqrt:取浮点表达式的平方根

例如:select sqrt(9)

返回:3

系统函数

◆convert:数据类型转换

●例如:select convert(varchar(5)),12345)

●返回:字符串12345

相关文档
最新文档