常用SQL语句总结(1)

插入

insert into tableName values(),当不指定插入的列时默认对所有列插入值,但自增的Id列除外;当对指定的列插入值时,那值、列的顺序、数量都要对应。

/*插入单行*/
1、insert into Scores values(2016001,89,86,96)
//插入时,只要格式符合要求所有非文本值都能以文本方式插入
2insert into Scores(StudentId, CSharp, SqlServer, C语言) values(2016001,'89','86','96')
3insert into dbo.StudentClass(ClassId,ClassName)
select StudentId,UserName from dbo.Students where StudentId=2016001

//插入时间时可以用getdate()函数,注意不要加单引号''
insert into Students(StudentId,StudentName,AddTime)values
(2016006,'蝈蝈',getdate())

/*当表名以数字开头时,必须用把[]表名括起来,增删查改操作都要括起来*/
1insert into [360Scores] values(2016001,'89','86','96')
2insert into [360Scores](StudentId, CSharp, SqlServer, C语言) values(2016001,89,86,96)

//Sql2008插入多行
insert into Scores values
(2016002,'85','92','91'),
(2016003,'91','93','83'),
(2016004,88,95,96)

//Sql2005或Sql2008插入多行
1insert into dbo.Scores(StudentId,StudentName)
select StudentId,UserName from dbo.Students
2INSERT INTO [360_EvaluatePersons](UserId,EvaluateType)
select '1','1' union all
select '2','1' union all
select '3','1'  
3insert into dbo.Scores(StudentId,StudentName)
select StudentId,UserName from dbo.Students where StudentId=2016001 union all
select StudentId,UserName from dbo.Students where StudentId=2016002
4insert into dbo.Scores(StudentId,StudentName)
select StudentId,UserName from dbo.Students where StudentId=2016001 union all
select StudentId,UserName from dbo.Students where StudentId>2016005

删除

1、delete Students where StudentId>2016005 and StudentId=2016001 
2delete Students where StudentId in (2016001,2016002)
3delete UserInfo where StudentId like '%02%'
//<>1等价于!=1
4delete Students where DeleteFlag<>1
5delete Students where DeleteFlag!=1

查询

1、select * from Students where StudentId>2016005 and StudentId=2016001 
2select StudentId,StudentName,PhoneNumber from Students where StudentId in (2016001,2016002)
3select StudentId,StudentName,PhoneNumber from Students where StudentId like '%02%'
//_是占位符,like '_0%'表示查询第一位为任意值、第二位是0、后边的内容为任意值的结果
4select StudentId,StudentName,PhoneNumber from Students where StudentId like '_0%'
//获取值为null的项要用 IS NULL而不是=null
5select StudentId,StudentName,PhoneNumber from Students where 
StudentId>2016005 and (DeleteFlag IS NULL OR  DeleteFlag=0)
6select StudentId as '用户Id',StudentName as '用户名',PhoneNumber from Students where 
StudentId>2016005 and (DeleteFlag IS NULL OR  DeleteFlag=0)
7select '用户Id'=StudentId ,'用户名'=StudentName ,PhoneNumber from Students where 
StudentId>2016005 and (DeleteFlag IS NULL OR  DeleteFlag=0)
//case when then列无列名
8select UserId,UserName,(case when Gender='0' then '女' when Gender='1' then '男' else '未知' end) from UserInfo
//case when then列有列名,说明case when then列是在源数据的基础上新添加了一列数据,然后对其重命名,对源数据列无影响
9select UserId,UserName,Gender,(case when Gender='0' then '女' when Gender='1' then '男' else '未知' end)as Gender from UserInfo
10select UserId,UserName,Gender,MyGender=(case when Gender='0' then '女' when Gender='1' then '男' else '未知' end) from UserInfo

修改

1、update Studens set AddTime=getdate(),Age=Age-1,Salary=Salary+2000 where StudentId=2016001
2update Studens set AddTime=getdate(),Age=Age-1,Salary=Salary+2000 where StudentId in (2016001,2016002)
3update Studens set AddTime=getdate(),Age=Age-1,Salary=Salary+2000 where StudentId like '%02%'
4update Students set AddTime = getdate(),Age=Age-1,Salary=Salary+2000 where StudentId <>2016002
5update Students set AddTime = getdate(),Age=Age-1,Salary=Salary+2000 where StudentId !=2016002
//列值=列名,则列值不变
6update Students set AddTime = AddTime,Age=Age,Salary=Salary where StudentId !=2016002
对比
//列值='列名',则列值变为列名
update Students set AddTime = 'AddTime',Age='Age',Salary='Salary' where StudentId !=2016002

case when then end用法

insert用法

//()as MyGender是将列重命名为MyGender
1、insert into dbo.StudentClass
select StudentId,(case when Gender='男' then '1' when Gender='女' then '0' else '2' end)as MyGender from dbo.Students
//Gender=()是将列重命名为Gender,case when then其实是在源数据的基础上新添加了一列数据,然后对其进行重命名,对源数据列无影响
2insert into dbo.StudentClass
select StudentId,Gender=(case when Gender='男' then '1' when Gender='女' then '0' else '2' end) from dbo.Students
3insert into dbo.StudentClass
select StudentId,MyGender=(case 
when (Gender='男'and Age>30) then '大男人' 
when (Gender='女'and Age>30) then '大女人' 
when (Gender='男'and Age>20 and Age<=30) then '中男人' 
when (Gender='女'and Age>20 and Age<=30) then '中女人' 
when (Gender='男'and  Age<20) then '小男人' 
when (Gender='女'and Age<20) then '小女人' 
else'未知' end) from dbo.Students

delete用法

1、delete dbo.StudentClass where (case when ClassName='1' then '男' when ClassName='0' then '女' else '待定'  end)='女'
2delete dbo.StudentClass where (case when ClassName='1' then '男' when ClassName='0' then '女' else '待定'  end)='男'
3delete dbo.Students where (case 
when Gender='男'and Age>30 then '大男人' 
when Gender='女'and Age>30 then '大女人' 
when Gender='男'and Age>20 and Age<=30 then '中男人' 
when (Gender='女'and Age>20 and Age<=30) then '中女人' 
when Gender='男'and  Age<20 then '小男人' 
when (Gender='女'and Age<20) then '小女人' 
else'未知' end)='大女人'

select用法

1、select StudentId,UserName,Gender=(case when Gender='1' then '男' when Gender='0' then '女' else '未知' end) 
from Students
2select StudentId,UserName,(case when Gender='1' then '男' when Gender='0' then '女' else '未知' end) as Gender
from Students
3select StudentId,UserName,Gender=(case 
when (Gender='男'and Age>30) then '大男人' 
when (Gender='女'and Age>30) then '大女人' 
when (Gender='男'and Age>20 and Age<=30) then '中男人' 
when (Gender='女'and Age>20 and Age<=30) then '中女人' 
when (Gender='男'and  Age<20) then '小男人' 
when (Gender='女'and Age<20) then '小女人' 
else'未知' end) from dbo.Students

update用法

//Gender必须是列名,此处Gender=()不再是重命名而是对列赋值因此()as Gender写法会出错
//性别互换
1、update dbo.Students set Gender=(case when Gender='男' then '女' when Gender='女' then '男' else '未知' end)
//可以把Age列的值赋给PhoneNumber列
2update dbo.Students set PhoneUnmber=(case when Age>=30 then '大' when Age<30 and Age>=20 then '中' when Age<20 and Age>=10 then '小' else '末' end)
//可以把Gender和Age列的组合值赋给PhoneNumber列 
3update dbo.Students set PhoneUnmber=(case 
when (Gender='男'and Age>30) then '大男人' 
when (Gender='女'and Age>30) then '大女人' 
when (Gender='男'and Age>20 and Age<=30) then '中男人' 
when (Gender='女'and Age>20 and Age<=30) then '中女人' 
when (Gender='男'and  Age<20) then '小男人' 
when (Gender='女'and Age<20) then '小女人' 
else'未知' end)
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

changuncle

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值