T-SQL 增删改查

PS:[内容]为可省略内容,<内容>为必须写内容
此地以开房信息表为例子

T-SQL 增删改查 - 静潇 - 静潇ly
 
一、增:
insert [into] <表名> [列名] values <列名>
PS:
insert shenfenzheng.dbo.cdsgus (name.ctfid) values ('静潇','510100000000000000')
在开房信息表中插入一个名字为'静潇',身份证号为' 510100000000000000 ',的信息,其他信息不填(前提是其他信息允许为null)
如果表名,列名是中文建议用[]括上,比如:[身份证号码]
二、删除:
delete from <表名> [where <条件>]
PS:
delete from  shenfenzheng.dbo.cdsgus where name='静潇'
shenfenzheng.dbo.cdsgus表中删除一行名字叫'静潇'的记录
此处where语句省略将清空表格,但是表文件的大小不会改变,如果要清空表格且使表格大小恢复为初始大小要用
truncate table <表名>
PS:
truncate table  shenfenzheng.dbo.cdsgus
三、改:
update <表名> set <列名 = 值> [where <条件>]
update  shenfenzheng.dbo.cdsgus set name = '陈明' where name='陈萌'
PS:将 shenfenzheng.dbo.cdsgus中名字叫'陈萌'的记录的name列改为'陈明',此处如果不加where限制条件,将会把所有记录的姓名改为'陈明'.
四、查询:
select 
[into <表名1>] 
from <表名2>
[where <条件1>]
[group by <列名1>] [having <条件2>]
[order by <列名2> [asc|desc]] 
PS:
select top 5 * from  shenfenzheng.dbo.cdsgus where name like '陈%'
将所有姓陈的记录筛选出来,并只显示前5行
select  into chenshikaifangxinxi   from  shenfenzheng.dbo.cdsgus where name like '陈%'
将姓陈的记录筛选出来,导入到  chenshikaifangxinxi 表中
select Address,avg(Birthday)  from shenfenzheng.dbo.cdsgus group by Address
shenfenzheng.dbo.cdsgus表中以地址分类,显示每个地方开房人的平均生日即平均年龄(本表所有类型nvarchar,故此命令会提示AVG有错)
select Address,avg(Birthday)  from shenfenzheng.dbo.cdsgus group by Address having address like '四川%'
shenfenzheng.dbo.cdsgus表中以地址分类,只显示四川地方的平均生日
select Address,avg(Birthday)  from shenfenzheng.dbo.cdsgus group by Address  order by avg(birthday)  desc
shenfenzheng.dbo.cdsgus表中以地址分类,以平均生日降序方式显示每个地方开房人的平均生日即平均年龄

常用一些条件,及计数
where a and b 同时满足条件A和B
where a or b 满足A或B即可
where not a 不满足a
sum() 显示某列值之和
avg() 显示 某列值之 平均值
count() 显示 某列非空值记录 数的总和(即求有多少条记录)
max(),min() 显示最大或最小只
========================================================================================
select 的特殊用法————连接
1、内连接:inner join
select <表1.列名1,表1.列名2,表2.列名1,表2.列名2> from <表1,表2> where <表1.列名1=表2.列名1>
PS:
select A.name,A.sex,B.name,B.job from A inner join B on A.name=B.name
显示出表A与表B中name相同的记录并合并显示出来
Aname Asex Bname Bjob
张三 男 张三    网络工程师
以上句子还可写为:
select A.name,A.sex,B.name,B.job from  A,B where A.name=B.name
2、外连接:
外连接语法与内连接相似区别在于得出的结果以什么为准,
比如,表A与表B各有4行记录,且只有两行是name一样,
表A 表B
name sex      name job
1 a m e x
2 b f b y
3 c m c z
4 d f f xx
如果是内连接,将只有两行记录
A.name A.sex      B.name B.job
1 b f b y
2 c m c z
左外:
select A.name,A.sex,B.name,B.job from A left join B on A.name=B.name
上面例子中将会出现4行记录:
A. name A. sex      B. name B. job
1 a m null null
2 b f b y
3 c m c z
4 d f null null
右外:
select A.name,A.sex,B.name,B.job from A right join B on A.name=B.name
A. name A. sex      B. name B. job
1 null null e x
2 b f b y
3 c m c z
4 null null f xx
完整:
select A.name,A.sex,B.name,B.job from A full join B on A.name=B.name
A. name A. sex      B. name B. job
1 a m null null
2 b f b y
3 c m c z
4 d f null null
5 null null e x
6 null null f xx
3、交叉连接:
交叉连接将有4*4行记录相当于两个表行数之间的乘积
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值