目录
前言
正文
第一章:基础
第二章:提升
第三章:技巧
第四章:数据开发-经典
第五章:SQL Server基本函数
第六章:常识
第七章:SQLServer2000 同步复制技术实现步骤
总结
前言
很多人问我关于SQL的问题,我发现许多人是很多语句及命令不了解,特意花了很多时间总结成了PDF,希望可以帮到大家。内容太多我就直接以图片的形式让大家看的更直观一点。
正文
第一章:基础
1、说明:创建数据库
CREATE DATABASE database-name
2、说明:删除数据库 drop database dbname
3、说明:备份 sql server
--- 创建 备份数据的 device USE master
EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.da
BACKUP DATABASE pubs TO testBack
4、说明:创建新表
create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..)
根据已有的表创建新表:
A:create table tab_new like tab_old (使用旧表创建新表) B:create table tab_new as select col1,col2… from tab_old definition only
5、说明:删除新表
drop table tabname
第二章:提升
1、说明:复制表(只复制结构,源表名:a 新表名:b) (Access 可用)法一:select * into b from a where 1<>1(仅用于 SQlServer)
法二:select top 0 * into b from a
2、说明:拷贝表(拷贝数据,源表名:a 目标表名:b) (Access 可用) insert into b(a, b, c) select d,e,f from b;
3、说明:跨数据库之间表的拷贝(具体数据使用绝对路径) (Access 可用) insert into b(a, b, c) select d,e,f from b in ‘具体数据库’ where 条件
例子:..from b in '"&Server.MapPath(".")&"\data.mdb" &"' where.. 4、说明:子查询(表名 1:a 表名 2:b)
select a,b,c from a where a IN (select d from b ) 或者: select a,b,c from a where a IN (1,2,3) 5、说明:显示文章、提交人和最后回复时间
select a.title,a.username,b.adddate from table a,(select max(adddate) adddate from table where table.title=a.title) b
6、说明:外连接查询(表名 1:a 表名 2:b)
select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c
7、说明:在线视图查询(表名 1:a )
select * from (SELECT a,b,c FROM a) T where t.a > 1;
第三章:技巧
1、1=1,1=2 的使用,在 SQL 语句组合时用的较多 “where 1=1” 是表示选择全部 “where 1=2”全部不选,如:
if @strWhere !=''
begin
set @strSQL = 'select count(*) as Total from [' + @tblName + '] where ' + @strWhere
end
else
begin
set @strSQL = 'select count(*) as Total from [' + @tblName + ']'
end
我们可以直接写成
set @strSQL = 'select count(*) as Total from [' + @tblName + '] where 1=1 安定 '+ @strWhere
2、收缩数据库
--重建索引 DBCC REINDEX
第四章:数据开发-经典
- 按姓氏笔画排序:
Select * From TableName Order By CustomerName Collate Chinese_PRC_Stroke_ci_as //从少到多
- 数据库加密:
select encrypt('原始密码') select pwdencrypt('原始密码')
select pwdcompare('原始密码','加密后密码') = 1--相同;否则不相同 encrypt('原始密码') select pwdencrypt('原始密码')
select pwdcompare('原始密码','加密后密码') = 1--相同;否则不相同 3.取回表中字段:
declare @list varchar(1000),
@sql nvarchar(1000)
select @list=@list+','+b.name from sysobjects a,syscolumns b where a.id=b.id and a.name='
表 A'
set @sql='select '+right(@list,len(@list)-1)+' from 表 A' exec (@sql)
- 查看硬盘分区:
第五章:SQL Server基本函数
1.字符串函数 长度与分析用
1,datalength(Char_expr) 返回字符串包含字符数,但不包含后面的空格
2,substring(expression,start,length) 取子串,字符串的下标是从“1”,start 为起始位置,
length 为字符串长度,实际应用中以 len(expression)取得其长度 3,right(char_expr,int_expr) 返回字符串右边第 int_expr 个字符,还用 left 于之相反
4,isnull( check_expression , replacement_value )如果 check_expression 為空,則返回
replacement_value 的值,不為空,就返回 check_expression 字符操作类
5,Sp_addtype 自定義數據類型
例如:EXEC sp_addtype birthday, datetime, 'NULL' 6,set nocount {on|off}
使返回的结果中不包含有关受 Transact-SQL 语句影响的行数的信息。如果存储过程中包含的一些语句并不返回许多实际的数据,则该设置由于大量减少了网络流量,因此可显著提高性能。SET NOCOUNT 设置是在执行或运行时设置,而不是在分析时设置。
SET NOCOUNT 为 ON 时,不返回计数(表示受 Transact-SQL 语句影响的行数)。
SET NOCOUNT 为 OFF 时,返回计数
第六章:常识
在 SQL 查询中:from 后最多可以跟多少张表或视图:256在 SQL 语句中出现 Order by,查询时,先排序,后取
在 SQL 中,一个字段的最大容量是 8000,而对于 nvarchar(4000),由于nvarchar 是 Unicode
码。
第七章:SQLServer2000 同步复制技术实现步骤
一、 预备工作
- 发布服务器,订阅服务器都创建一个同名的 windows 用户,并设置相同的密码,做为发布快照文件夹的有效访问用户
--管理工具
--计算机管理
--用户和组
--右键用户
--新建用户
--建立一个隶属于 administrator 组的登陆 windows 的用户(SynUser)
- 在发布服务器上,新建一个共享目录,做为发布的快照文件的存放目录,操作:
我的电脑--D:\ 新建一个目录,名为: PUB
--右键这个新建的目录
--属性--共享
--选择"共享该文件夹"
--通过"权限"按纽来设置具体的用户权限,保证第一步中创建的用户(SynUser) 具有对该文件夹的所有权限
--确定
- 设置 SQL 代理(SQLSERVERAGENT)服务的启动用户(发布/订阅服务器均做此设置)开始--程序--管理工具--服务
--右键 SQLSERVERAGENT
--属性--登陆--选择"此账户"
--输入或者选择第一步中创建的 windows 登录用户名(SynUser)
--"密码"中输入该用户的密码
总结
以上就是我总结的一些SQL的经典语句,当然,篇幅限制没截完有需要的点击下方名片加入群聊与我一起学习交流。