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) | 说明 |
Year | Yy | 年 1753 ~ 9999 |
Quarter | 季 1 ~ 4 | |
Month | Mm | 月1 ~ 12 |
Day of year | Dy | 一年的日数,一年中的第几日 1-366 |
Day | Dd | 日,1-31 |
Weekday | Dw | 一周的日数,一周中的第几日 1-7 |
Week | Wk | 周,一年中的第几周 0 ~ 51 |
Hour | Hh | 时0 ~ 23 |
Minute | Mi | 分钟0 ~ 59 |
Second | Ss | 秒 0 ~ 59 |
Millisecond | Ms | 毫秒 0 ~ 999 |
+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)下载本文