(1) try catch 配合 Transactions 使用

--打开try catch功能
set xact_abort on
begin trybegin traninsert into tableName(ID) values(1)commit tranprint 'commited'
end try
begin catchrollbackprint 'rolled back'
end catch 

(2)获取当前月前一个月有多少天(DatePart( date ,  datetime)  DateAdd(date , 数字 ,datetime) Cast(exp  as  datetime))

select DatePart
(day,DateAdd(DAY,-1,Cast(cast(YEAR(getdate()) as nvarchar)+'-'+cast(month(getdate()) as nvarchar)+'-01' as datetime))
)

(3)取到小数第二位四舍五入(类型转换)

Select Convert(Numeric(20,2), IsNull(50.01634,0))

结果:50.02

(4)获取时间

[1]一个月第一天:select DateAdd(mm,DateDiff(mm,0,getdate()),0)

--DateAdd当添加的值和初试值均为0时,返回的时间为1900-01-01 00:00:000

select DATEADD(mm,0,0);

[2]本年:year(getdate())

[3]本月:month(getdate())

[4]本日:Day(getDate())

[5]昨天的记录:datediff(day,[Datetime],getdate())=1  把Datetime换为你的相应字段,getdate()-Datetime即为时间差。

[6]本月/周/日记录:DateDiff(month/week/day,[dateadd],getdate())=0

[7]本周的星期一:Select  DateAdd(wk, DateDiff(wk,0,getdate()),  0)

[8]季度的第一天:Select  DateAdd(qq,  DateDiff(qq,0,getdate()),  0)

[9]当天的凌晨(半夜):Select  DateAdd(dd,  DateDiff(dd,0,getdate()),  0)

[10]本年的第一天::select  DateAdd(YY,DateDiff(yy,0,getdate()),0)

[11]去年的最后一天(今年的第一天减去3毫秒):select DateAdd(ms,-3,DateAdd( yy,  DateDiff( yy, 0, getdate()),  0))

[12]本月的第一天:select DateAdd( mm, DateDiff( mm, 0 , GetDate()), 0);

[13]本月的最后一天:select DateAdd(ms,-3, DateAdd(mm, DateDiff(mm,0,getdate()), 0))

[14]本年的最后一天:Select  DateAdd(ms,-3, DateAdd(yy,  DateDiff(yy, 0, getdate()) +1,  0))

[15]本月的第一个星期一:select  DateAdd(wk, DateDiff(wk,0, DateAdd(dd,6 - Datepart(day,getdate()) ,getdate()) ),  0)

[16]显示星期几:select DateName(weekday , getdate() );

[17]显示本月的天数:select DateDiff(dd , getdate() , DateAdd(mm , 1 , getdate()) );

[18]显示某年某月有多少天

create   Function DaysInMonth1(@datetime datetime)
returns int
as
beginreturn Day( Datepart( dd, DateAdd( ms, -3, DateAdd(mm ,DateDiff(mm,0,@datetime)+1 , 0) ) ))
end
调用select dbo.DaysInMonth1('2012-2-13');

(5)获取当前数据库中所有用户的表

select * from sysobjects where xtype='U' 

(6)随机取出3条数据

Select  top 3 *  from Table  order by NewId()

(7)查找表中多余的重复记录

Select  *  from Table where ID  in( select SID from Table  group by ID having Count(Name)>1)

(8)关键字waitfor 主要有waitfor delay(推迟执行),waitfor time (特定时间执行)

waitfor delay '00:00:08'

print('Hello ,Im waitfrom delay')

waitfor time '20:49:50'

print('Hello,Im waitfor time')

(9)检测数据是否存在

[1]检测数据库是否存在

if( Exists(select * from sys.databases where name='School'))

select * from Student

go

[2]检测数据表是否存在

if( exists(select * from sys.objects where name='Student'))

select * from Student order by SID desc

go

[3]检测数据列是否存在

if(exists(select * from sys.all_columns where object_id=object_id('Student') and name='Sname'))

select * from Student

go

(10)表连接

--同时无条件的查询两个不相关的表,所得新表字段为两表字段之和,信息条数为两个信息条数的乘积 (即为:两表的笛卡尔积)

select  T.* , Student.*  from  T , Student

--交叉连接即为上边所讲的那种连接

select T.*,Student.* from T Cross Join Student

--随机数均可以产生0-1之间的随机数

Select   Rand();    select Rand( CheckSum(NewId()) )

--随机数0-9

select ABS(Rand());   select ABS(CheckSum(NewId()))%10

--随机数a-b之间

select a+ABS(checksum(newid()))%(b-a+1)

select 1+ABS(checksum(newid()))%100

字符串操作

--SubString字符串截取(str ,StartIndex , Length)

select SubString( 'Olive116', 1, 5)

--left/right从左边截取字符串

select Left/Right ( 'Olive', 3 )

--字符串替换Replace( str, str1, str2)

select Replace('OOLive','o','1')

--反转排序

select Reverse('Olive')

--删除指定的长度并在指定的起点处插入另一组字符

select Stuff('OliveOOO',6,3,'Hello')

--以指定的次数重复字符串的值

select Replicate('Olive',3)

--返回表达式中第一次出现的位置

select PatIndex('%Olive%','Hello!Olive')

--返回字符串中指定表达式的开始位置

select CharIndex('O','Hello,Olive')

--返回输入表达式的第一个字符的整数值

select UniCode('o')

--返回由数字数据转换来的字符数据

select STR(123.1314,4),LEN(STR(123.3212,321))

select STR(123.1334,4,4)

--发音匹配度

select Sname,SOUNDEX(Sname) from Student

--Difference()简化两个字符串发音相似度,返回0-4之间的值来反应两个字符的相似度,值越大就越相似

select Sname,SOUNDEX(Sname), Difference (Sname,'Olive') from Student

--查询重复记录

select * from Table where SID in (select SID from Table group by SID having COUNT(SID)>0)

--删除重复的记录(并保留SID最小的记录)

delete from Table where

SID in (select SID  from Table group by SID having COUNT(SID)>0)

and SID not in(select MIN(SID) from Student group by SID having count(SID)>0)

--双引号

select '''''' as result

--isnumeric()判断是否是数字是为1否为0

select IsNumeric('a')

--isdate()判断是否为日期是为1否为0

select IsDate('2012-3-2')

DataBase 之 常用操作相关推荐

  1. 【node】Sequelize常用操作、基本增删改查

    [node]Sequelize常用操作.基本增删改查 sequelize初始化 先初始化一个数据库实例 再初始化一个model实例 sequelize的数据类型 基本增删改查的写法 SELECT * ...

  2. Oracle 数据库常用操作语句大全

    原文:Oracle 数据库常用操作语句大全 一.Oracle数据库操作 1.创建数据库      create database databasename 2.删除数据库      drop data ...

  3. linux 指定库名 登录mysql_linux下对应mysql数据库的常用操作

    ssh管理工具连接mysql数据库. 一.连接mysql数据库: 通过shh管理工具,登录linux的用户名,密码,进入ssh的命令行界面后,执行如下命令: mysql -u 数据库用户名 -p 然后 ...

  4. MongoDB使用小结:一些常用操作分享

    MongoDB使用小结:一些常用操作分享 本文整理了一年多以来我常用的MongoDB操作,涉及mongo-shell.pymongo,既有运维层面也有应用层面,内容有浅有深,这也就是我从零到熟练的历程 ...

  5. pythonlist基本操作_Python list 常用操作

    Python list 常用操作 1.list 定义 >>> li = ["a", "b", "mpilgrim", &q ...

  6. Windows下 MySQL命令 常用操作

    2019独角兽企业重金招聘Python工程师标准>>> Windows平台下MySQL常用操作与命令 (一)客户端连接MySQL数据库服务器 命令格式:mysql -h 数据库服务器 ...

  7. jdby mysql_06_dljd_mysql数据库常用操作

    一.sql分类 1.数据查询语言(DQL Q:query):用于对数据库中的数据的检索. 基本结构:select from where  group by  having order by < ...

  8. mysql中需要提交的操作_MySQL常用操作及基础知识

    原标题:MySQL常用操作及基础知识 1.启动和关闭mysql服务器: service mysql start service mysql stop 2.重启MySQL服务: service mysq ...

  9. mysql 分库分表 建表,mysql 分库分表 建表MySQL常用操作

    通过命令行启动.停止MySQL服务器: start: net start mysql stop: net stop mysql 连接MySQL服务器:\>mysql -h127.0.0.1 -u ...

  10. Oracle DG常用视图与运维护常用操作

    墨墨导读:本文来自墨天轮(www.modb.pro)读者投稿,作者对DG常用视图与运维常用操作进行解读,分享至此,希望对大家有帮助. 1.查看备库状态 SQL> select open_mode ...

最新文章

  1. spark-submit参数说明--standalone
  2. 如何网络监测其他计算机关闭445端口,关闭445端口的方法,小编告诉你电脑如何关闭445端口-站长资讯中心...
  3. CSS——FC(BFC/IFC/FFC/GFC)超详细版+原理案例分析
  4. 多语言 获取当前语言
  5. hadoop 3.x 关闭安全模式
  6. ES6的介绍和let的使用|-ES6连载1
  7. 微信小游戏flappy bird填坑
  8. IMA-ADPCM 算法
  9. PHP实现的服务器端,PHP实现服务器端允许客户端ajax跨域
  10. HTK的Network把所有的NetNode对象chain,并重新排序
  11. Stata中的单位根检验
  12. 图像融合:Image Fusion with Guided Filtering
  13. n阶乘计算器 超大数 理论可计算8位数以内的阶乘数
  14. 国货崛起,科技潮流——雷神星驰轮胎
  15. 传统数据库辉煌不再,云数据库迎来黄金时代
  16. 将qlv格式的视频转成MP4格式的视频
  17. ajax java首字母检索_AJAX的拼音首字母查找对应中文的portlet
  18. 解决华为手机InputMethodManager和GestureBoostManager的内存泄露的问题
  19. 通俗易懂告诉你:何为95%置信区间?
  20. 移动端测试——移动端基础

热门文章

  1. [转]WebService压缩
  2. URI 、URL 和 URN
  3. DRLSE 水平集算法总结
  4. Material Design使用集合
  5. php js 交互(js调用PHP代码执行)
  6. create-react-app 支持多入口
  7. MaxCompute SQL中的更新和删除如何实现
  8. [摘录]第五部分 经验谈(2)
  9. spring之ControllerAdvice注解
  10. 错误代码: 1005 Can't create table 'hibernate.bill' (errno: 150)