sqlserver2000常⽤命令⼀.数据库
1.创建数据库:
create database Student
on
(
name=Student_Data,
filename='f:\data\student_Data.mdf',
size=10,
maxsize=20,
filegrowth=5
),
(
name=Student_Data2,
filename='f:\data\student_Data2.ndf',
size=10,
maxsize=20,
filegrowth=5
)
log on
(
name=Student_Log,
filename='f:\data\student_Log.ldf',
size=10,
maxsize=20,
filegrowth=5
),
(
name=Student_Log2,
filename='f:\data\student_Log2.ldf',
size=10,
maxsize=20,
filegrowth=5
)
2.修改数据库:
1>添加数据⽂件:
alter database student
add file
(
name=Student_Data3,
filename='f:\data\student_Data3.ndf',
size=10,
maxsize=20,
filegrowth=5
)
sqlserver备份表语句
2>修改数据⽂件:
alter database student
modify file
(
name=Student_Data,
size=15
)
3.删除数据库:
drop database student
4.设置数据库选项:
sp_dboption student,'single user',true
5.修改数据库名:
sp_renamedb 'student','students'
6.查看服务器上的数据库:
sp_databases
7.查看数据库上的⽂件:
sp_helpdb
sp_helpdb students
8.压缩数据库:
sp_dboption student,'single user',true
go
DBCC shrinkdatabase(students,50)
9.断开与连接数据库:
1>断开:    sp_detach_db 'students'
2>连接:    sp_attach_db 'students','f:\students_data.mdf'
10.备份和恢复数据库
1>备份:    backup database students to disk='h:\students_back'
2>恢复:    restore database students from disk='h:\students_back'⼆.表
1.创建表:(先建主键表,再建外键表)
create table xsxxb
(
xh char(10) primary key,
xm char(8)  ,
xb char(2),
csrq datetime,
dh char(20)
)
go
create table kmxxb
(
kmbh char(10),
kmmc char(20),
primary key(kmbh)
)
go
create table xscjb
(
xh char(10),
kmbh char(10),
fs int,
foreign key(xh)references xsxxb,
foreign key(kmbh)references kmxxb
)
2.修改表:
1>增加字段
alter table xsxxb
add bz char(50) null
2>删除字段
alter table xsxxb
drop column bz
3.删除表:(先删外键表,再删主键表)
drop table xscjb
drop table xsxxb
drop table kmxxb
4.复制⼀个表:
select * into xsxxb2 from xsxxb
5.创建临时表:(#,##)
create table #xsxxb
(
xh char(10) primary key,
xm char(8),
xb char(2),
csrq datetime,
dh char(20)
)
select * from #xsxxb
6.创建⽤户定义数据类型:
use students
go
sp_addtype sts,'varchar(20)','not null','dbo'
sp_addtype sts,datatime,'null','dbo'
7.删除⽤户定义数据类型:
sp_droptype sts
三.操作表中的数据
1>使⽤ INSERT 语句向表中插⼊数据:
insert into xsxxb values('008','','','')
2>使⽤ UPDATE 语句修改表中的数据:
update xsxxb set xm='不' where xh='001'
3>使⽤ DELETE 语句删除表中的数据:
delete from xsxxb where xh='001'
delete from xsxxb where xh in('002','004')
delete from xsxxb
四.系统内置函数的使⽤
1.聚合函数:
1>AVG(表达式)返回表达式中所有值的平均值。仅⽤于数字列并⾃动忽略 null 值。
2>COUNT(表达式)返回表达式中⾮ null 值的数量。可⽤于数字和字符列。
3>COUNT(*)          返回表中的⾏数(包括有 null 值的⾏)。
4>MAX(表达式)返回表达式中的最⼤值,忽略 null 值。可⽤于数字、字符和⽇期时间列。
5>MIN(表达式)返回表达式中最⼩值,忽略 null 值。可⽤于数字、字符和⽇期时间列。
6>SUM(表达式)返回表达式中所有值的总和,忽略 null 值。仅⽤于数字列。
2.转型函数:
convert(datatype[(length)], expression [,style])
select convert(char(20),getdate(),101)
3.⽇期函数:
1>GETDATE()        当前的系统⽇期。
2>DATEADD(datepart, number, date)  返回带有指定数字 (number) 的⽇期 (date),
该数字添加到指定的⽇期部分 (date part)  。
select dateadd(yy,2,getdate())  (yy,mm,dd,ww,hh,mi,ss)
3>DATEDIFF(datepart, date1, date2)  返回两个⽇期中指定的⽇期部分之间的不同.
select datediff(yy,getdate(),'2008/09/09')
4>DATENAME(datepart, date)          返回⽇期中⽇期部分的字符串形式。
5>DATEPART(datepart, date)          返回⽇期中指定的⽇期部分的整数形式。
4.数学函数:
5.字符串函数:
rtrim()
ltrim()
ltrim(rtrim())
space(2)
substring(列名,开始位置,长度)
right(列名,长度)
left(列名,长度)
stuff(列名,开始位置,长度,字符串)
五.表的连接
1.内部连接:
select xsxxb.xh,xm,xscjb.fs from xsxxb inner join xscjb
on xsxxb.xh=xscjb.xh
2.多表连接:
select xsxxb.xh,xm,kmmc,fs from xsxxb inner join xscjb
on xsxxb.xh=xscjb.xh
join  kmxxb
on xscjb.kmbh=kmxxb.kmbh
3.左外部连接:
select xsxxb.xh,xm,fs from xsxxb left outer join xscjb
on xsxxb.xh=xscjb.xh
4.右外部连接:
(与左外部连接相反)
5.完全外部连接:
select xsxxb.xh,xm,fs from xsxxb full join xscjb
on xsxxb.xh=xscjb.xh
6.交叉连接:
select xm,fs from xsxxb cross join xscjb
7.⾃连接:
select A.xh,A.fs,B.xh from xscjb A join xscjb B
on A.kmbh=B.kmbh
where A.xh>B.xh
8.联合运算符(union):
select xh,xm from xsxxb
union
select xh,xm from xsxxb2
六.数据汇总
1.排序:  (Asc升,desc降)
select * from xscjb order by fs desc
2.分组:(group by all 包含不符合指定的where条件的组,但将它们设为null)        select xh,sum(fs) as tol from xscjb
where xh='004'
group by all xh
3.指定分组后,组的条件(having):
select xh,sum(fs) as tol from xscjb
group by xh
having sum(fs)>80
4pute汇总:
select xh,fs from xscjb
order by xh
compute sum(fs)
5pute by汇总:
select xh,fs from xscjb
order by xh
compute sum(fs) by xh
compute sum(fs)
rollup()  对group by⼦句中的列按不同的等级进⾏分组.
select xh,sum(fs) as tol from xscjb
group by xh with rollup
cube()    是rollup的扩展.
七.数据的查询
1.SELECT 语句的数据检索形式
1>显⽰所有列和⾏:
SELECT * FROM authors
2>显⽰所有⾏和特定的列:
SELECT pub_name, city FROM publishers
3>显⽰限定范围的⾏:
SELECT stor_id, qty, title_id FROM sales
WHERE qty BETWEEN 20 AND 50
4>显⽰与值列表相匹配的⾏:
SELECT * FROM publishers
WHERE state IN ('CA', 'TX', 'NY')
5>根据未知值显⽰⾏:
SELECT price, title FROM titles
WHERE price IS NULL
6>显⽰/隐藏重复的值:
SELECT DISTINCT city FROM authors
7>显⽰根据多个搜索条件查询的结果:
SELECT title FROM titles
WHERE pub_id = 0736 AND type = 'business'
2.SELECT 语句中使⽤的关键字:
BETWEEN 测试值是否在两值之间
EXISTS 测试值是否存在
IN 测试在⼀定范围内的值
LIKE 测试类似这个值的值
IS NULL 测试是否为 null 值
3.查询通配符的使⽤:
(%,_,[],^)
1> select * from xsxxb where xm like '张%'
2> select  * from xsxxb where xm like '_花%'
3> select * from xsxxb where xm like '_[花娇]%'
4> select * from xsxxb where xm like '_[^花娇]%'
4.简单⼦查询:
1>使⽤返回单个值的⼦查询:
select xm,xb,csrq,dh from xsxxb
where xh=(select xh from xscjb where fs=70)
5.相关⼦查询:
1>使⽤返回多⾏单列的⼦查询:
select xm,xb,csrq,dh from xsxxb
where xh in(select xh from xscjb where fs>70)
2>使⽤exists关键字验证存在性的⼦查询:
select xm,xb,csrq,dh from xsxxb
where exists (select xh from xscjb where kmbh='3' and fs>70
and xh=xsxxb.xh )
3>使⽤not exists关键字验证存在性的⼦查询:
select xm,xb,csrq,dh from xsxxb
where not exists (select xh from xscjb where kmbh='3' and fs>70                                          and xh=xsxxb.xh )
⼋.流程控制语句
1>声明和使⽤变量:
declare @i int
set @i=3
select @i=(select fs from xscjb where xh='001')
2&d 语句块:
begin
print'dfdfdfd'
end
3>条件语句:
if (select fs from xscjb where xh='002') >70
begin
print'dfdfedfd'
end
else if (select fs from xscjb where xh='002') <60
begin
print'888888'
end
else
begin
print'99999999'
end
4>分⽀语句:
select gg=case fs  --gg是别名
when 60 then 'df'
when 70 then 'xdf'
when 80 then 'yb'
when 90 then 'xgf'
else 'mf'
end
from xscjb
5>循环语句:
declare @i int
declare @sum int
set @i=0
set @sum=0
while @i<10
begin
set @sum=@sum+@i
set @i=@i+1
end
print @sum
6>标签:
select * from xsxxb
goto A
select * from kmxxb
A:
select * from xscjb
九.视图的使⽤
1.创建视图:
1>创建基于表中指定列的视图:
create view GetFs
as
select xh,fs from xscjb
2>创建基于表中指定⾏的视图:
create view GetFs2

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。