点击上方SQL数据库开发,关注获取SQL视频教程

SQL专栏

一、开发管理篇

1.按姓氏笔画排序

Select * From TableName
Order By CustomerName
Collate Chinese_PRC_Stroke_ci_as

2.数据库加密:

select encrypt('原始密码')
select pwdencrypt('原始密码')
select pwdcompare('原始密码','加密后密码') = 1--相同;否则不相同
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)

4.查看硬盘分区:

EXEC master..xp_fixeddrives

5.比较A,B表是否相等:

if (select checksum_agg(binary_checksum(*)) from A)=(select checksum_agg(binary_checksum(*)) from B)
print '相等'
else
print '不相等'

6.杀掉所有的事件探察器进程:

DECLARE hcforeach CURSOR GLOBAL FOR
SELECT 'kill '+RTRIM(spid)
FROM master.dbo.sysprocesses
WHERE program_name IN('SQL profiler',N'SQL 事件探查器')
EXEC sp_msforeach_worker '?'

7.记录搜索:

--开头到N条记录
Select Top N * From 表
--N到M条记录(要有主索引ID)
Select Top M-N * From 表
Where ID in (Select Top M ID From 表)
Order by ID   Desc
--N到结尾记录
Select Top N * From 表 Order by ID Desc

例如:一张表有一万多条记录,表的第一个字段 RecID 是自增长字段, 写一个SQL语句, 找出表的第31到第40个记录。
select top 10 recid from A
where recid not  in
(select top 30 recid from A)

分析:

如果这样写会产生某些问题,如果recid在表中存在逻辑索引。

select top 10 recid from A where

是从索引中查找,而后面的

select top 30 recid from A

则在数据表中查找,这样由于索引中的顺序有可能和数据表中的不一致,这样就导致查询到的不是本来的欲得到的数据。

解决方案

a,用order by select top 30 recid from A order by ricid 如果该字段不是自增长,就会出现问题

b,在那个子查询中也加条件:select top 30 recid from A where recid>-1

9:获取当前数据库中的所有用户表

select Name
from sysobjects
where xtype='u' and status>=0

10:获取某一个表的所有字段

--方法一:
select name from syscolumns
where id=object_id('表名')--方法二:
select name from syscolumns
where id in (
select id from sysobjects
where type = 'u' and name = '表名'
)

11:查看与某一个表相关的视图、存储过程、函数

select a.*
from sysobjects a, syscomments b
where a.id = b.id and b.text like '%表名%'

12:查看当前数据库中所有存储过程

select name as 存储过程名称
from sysobjects
where xtype='P'

13:查询用户创建的所有数据库

--方法一
select * from master..sysdatabases D
where sid not in(
select sid from master..syslogins
where name='sa')
--方法二
select dbid, name AS DB_NAME
from master..sysdatabases
where sid <> 0x01

14:查询某一个表的字段和数据类型

select column_name,data_type
from information_schema.columns
where table_name = '表名'

15:不同服务器数据库之间的数据操作

--创建链接服务器

exec sp_addlinkedserver
'ITSV ',
' ',
'SQLOLEDB ',
'远程服务器名或ip地址 'exec sp_addlinkedsrvlogin
'ITSV ',
'false ',
null,
'用户名 ',
'密码 '

--查询示例

select * from ITSV.数据库名.dbo.表名

--导入示例

select * into 表 from ITSV.数据库名.dbo.表名

--以后不再使用时删除链接服务器

exec sp_dropserver 'ITSV ', 'droplogins '

16:连接远程/局域网数据

A、openrowset

--查询示例

select * from openrowset(
'SQLOLEDB ', 'sql服务器名 '; '用户名 '; '密码 ',数据库名.dbo.表名)

--生成本地表

select * into 表 from openrowset(
'SQLOLEDB ', 'sql服务器名 ';'用户名 '; '密码 ',数据库名.dbo.表名)

--把本地表导入远程表

insert openrowset( 'SQLOLEDB ', 'sql服务器名 '; '用户名 '; '密码 ',数据库名.dbo.表名)select *from 本地表

--更新本地表

update b
set b.列A=a.列A
from openrowset(
'SQLOLEDB ', 'sql服务器名 '; '用户名 '; '密码 ',数据库名.dbo.表名)as a
inner join 本地表 b on a.column1=b.column1

B、openquery

--首先创建一个连接创建链接服务器

exec sp_addlinkedserver
'ITSV ',
' ',
'SQLOLEDB ',
'远程服务器名或ip地址 '

--查询

select *
FROM openquery(
ITSV, 'SELECT * FROM 数据库.dbo.表名 '
)

--把本地表导入远程表

insert openquery(
ITSV, 'SELECT * FROM 数据库.dbo.表名 '
)
select * from 本地表

--更新本地表

update b
set b.列B=a.列B
FROM openquery(
ITSV, 'SELECT * FROM 数据库.dbo.表名 '
) as a
inner join 本地表 b on a.列A=b.列A

C、opendatasource/openrowset

SELECT   *
FROM   opendatasource(
'SQLOLEDB ',
'Data Source=ip/ServerName;
User ID=登陆名;Password=密码 '
).test.dbo.roy_ta

--把本地表导入远程表

二、SQL Server基本函数

1.字符串函数

DATALENGTH(Char_expr) 

返回字符串包含字符数,但不包含后面的空格

SUBSTRING(expression,start,length) 

取子串,字符串的下标是从“1”,start为起始位置,length为字符串长度,实际应用中以len(expression)取得其长度

RIGHT(char_expr,int_expr) 

返回字符串右边第int_expr个字符,还用left于之相反

ISNULL( check_expression , replacement_value )

如果check_expression为空,则返回replacement_value的值,不为空,就返回check_expression字符操作类

使返回的结果中不包含有关受 Transact-SQL 语句影响的行数的信息。如果存储过程中包含的一些语句并不返回许多实际的数据,则该设置由于大量减少了网络流量,因此可显著提高性能。SET NOCOUNT 设置是在执行或运行时设置,而不是在分析时设置。

SET NOCOUNT 为 ON 时,不返回计数(表示受 Transact-SQL 语句影响的行数)。

  • 在SQL查询中:from后最多可以跟多少张表或视图:256

  • 一个字段的最大容量是8000,而对于nvarchar(4000),由于nvarchar是Unicode码。

——End——

SQL开发与数据库管理笔记,看过的都说好!相关推荐

  1. sql 以a开头的所有记录_SQL开发与数据库管理笔记

    简介: SQL开发与数据库管理笔记,看过的都说好! 原创: 丶平凡世界 文章链接:https://mp.weixin.qq.com/s/Y9TmoHOyh7To7jUrMulvEw 一.开发管理篇 1 ...

  2. SQL2000 好书 《SQL Server 2000数据库管理与开发技术大全》----求是科技 人民邮电出版社

    SQL2000 好书 <SQL Server 2000数据库管理与开发技术大全>----求是科技  人民邮电出版社

  3. SQL开发管理工具,SQL Studio成数据库管理工具热门

    达梦数据库冲击IPO成功:麒麟软件等国产Linux桌面操作系统在国防.教育等行业达到百万规模级应用:阿里云计算操作系统取得重大突破,阿里云市场份额全球第三:宝兰德.中创等厂商的应用服务器中间件能够实现 ...

  4. 【SQL开发实战技巧】系列(六):从执行计划看NOT IN、NOT EXISTS 和 LEFT JOIN效率,记住内外关联条件不要乱放

    系列文章目录 [SQL开发实战技巧]系列(一):关于SQL不得不说的那些事 [SQL开发实战技巧]系列(二):简单单表查询 [SQL开发实战技巧]系列(三):SQL排序的那些事 [SQL开发实战技巧] ...

  5. 【SQL开发实战技巧】系列(五):从执行计划看IN、EXISTS 和 INNER JOIN效率,我们要分场景不要死记网上结论

    系列文章目录 [SQL开发实战技巧]系列(一):关于SQL不得不说的那些事 [SQL开发实战技巧]系列(二):简单单表查询 [SQL开发实战技巧]系列(三):SQL排序的那些事 [SQL开发实战技巧] ...

  6. 【SQL开发实战技巧】系列(十三):讨论一下常用聚集函数通过执行计划看sum()over()对员工工资进行累加

    系列文章目录 [SQL开发实战技巧]系列(一):关于SQL不得不说的那些事 [SQL开发实战技巧]系列(二):简单单表查询 [SQL开发实战技巧]系列(三):SQL排序的那些事 [SQL开发实战技巧] ...

  7. sql优化ppt_一款跨平台免费的开源 SQL 编辑器和数据库管理器!

    大家好,我是 JackTian. 今天给大家推荐一款适用于Windows,Linux和Mac的跨平台免费的开源SQL编辑器和数据库管理应用程序 -- beekeeper-studio. Beekeep ...

  8. iPhone与iPad开发实战读书笔记

    iPhone开发一些读书笔记 手机应用分类 1.教育工具 2.生活工具 3.社交应用 4.定位工具 5.游戏 6.报纸和杂志的阅读器 7.移动办公应用 8.财经工具 9.手机购物应用 10.风景区相关 ...

  9. JAVA WEB整合开发王者归来 -- 读书笔记 by CZF 完整版

    JAVA WEB整合开发王者归来 -- 读书笔记  目录 第1章 概述. 1 第2章 搭建web开发环境. 1 第3章 Servlet技术. 1 第4章 深入JSP技术. 7 第5章 会话跟踪. 12 ...

最新文章

  1. Trailblazer —— Rails 的扩展概念驱动开发框架
  2. 使用 ViS2005 进行单元测试
  3. ubuntu下tesseract 4.0安装及参数使用
  4. 选择P2P平台的技巧和方法
  5. IA-32 Intel手册学习笔记(三)任务切换
  6. 【思维】最大降雨量(解题报告)
  7. 安装spark1.3.1单机环境
  8. Makefile中的变量
  9. mysql物理删除索引_Oracle与MySQL删除字段时对索引和约束的处理
  10. Node.js下载安装及各种npm、cnpm、nvm、nrm配置(保姆式教程—提供全套安装包)—nvm的安装与配置(4)
  11. java 16进制与汉字_Java汉字与16进制数相互转换
  12. [挖坟] 突破WINISO未注册时100M限制
  13. Docker篇之镜像打标签tag
  14. 关于JavaScript面向对象
  15. 弥散张量成像(diffusion tensor imaging,DTI)常用指标
  16. java爬虫实例_关于java爬虫以及一些实例
  17. python的urllib.parse用法
  18. 易淘食创始人口述:做外卖O2O的诀窍是“打穿商家”
  19. Go语言中Time的用法[1]
  20. 遨博机器人ROS包aubo_robot 在kinetic版ROS下的编译(转载)

热门文章

  1. linux find 更新时间,Linux查找find命令详解
  2. Ubuntu上安装ffmpeg
  3. Css实现漂亮的滚动条样式(转载)
  4. windows关机API
  5. C语言,计算圆的面积程序
  6. StringBuilder重用 清空数据方法
  7. 脾气太大了!因为暴雪删了术士的“生命虹吸”,19岁少年创立了市值千亿的以太坊...
  8. XP 系统发现新硬件问题的解决方法
  9. 努力过一段时间后马上颓废? —— 一种解决方案
  10. mybatis plus 一对一 、一对多映射