版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_37522951/article/details/79377476
1、说明:创建数据库
CREATE
database
name
2、说明:删除数据库
drop
dbname
3、说明:备份sql server
--- 创建 备份数据的 device
USE master
EXEC
'disk'
'testBack'
'c:\mssql7backup\MyNwind_1.dat'
--- 开始 备份
BACKUP
pubs
testBack
4、说明:创建新表
create
tabname(col1 type1 [
null
primary
],col2 type2 [
null
B:
table
as
col1,col2…
tab_old definition
注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加
类型的长度。
7、说明:添加主键:
table
add
key
8、说明:创建索引:
[
]
idxname
tabname(col….)
删除索引:
index
10、说明:几个简单的基本的sql语句
选择:
*
table1
范围
插入:
into
values
更新:
table1
field1=value1
范围
查找:
*
table1
field1
’%value1%’
总数:
count
totalcount
table1
求和:
sum
as
from
最大:
max
as
from
11、说明:几个高级查询运算词
A:
运算符
UNION
ALL
UNION
UNION
),不消除重复行。两种情况下,派生表的每一行不是来自 TABLE1 就是来自 TABLE2。
B:
运算符
EXCEPT
ALL
EXCEPT
EXCEPT
),不消除重复行。
C:
运算符
INTERSECT
ALL
INTERSECT
INTERSECT
),不消除重复行。
注:使用运算词的几个查询结果行必须是一致的。
12、说明:使用外连接
A、
(
)
:
左外连接(左连接):结果集几包括连接表的匹配行,也包括左连接表的所有行。
SQL:
a.a, a.b, a.c, b.c, b.d, b.f
a
OUT
b
a.a = b.c
B:
(
)
:
右外连接(右连接):结果集既包括连接表的匹配连接行,也包括右连接表的所有行。
C:
/
(
)
:
全外连接:不仅包括符号连接表的匹配行,还包括两个连接表中的所有记录。
12、分组:
by
count
sum
max
min
avg
14.如何修改数据库的名称:
sp_renamedb
,
二、提升
1、说明:复制表(只复制结构,源表名:a 新表名:b) (Access可用)
法一:
*
b
a
1<>1(仅用于SQlServer)
法二:
top
into
from
5、说明:显示文章、提交人和最后回复时间
select
from
a,(
max
from
where
.title=a.title) b
6、说明:外连接查询(表名1:a 表名2:b)
select
from
LEFT
JOIN
ON
8、说明:
的用法,
限制查询数据范围时包括了边界值,
between
select
from
where
not
数值1
数值2
9、说明:
的使用方法
select
from
where
not
in
11、说明:四表联查问题:
select
from
left
join
on
right
join
on
inner
d
a.a=d.d
.....
12、说明:日程安排提前五分钟提醒
SQL:
*
日程安排
datediff(
,f开始时间,getdate())>5
13、说明:一条sql 语句搞定数据库分页
select
10 b.*
(
top
from
order
排序字段
) a,表名 b
b.主键字段 = a.主键字段
by
@sql=’
top
end
from
where
not
(
top
from
where
注意:在
后不能直接跟一个变量,所以在实际应用中只有这样的进行特殊的处理。Rid为一个标识列,如果
后还有具体的字段,这样做是非常有好处的。因为这样可以避免
的字段如果是逻辑索引的,查询的结果后实际表中的不一致(逻辑索引中的数据有可能和数据表中的不一致,而查询时如果处在索引则首先查询索引)
14、说明:前10条记录
select
10 * form table1
范围
15、说明:选择在每一组b值相同的数据中对应的a最大的记录的所有信息(类似这样的用法可以用于论坛每月排行榜,每月热销产品分析,按科目成绩排名,等等.)
select
from
where
select
(a)
tablename tb
tb.b=ta.b)
16、说明:包括所有在 TableA 中但不在 TableB和TableC 中的行并消除所有重复行而派生出一个结果表
(
a
tableA )
(
a
tableB)
(
a
tableC)
17、说明:随机取出10条数据
select
10 *
tablename
by
19、说明:删除重复记录
1),
from
where
not
(
max
from
group
col1,col2,...)
2),
distinct
into
from
into
select
from
from
where
not
(
select
(column_b)
tablename
by
20、说明:列出数据库里所有的表名
select
from
where
'U'
22、说明:列示type、vender、pcs字段,以type字段排列,
可以方便地实现多重选择,类似
中的
。
select
sum
case
when
then
else
end
sum
case
when
then
else
end
sum
case
when
then
else
end
FROM
group
type
显示结果:
type vender pcs
电脑 A 1
电脑 A 1
光盘 B 2
光盘 A 2
手机 B 3
手机 C 3
23、说明:初始化表table1
TRUNCATE
table1
24、说明:选择从10到15的记录
select
5 *
(
top
from
order
id
) table_别名
by
desc
三、技巧
1、1=1,1=2的使用,在SQL语句组合时用的较多
“
1=1” 是表示选择全部 “
1=2”全部不选,
如:
if @strWhere !=
end
else
begin
set
'select count(*) as Total from ['
']'
end
我们可以直接写成
错误!未找到目录项。
set
'select count(*) as Total from ['
'] where 1=1 安定 '
6、修复数据库
ALTER
[dvbbs]
SINGLE_USER
GO
DBCC CHECKDB(
,repair_allow_data_loss)
TABLOCK
GO
ALTER
[dvbbs]
MULTI_USER
GO
7、日志清除
SET
ON
DECLARE
INT
-- 要操作的数据库名
SELECT
'tablename_log'
-- 日志文件名
@MaxMinutes = 10,
SELECT
+ db_name() +
+
(
(30),@OriginalSize) +
+
(
(30),(@OriginalSize*8/1024)) +
CREATE
DummyTrans
char
not
)
@Counter
,
SELECT
-- Wrap the log if necessary.
WHILE @MaxMinutes > DATEDIFF (mi, @StartTime, GETDATE())
(@OriginalSize * 8 /1024) > @NewSize
-- Outer loop.
SELECT
-- update
DummyTrans
(
)
DummyTrans
@Counter = @Counter + 1
SELECT
+ db_name() +
+
(
(30),
) +
+
(
(30),(
*8/1024)) +
DROP
DummyTrans
SET
OFF
8、说明:更改某个表
exec
'tablename'
'dbo'
9、存储更改全部表
CREATE
dbo.User_ChangeObjectOwnerBatch
@OldOwner
NVARCHAR(128),
@NewOwner
NVARCHAR(128)
AS
DECLARE
Name
NVARCHAR(128)
DECLARE
as
DECLARE
CURSOR
where
FETCH
FROM
INTO
Name
END
close
GO
while @i<30
begin
into
values
begin
update
set
if (
min
from
end
1.按姓氏笔画排序:
Select
From
Order
CustomerName
Chinese_PRC_Stroke_ci_as //从少到多
2.数据库加密:
select
'原始密码'
select
'原始密码'
'加密后密码'
--相同;否则不相同 encrypt('原始密码')
select
'原始密码'
@sql nvarchar(1000)
select
','
name
sysobjects a,syscolumns b
a.id=b.id
a.
=
4.查看硬盘分区:
EXEC
select
from
else
print
WHERE
IN
'SQL profiler'
'SQL 事件探查器'
----------------------------------
N到结尾记录
Select
N *
表
by
Desc
案例
例如1:一张表有一万多条记录,表的第一个字段 RecID 是自增长字段, 写一个SQL语句,找出表的第31到第40个记录。
top
from
where
not
(
top
from
例2:查询表中的最后以条记录,并不知道这个表共有多少数据,以及表结构。
set
'select top 1 * from T where pid not in (select top '
count
' pid from T)'
print @s
sp_executesql @s
9:获取当前数据库中的所有用户表
select
from
where
'u'
status>=0
10:获取某一个表的所有字段
select
from
where
'表名'
两种方式的效果相同
11:查看与某一个表相关的视图、存储过程、函数
select
from
where
and
like
或者
select
name
DB_NAME
master..sysdatabases
sid <> 0x01
14:查询某一个表的字段和数据类型
select
from
--导入示例
select
into
from
--连接远程/局域网数据(openrowset/openquery/opendatasource)
--1、openrowset
--查询示例
select
from
'SQLOLEDB '
'sql服务器名 '
'用户名 '
'密码 '
select
from
set
on
FROM
'SELECT * FROM 数据库.dbo.表名 '
select
from
set
inner
本地表 b
a.列A=b.列A
FROM
'SQLOLEDB '
'Data Source=ip/ServerName;User ID=登陆名;Password=密码 '
select
from
6,
nocount {
|
}
使返回的结果中不包含有关受 Transact-SQL 语句影响的行数的信息。如果存储过程中包含的一些语句并不返回许多实际的数据,则该设置由于大量减少了网络流量,因此可显著提高性能。
NOCOUNT 设置是在执行或运行时设置,而不是在分析时设置。
SET
ON
常识
from
在SQL中,一个字段的最大容量是8000,而对于nvarchar(4000),由于nvarchar是Unicode码。
SQLServer2000同步复制技术实现步骤
一、 预备工作
1.发布服务器,订阅服务器都创建一个同名的windows用户,并设置相同的密码,做为发布快照文件夹的有效访问用户
--管理工具
--计算机管理
--用户和组
--右键用户
--新建用户
--建立一个隶属于administrator组的登陆windows的用户(SynUser)
2.在发布服务器上,新建一个共享目录,做为发布的快照文件的存放目录,操作:
我的电脑
--确定
3.设置SQL代理(SQLSERVERAGENT)服务的启动用户(发布/订阅服务器均做此设置)
开始
开始
要求:
srv1.库名..author增加记录则srv1.库名..author记录增加
srv1.库名..author的phone字段更新,则srv1.库名..author对应字段telphone更新
--*/
go
--然后创建一个作业定时调用上面的同步处理存储过程就行了
设置方法:
我的电脑
--在srv1中创建如下的同步处理存储过程
create
where
and
(b.
<> i.
or
--插入新增的数据
insert
name
where
exists(
select
from
where
--删除已经删除的数据(如果需要的话)
delete
where
exists(
select
from
where
<code plain"="" style="margin: 0px !important; padding: 0px !important; white-space: pre-wrap; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.8em !important; outline: 0px !important; overflow: visible !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; font-family: Consolas, "Bitstream Vera Sans Mono", "Courier New", Courier, monospace !important; min-height: auto !important;">go
|