sql基础,必须会的————随便整理、杂乱无章

1、sqlserver2008r2的安装

2、数据库与表的建立、增加、删除、修改。

3,索引的概念,包括聚集与非聚集的区别。全文索引的建立与如何使用全文索引。

4,重新生成索引,重新组织索引。

5,建立维护计划,包括备份、清除、收缩、重新组织与生成索引等等。

6,数据库的订阅与复制。

7,理解完全备份,差异备份,日志备份的概念与实施关系。

8,了解事务、触发器、存储过程的、自定义函数的建立。

 

语句:

临时表用法:

select * into #tmpe from book

select * into famp from #tmpe

select *from #tmpe

 

查某正在使用的数据库的spid  数据库ID应该是固定不变的。

USE master

select * from sysprocesses where dbid=db_id('数据库名') order by program_name

 

查看某登陆用户的进程

exec sp_who 'sa'

 

exec sp_who '14'

 

结束进程 :

kill 58(spid号)

 

drop datebase 数据库名

例:drop database ddd

 

建立全文索引,例:

/*建立测试环境*/  

  

if object_id('tb') is not null  

  

   drop table tb  

  

go  

  

create table tb  

  

(id int identity(1,1),  

  

 title varchar(200),   

  

 detail varchar(1000),  

  

 constraint pk_id primary key(id)

  

 )  

  

insert into tb  

  

select '火箭即将签下新秀射手',' 据悉,巴丁格与火箭队的合同谈判是于昨天完成的,巴丁格将得到与泰勒一样的合同。此前媒体曝光泰勒的合同为期四年,总价值万美元,其中前两年为保障性合同。巴丁格预计会在接下来几天内正式宣布签约加盟火箭。'   

  

union all  

  

select '韦弗被曝已与希腊豪门签约','据国际篮球网报道,前火箭队球员范-韦弗已经与希腊豪门奥林匹亚科斯队签订了合同。韦弗得到一份为期两年,总价值万美元的合同。'  

  

union all  

  

select '马刺豪掷千金为对抗湖人','马刺队在今夏休赛期补充了几员大将,主教练格雷格-波波维奇日前在接受Yahoo!体育采访时透露,马刺队不惜缴纳奢侈税构建豪华阵容就是为了对抗湖人队,争取拿到第五个总冠军。'  

  

union all  

  

select '华莱士未曾想过离开汽车城','此前本-华莱士已经同意重返底特律活塞,并且以老将底薪和活塞签下一份年万美元的合同,而据《每日先驱报》专栏作家米克-麦格劳透露,这位当年叱咤NBA赛场的内线防守悍将甚至从来就没有考虑过要离开活塞队。'  

  

union all  

  

select '米勒竟好横刀夺爱追求人妻','对于那些没看过雷吉·米勒在步行者创造“米勒时间”的“后”们,应该怎么介绍这位前NBA球星呢?难道从前天洛杉矶马里布海滩上空那架飞机拉的横幅说起?恐怕没有哪位家长愿意这么做。'  

  

union all  

  

select '姚明:没把上海当投资项目乐得生意做了好人当了','“姚蜜”说:不缺广告效应的姚明收购濒临绝境的上海东方篮球俱乐部,说明他是真的想为曾经的母队做点事情。'  

  

union all  

  

select '火箭不敌奇才终结年纪录','此役姚麦组合状态糟糕,姚明投中得到分个篮板次盖帽,麦迪投中拿下分个篮板次助攻,两人联手竟不如得到分个篮板次助攻次盖帽的贾米森。'  

  

  

  

  select * from tb

  select * from tb  

  

where contains((title,detail),'姚明') 

select * from tb where contains(detail,'姚明 near 上海')

select * from tb where contains((title,detail),'姚明')

select * from tb where contains(detail,'"姚明*"')

select * from tb where contains(detail,'”姚明” or “上海”')

select * from tb where contains(detail,'”姚明” and "上海"')

select * from tb where contains(detail,'”姚明” and not  “上海”')

select * from tb where contains(detail,'"姚明 上海"')

select * from tb where contains((title,detail),'"姚明 上海"')

 

以上为举例,大家可以测试一下,也许哪有不对。

 

 

图形界面上也可以操作建立,主要有两个步骤:

1,建立全文目录:展开某数据库=》存储=>建立全文目录。

2,展开要建全文索引的表,点右键=》全文索引=》定义全文索引,按提示下一步即可。

 

 

创建表,ID自增:

 

create table abc(id int identity(1,2),test int)

insert abc select 1

union all select 2

union all select 3

select * from abc

 

sql基础,必须会的————随便整理、杂乱无章

 

 

事务:简单说,就是规定了一个范围,在这个范围内的所有语句,必须全部执行完成,如果有一条未完成,则所有语句都不算完成。

例如,A银行账户往B银行账户转钱,A账户钱减少后,B账户必须增加相应金额,如果B账户未增加,A账户不能减少。举个例子:

事务里有回滚操作。

 

begin tran

create table test2

(

 id int identity(1,1),

 name varchar(15),

 age int

 )

insert into test2 

select '王成',15 union all

select '李一',16 union all

select '孙晓',18

 

save tran mytran

 

delete from test2 where name = '王成'

 

rollback tran mytran

 

commit tran

 

select * from test2

 

sql基础,必须会的————随便整理、杂乱无章

 

游标:这个没什么大用暂时认为,类似于指针:举个例子:

 

 

declare test_cursor cursor scroll for

select * from test2

open test_cursor

declare @id int

declare @age int

declare @name nvarchar(10)

fetch last from test_cursor into @id,@name,@age

print @id

print @age

print @name

close test_cursor

deallocate test_cursor

 

注意定义与结束游标,这个有待研究,虽然看起来没什么用,但是继然存在,就一定有他的用处。

 

--简单的存储过程

create proc mypro3 @bookname varchar(50)

as

begin

if (select price from book where book_name like @bookname) >= 29

return 2

else 

return 1

end

 

--简单的调用

declare @return_value int

exec @return_value = mypro3 '%Linux%'

print  @return_value

if @return_value =2

print '这本书太贵了'

else

print '这本书还可以'

go

 

正确的结果如下

2

这本书太贵了

 

--查询一个库里有多少个表

select * from sysobjects where type = 'u' 

--查询一个表里有多少字段。

select count(*) from syscolumns where id  =   

(select id from sysobjects  where name   = 'testcopy')

你可能感兴趣的:(sql)