-
详解Sql基础语法
1.创建数据库create database数据库名称2.删除数据库dropdatabase数据库名称3.备份sqlserver创建备份数据的deviceusemasterexecsp_addumpdevice'名称','新的名称','路径'开始备份backupdatabasepubsto新的名称4.创建表createtable表名(列名1类型,列名2类型)5.根据已有表创建新表createtable新表名称like旧表名称createtable新表名称asselect列名from旧表名称defintiononly6.增加一个列Altertable表名称add列名称数据类型7.添加主键altertable表名称addprimarykey(列名称)8.自增id属性从1开始每次加1identity(1,1)9.创建索引createindex索引名on表名(列名)10.删除索引dropindexidx_name11.CTE查询;withtas(selectopenid,ROW_NUMBER()over(partitionbyopenidorderbyopenid)asrowfrom...
数据库操作教程 2022-09-23 17:48:10 -
浅析SQLServer中的执行计划缓存(上)
简介我们平时所写的SQL语句本质只是获取数据的逻辑,而不是获取数据的物理路径。当我们写的SQL语句传到SQLServer的时候,查询分析器会将语句依次进行解析(Parse)、绑定(Bind)、查询优化(Optimization,有时候也被称为简化)、执行(Execution)...
数据库操作教程 2022-09-23 17:48:06 -
mssqlserver中实现的unix时间戳函数(含生成和格式化,可以和mysql兼容)
直接上代码:CREATEFUNCTIONUNIX_TIMESTAMP(@ctimestampdatetime)RETURNSintegerASBEGIN/*Functionbody*/declare@returnintegerSELECT@return=DATEDIFF(SECOND,{d'1970-01-01'},@ctimestamp)return@returnENDCREATEFUNCTIONfrom_unixtime(@tsinteger)RETURNSdatetimeASBEGIN/*Functionbody*/declare@returndatetimeselect@return=DATEADD(second,@ts,{d'1970-01-01'})return@returnEND用法跟MySQL下的一样类似:selectdbo.UNIX_TIMESTAMP('2013-1-1')selectdbo...
数据库操作教程 2022-09-23 17:47:59 -
ASP和SQLServer如何构建网页防火墙
ASP是Web上的客户机/服务器结构的中间层,虽然它使用脚本语言(JavaScript,VBScript等)编写,程序代码在服务器上运行,在客户端仅可看到由ASP输出的动态HTML文件,但ASP仍具有某些漏洞,采取一定手段也可以看到ASP程序的源码。这时,通过ASP与SQLServer相结合,我们可以设计出简单、高效、可靠的应用程序...
数据库操作教程 2022-09-23 17:47:50 -
SQLSERVER数据库重建索引的方法
一.查询思路1.想要判断数据库查询缓慢的问题,可以使用如下语句,可以列出查询语句的平均时间,总时间,所用的CPU时间等信息SELECTcreation_timeN'语句编译时间',last_execution_timeN'上次执行时间',total_physical_readsN'物理读取总次数',total_logical_reads/execution_countN'每次逻辑读次数',total_logical_readsN'逻辑读取总次数',total_logical_writesN'逻辑写入总次数',execution_countN'执行次数',total_worker_time/1000N'所用的CPU总时间ms',total_elapsed_time/1000N'总花费时间ms',(total_elapsed_time/execution_count)/1000N'平均时间ms',SUBSTRING(st.text,(qs.statement_start_offset/2)+1,((CASEstatement_end_offsetWHEN-1THENDATALENGTH(s...
数据库操作教程 2022-09-23 17:47:38 -
SQLServer中数据行批量插入脚本的存储实现
无意中看到朋友写的一篇文章“将表里的数据批量生成INSERT语句的存储过程的实现”。我仔细看文中的两个存储代码,自我感觉两个都不太满意,都是生成的单行模式的插入,数据行稍微大些性能会受影响的...
数据库操作教程 2022-09-23 17:47:36 -
查询Sqlserver数据库死锁的一个存储过程分享
使用sqlserver作为数据库的应用系统,都避免不了有时候会产生死锁,死锁出现以后,维护人员或者开发人员大多只会通过sp_who来查找死锁的进程,然后用sp_kill杀掉。利用sp_who_lock这个存储过程,可以很方便的知道哪个进程出现了死锁,出现死锁的问题在哪里.创建sp_who_lock存储过程CREATEproceduresp_who_lockasbegindeclare@spidintdeclare@blkintdeclare@countintdeclare@indexintdeclare@locktinyintset@lock=0createtable#temp_who_lock(idintidentity(1,1),spidint,blkint)if@@error<>0return@@errorinsertinto#temp_who_lock(spid,blk)select0,blockedfrom(select*frommaster..sysprocesseswhereblocked>0)awherenotexists(select*frommas...
数据库操作教程 2022-09-23 17:47:30 -
常用SQL语句查询分享
--创建数据库(文件:主要数据文件mdf==1,次要数据文件ndf>=0,日志文件ldf>=1)--文件组:当1mdf,5个ndf(1,2,2),10个ldf(3,3,4),将它们分成多个组存放CREATEdatabasestudb;--创建表teacher,studentcreatetableteacher(tidint(10)primarykeyauto_increment,tnamevarchar(20),tageint(10));usestudb;createtablestudent(sidint(10)primarykeyauto_increment,snamevarchar(20),sageint(10),tidint(10)REFERENCESteacher(tid));--外键约束:你问张三的老师是谁??--selectteacher.tnamefromteacher,studentwherestudent...
数据库操作教程 2022-09-23 17:47:28 -
MSSQL中进行SQL除法运算结果为小数却显示0的解决方法
今天在用MSSQL进行SQL除法运算时,发现运算结果有小数,而整数部分为0时,结果直接显示为0,经过一翻测试发现了解决方法,拿来分享。假设有如下的一段SQL除法运算:selectfield1/field2fromtable假设其运算结果应该为0.123,但实际在MSSQL查询编辑器中运算直接就显示为0了,那么要想显示其真实结果,有什么办法呢?方法就是将分子field1的数据类型强制转换为float型,方法如下:selectcast(field1asfloat)/field2fromtable...
数据库操作教程 2022-09-23 17:47:22 -
SQLServer数据汇总五招轻松搞定
本文我们将讨论如何使用GROUPBY子句来汇总数据。使用单独列分组GROUPBY子句通过设置分组条件来汇总数据,在第一个例子中,我在数据库AdventureWork2012中的表Sales.SalesOrderDetail.中的一列上进行数据分组操作...
数据库操作教程 2022-09-23 17:47:20 -
SQLServer比较常见数据类型详解
在SQLServer中每个变量、参数、表达式等都有数据类型。系统提供的数据类型分为几大类,如表4-2所示...
数据库操作教程 2022-09-23 17:47:15 -
深入浅析SQLServer触发器
触发器是一种特殊类型的存储过程,它不同于之前的我们介绍的存储过程。触发器主要是通过事件进行触发被自动调用执行的...
数据库操作教程 2022-09-23 17:47:11