视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
T-SQL常用语句总结
2025-09-25 17:34:56 责编:小OO
文档
基本T-SQL语句

1.增加(插入)语句

插入一条记录

Insert into 表名 (列名1,列名2,列名3)

Values (值1,值2,值3)

插入多条记录(从表1中将数据复制到领表2中)

Insert into 表2(列名1,列名2,列名3)

Select表1.列名1,表1.列名2,表1.列名3

From 表1

注:执行这条语句之前,表2必须事先已经建好

插入多条记录(从表1中将数据复制到新建的表2中)

Select表1.列名1,表1.列名2,表1.列名3,identity(int,1,1) as id

Into 表2

From 表1

  注:常用于创建临时表

插入多条记录

Insert into 表1 (列名1,列名2,列名3)

Select 值1,值2,值3 union

Select值1,值2,值3 union

Select值1,值2,值3

注:这里值1,值2,值3必须是常量

插入语句注意事项:1)插入的列个数必须和插入的值个数一致

                  2)插入的值必须和插入的列的类型一致

                  3)如果表中某列不允许为空,那么插入一行记录时必须为该列插入值

                  4)如果表中有标识列,不能为标识列插入值

                  5)如果表中某列有默认值,为该列插入值时,只能用

                    Insert into 表名 (列名1,列名2,列名3)

Values (值1,值2,default)

或者干脆就不为该列插入值

2.更新(修改)语句

Update 表名 set 列名1=值1,列名2=值2

【Where 更新条件】

3.删除语句

Delete from 表名 【where 删除条件】

Truncate 表名

注:这两种语句都只是删除表中的记录,删除过程中一定要注意如果该表有外键约束,一定要先删除外表

4.查询语句

基本查询语句

Select列名1,列名2,列名3 from 表1【 where 查询条件】

或 

Select * from 表1 (查询表中所有的记录)

为查询列重命名

Select列名1 as 新命1,列名2 as新命2,列名3  as新命3 from 表1【 where 查询条件】

查询中的常量列

Select 值1,值2,值3 from 表

排序查询

1)要求返回前n个记录

Select top n 列名1,列名2,列名3 

From 表1

Order by  列名 desc

2)要求返回整个表中的n%的记录

Select top n% 列名1,列名2,列名3 

From表1

 注:order by 中desc 降序,asc升序(不写默认为升序)

聚合函数

1)求和

Select sum(列名1) as 总和

From 表

【Where 条件】

2)求平均

Select avg(列名) as 平均

     From表

     【Where 条件】

3)求最大值、最小值

 Select max(列名) as 最大值, min(列名) as 最小值

 From 表

 【Where 条件】

3)统计个数

Select count(*) as 个数 

From 表

【Where 条件】

分组查询

Select 列名1,avg(列名2) as 平均值

From 表1

【Where 条件】

Group by 列名1

【having 条件】

注:1)如果查询中有聚合函数还有其他列,这个列必须包含在group by 的后面

    2)在查询语句中,where先过滤掉整张表中不符合条件的数据,然后再根据Group by后面的列进行分组,having是在分完组之后再过滤掉各个组内不符合条件的数据,最后再使用聚合函数统计剩下的数据

   

常用的字符串函数

1:replace 函数

第一个参数你的字符串,第二个参数你想替换的部分,第三个参数你要替换成什么

select replace('lihan','a','b')

结果:lihbn

2:substring函数

第一个参数你的字符串,第二个是开始替换位置,第三个结束替换位置

select substring('lihan',0,3);

结果li

3: charindex函数

第一个参数你要查找的char,第二个参数你被查找的字符串,第三个查找的起始位置, 返回参数一在参数二的位置

select charindex('a','lihan',1)

结果:4

4:stuff函数(四个参数)

函数将字符串插入另一字符串。它在第一个字符串中从开始位置删除指定长度的字符;然后将第二个字符串插入第一个字符串的开始位置。

SELECT stuff('lihan',2,3,'lihan')

结果:llihann

5:left函数

返回最左边N个字符,由参数决定

select left('lihan',4)

结果:liha

6 right函数

返回最右边N个字符,由参数决定

select right('lihan',4)

结果:ihan

(所影响的行数为 1 行)

7:len函数

返回参数长度

select len('lihan')

结果:5

8:lower和upper函数

参数大小写转化

select lower(upper('lihan'))

结果:lihan

9:ltrim和rtrim函数

删除左边空格和右面空格

select ltrim('    lihan                 ')

结果:lihan                 

select rtrim('    lihan')

 结果:lihan

常用的日期函数

1.  当前系统日期、时间 

    select getdate()

2. dateadd  在向指定日期加上一段时间的基础上,返回新的 datetime 值

   例如:向日期加上2天 

   select dateadd(day,2,'2004-10-15')  --返回:2004-10-17 00:00:00.000

3. datediff 返回跨两个指定日期的日期和时间边界数。

   select datediff(day,'2004-09-01','2004-09-18')   --返回:17

4. datepart 返回代表指定日期的指定日期部分的整数。

  SELECT DATEPART(month, '2004-10-15')  --返回 10

5. datename 返回代表指定日期的指定日期部分的字符串

   SELECT datename(weekday, '2004-10-15')  --返回:星期五

6. day(), month(),year() 返回指定日期的、月、年

select 本年第多少周=datename(week,'2004-10-15')

参数的设定值如下:

缩 写(Sql Server)

说明
YearYy年 1753 ~ 9999

QuarterQq季 1 ~ 4

MonthMm月1 ~ 12

Day of yearDy一年的日数,一年中的第几日 1-366

DayDd日,1-31

WeekdayDw一周的日数,一周中的第几日 1-7

WeekWk周,一年中的第几周 0 ~ 51

HourHh时0 ~ 23

MinuteMi分钟0 ~ 59

SecondSs秒 0 ~ 59

MillisecondMs毫秒 0 ~ 999

Select 当前日期=convert(varhar(4),datepart(yy,getdate()))+’-‘+convert(varchar(2),datepart(mm,getdate()))+’-‘

+convert(varchar(2),datepart(dd,getdate()))

常用的通配符和模糊查询

通配符只能与like一起使用,且用于字符类型的数据

“%”代表“包含0个或更多字符的任意字符串”;

“_”代表“任何单个字符”;

“[]”代表“指定范围(例如 [a-f])或集合(例如 [abcdef])内的任何单个字符”;

“[^]”代表“不在指定范围(例如 [^a - f])或集合(例如 [^abcdef])内的任何单个字符”。

在某个范围内查询(通常用于数字和日期类型数据)

Select * from 表名

Where 列名 between 值1 and 值2

注:值2要大于值1

在列举值内查询(不数据类型)

Select * from 表名

Where 列名 in(值1,值2,值3)下载本文

显示全文
专题