PS:[内容]为可省略内容,<内容>为必须写内容
此地以开房信息表为例子
一、增:
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行记录相当于两个表行数之间的乘积