
1.1、SQL基础知识
文章平均质量分 59
zoohouse
这个作者很懒,什么都没留下…
展开
-
SQL日期操作语句
1.显示本月第一天 SELECT DATEADD(mm,DATEDIFF(mm,0,getdate()),0) select convert(datetime,convert(varchar(8),getdate(), 120)+’01’,120) 2.显示本月最后一天 select dateadd(day,-1,convert(datetime,convert (varchar(8),dateadd(month,1,getdate()),120)+’01’,120)) SELECT dateadd(ms,转载 2010-08-08 17:33:00 · 732 阅读 · 0 评论 -
sql 2005数据库加密
转贴自teched讲师: 牛可 基本概念:第一层 服务主密钥 备份服务主密钥backup service master key to file='c:/smk.bak'encryption by password='P@ssw0rd' restor转载 2011-09-29 09:25:37 · 526 阅读 · 0 评论 -
SQL Server 2008中SQL之WaitFor
SQL Server 2008中SQL应用系列--目录索引在SQL Server2005以上版本中,在一个增强的WaitFor命令,其作用可以和一个job相当。但使用更加简捷。看MSDN:http://msdn.microsoft.com/zh-cn/library/转载 2011-09-28 09:26:56 · 602 阅读 · 0 评论 -
SQL经典例子
问题描述: 本题用到下面三个关系表: CARD 借书卡。 CNO 卡号,NAME 姓名,CLASS班级 BOOKS 图书。 BNO 书号,BNAME 书名,AUTHOR作者,PRICE 单价,QUANTITY 库存册数 BORROW 借书记录。 CNO 借书卡号,原创 2011-09-15 18:21:24 · 812 阅读 · 0 评论 -
set nocount on作用
set nocount on的疑问 set nocount on作用 set nocount on什么意思MSDN解释:阻止在结果集中返回可显示受 Transact-SQL 语句或存储过程影响的行计数的消息。Stops the message that shows转载 2011-09-02 09:35:50 · 10279 阅读 · 0 评论 -
修改表结构
ALTER TABLE命令的语法格式较长,下面仅给出几个简单的例子。 1.给表添加字段 使用ALTER TABLE命令的ADD[COLUMN]子句。例如,可以使用以下命令把备注型字段“地址”添加到Student表中,并允许该字段有null值: ALTER TABLE S转载 2011-07-27 09:15:33 · 418 阅读 · 0 评论 -
Microsoft.Practices.EnterpriseLibrary.Data--使用存储过程,参数及事务
一. 使用存储过程:关于数据访问应用程序块的介绍在入门篇里面已经说过了,这里不再重复。下面我们来看看在数据访问应用程序块里面使用存储过程的方法:1. 不传递参数:不传递参数时值需要指定存储过程的名称,已经命令的类型即可。 1/**//// 2 /// 执行存储过程(1)——不传递参数(NoPara) 3 ///转载 2011-06-09 13:17:00 · 10090 阅读 · 1 评论 -
SQL语句大全
<br />整理了一下,希望对大家有用<br />SQL语句大全 <br /><br />--语 句 功 能<br />--数据操作<br />SELECT --从数据库表中检索数据行和列<br />INSERT --向数据库表添加新数据行<br />DELETE --从数据库表中删除数据行<br />UPDATE --更新数据库表中的数据<br />--数据定义<br />CREATE TABLE --创建一个数据库表<br />DROP TABLE --从数据库转载 2011-05-26 13:42:00 · 604 阅读 · 0 评论 -
C#调用存储过程简单完整例子
CREATE PROC P_TEST@Name VARCHAR(20),@Rowcount INT OUTPUTASBEGIN SELECT * FROM T_Customer WHERE NAME=@Name SET @Rowcount=@@ROWCOUNTENDGO------------------------------------------------------------------------------------------存储过程调用如下:转载 2011-03-15 14:46:00 · 774 阅读 · 1 评论 -
SQL字符串处理
select语句中只能使用sql函数对字段进行操作(链接sql server),select 字段1 from 表1 where 字段1.IndexOf("云")=1;这条语句不对的原因是indexof()函数不是sql函数,改成sql对应的函数就可以了。left()转载 2011-10-10 11:40:53 · 476 阅读 · 0 评论 -
判断是否存在某列,并新增一列
语法:if exists(select 1 from syscolumns where name = '列名' and id = object_id('表名'))例子:IF NOT EXISTS (SELECT 1 FROM syscolumns WHERE id=OBJECT_ID('dbo.Shipping_Info') AND NAME='PaymentInfoID2')原创 2011-12-27 09:05:07 · 636 阅读 · 0 评论 -
union的用法
SQL UNION 操作符UNION 操作符用于合并两个或多个 SELECT 语句的结果集。请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。SQL UNION 语法SELECT column_name(s) FROM table_name1UNIONSELECT column_n原创 2012-06-01 11:18:25 · 664 阅读 · 0 评论 -
delete table 和 truncate table
delete table 和 truncate table使用delete语句删除数据的一般语法格式:delete [from]{table_name、view_name}[where]将XS表中的所有行数据删除delete XS 执行完后,发现XS表中的数据都删除了,但是表的结构什么都还在。 truncatetruncate table语句将删除指转载 2012-04-10 16:46:56 · 784 阅读 · 0 评论 -
if语句中判断空值
在定义中说,空值不与任何值相等。因此不能使用 = null 做判断。在Sql语句中,唯一可以使用 = null的就是update语句中的赋值语句,其他地方都不可以使用。所以要用if(a is null)来判断是否为空if中要实现多个条件并列判断时,可以使用and,or来实现,例:if (1=2 and 1=1) or 2=1begin print '1'end原创 2010-12-25 21:19:00 · 10031 阅读 · 0 评论 -
Sql Server REPLACE函数的使用
REPLACE用第三个表达式替换第一个字符串表达式中出现的所有第二个给定字符串表达式。语法REPLACE ( ''string_replace1'' , ''string_replace2'' , ''string_replace3'' )参数''string_replace1''待搜索的字符串表达式。string_replace1 可以是字符数据或二进制数据。''st转载 2012-04-10 17:52:00 · 697 阅读 · 0 评论 -
SQL将日期按特定的英文格式输出
我们知道在SQL中,要想让日期按特定的格式输出,可以用convert函数,但这样子转化后的结果都是数字格式的,比如2012-02-16,02/16/2012等,但是要想让日期输出的格式为Tuesday, April. 3,convert函数就不能满足,这时,我们可以使用另一个日期操作的函数:DATENAME()DATENAME()返回代表指定日期的指定日期部分的字符串。语法原创 2012-03-31 11:40:39 · 8228 阅读 · 0 评论 -
关于SQL数据类型的优先顺序
在写CASE WHEN THEN语句时,遇到一个转化错误问题,如下:库中的status为A,使用语句:SELECT a=(CASE WHEN Status='A' THEN 'A' ELSE GETDATE() END) FROM dbo.DeliveryDelayMessage数据库返回错误信息:Conversion failed when converting d原创 2012-03-29 09:26:51 · 1171 阅读 · 0 评论 -
count(1) 与 count(*)
count(1) 与 count(*)这个要看你自己数据库设计的结构啦 如果你的数据表没有主键,那么count(1)比count(*)快 如果有主键的话,那主键(联合主键)作为count的条件也比count(*)要快 如果你的表只有一个字段的话那count(*)就是最快的啦 count(*) count(1) 两者比较。主要还是要count(1)所相对应的数据字段。 如果c转载 2012-02-21 18:26:49 · 560 阅读 · 0 评论 -
CROSS APPLY和 OUTER APPLY 区别详解
SQL Server 2005 新增cross apply 和outer apply 联接语句,增加这两个东东有啥作用呢?我们知道有个 SQL Server 2000 中有个cross join 是用于交叉联接的。实际上增加cross apply 和outer apply 是用于交叉联接表值函数(返回表结果集的函数)的, 更重要的是这个函数的参数是另一个表中的字段。转载 2012-02-16 09:07:59 · 761 阅读 · 0 评论 -
SQL2000存储过程的基础
存储过程的概念 SQL Server提供了一种方法,它可以将一些固定的操作集中起来由SQL Server数据库服务器来完成,以实现某个任务,这种方法就是存储过程。 存储过程是SQL语句和可选控制流语句的预编译集合,存储在数据库中,可由应用程序通过一个调用执行,而且允许用户声明变量、有条件执行以及其他强大的编程功能。 在SQL Server中存储过程分为两类:即系统提供的存储过程和用户自定义的存储过程。 可以出于任何使用SQL语句的目的来使用存储过程,它具有以下优点: 可以在单个存储过程中执行一系列SQL语句转载 2011-03-14 13:55:00 · 474 阅读 · 0 评论 -
熟悉SQL Server存储过程
<br />首先介绍一下什么是存储过程:存储过程就是将常用的或很复杂的工作,预先用SQL语句写好并用一个指定的名称存储起来,并且这样的语句是放在数据库中的,还可以根据条件执行不同SQL语句, 那么以后要叫数据库提供与已定义好的存储过程的功能相同的服务时,只需调用execute,即可自动完成命令。<br /><br /> 请大家来了解一下存储过程的语法。<br /> Create PROC [ EDURE ] procedure_name [ ; number ]<br /> [转载 2011-03-15 13:41:00 · 625 阅读 · 0 评论 -
SQL 常用函数总结
<br />目录<br />SQL常用函数之一 Stuff(). 2<br />SQL常用函数之二 QuoteName(). 3<br />SQL常用函数之三 REPLICATE () 3<br />SQL常用函数之四 REVERSE() 4<br />SQL常用函数之五 str()... 4<br />SQL常用函数之六 CHARINDEX() 5<br />SQL常用函数之七 PatIndex()... 6<br />SQL常用函数之八 日期函数... 8<br />SQL常用函数之综合... 8<br转载 2010-08-12 19:04:00 · 629 阅读 · 0 评论 -
SQL 日期型函数
<br />1 SQL Server 有两种日期类型:DATETIME 和 SMALLDATETIME,<br /> <br /> DATETIME 的日期范围:1753-1-1到9999-12-31之间的日期值,精度为3.33毫秒,其类型的值在SQLServer内部用两个 4 字节的整数存储。<br /> 第一个 4 字节存储“基础日期”(即 1900 年 1 月 1 日)之前或之后的天数。基础日期是系统参照日期。<br /> 另外一个 4 字节存储天的时间(以转载 2010-08-12 16:22:00 · 897 阅读 · 0 评论 -
SQL SELECT UNION的应用
表A: 订单号 入库单号 数量 入库数量 001 500 002 300 003 400 表B: 订单号 入库单号 入库数量 001 R01 250 001转载 2010-08-09 21:37:00 · 742 阅读 · 0 评论 -
select case when的一些用法以及IF的用法
<br />概述: <br />sql语句中的case语句与高级语言中的switch语句,是标准sql的语法,适用于一个条件判断有多<br />种值的情况下分别执行不同的操作。<br /><br />首先,让我们看一下CASE的语法。在一般的SELECT中,其语法格式如下:<br />SELECT <myColumnSpec> =<br />CASE <单值表达式><br /> when <表达式值> then <SQL语句或者返回值><br /> when <表达式值> then转载 2010-08-10 11:07:00 · 17911 阅读 · 1 评论 -
ISNULL()函数
使用指定的替换值替换 NULL。语法ISNULL ( check_expression , replacement_value ) 参数check_expression将被检查是否为 NULL的表达式。check_expression 可以是任何类型的。replacement_value在 check_expression 为 NULL时将返回的表达式。replacement_value 必须与 check_expresssion 具有相同的类型。返回类型返回与 check_expression 相同的类型转载 2010-08-10 21:55:00 · 860 阅读 · 0 评论 -
insert 语法
<br />Insert可以使一个表新增一个或多个记录: <br /><br /><br /><br />INSERT INTO:新增一个记录。 <br /><br />INSERT INTO…SELECT:新增多个记录。 <br /><br /><br />一、INSERT INTO <br /><br />新增一个记录的INSERT INTO语法如下: <br /><br />INSERT INTO 表 [(字段1[,字段2[, ...]])] <br />VALUES (值1[,值2[, ...])转载 2010-08-10 09:57:00 · 1115 阅读 · 0 评论 -
SQL对DATETIME型数据的操作3
1、根据数据库的时间字段查询当天、当月、当年的信息select * from t_count where DATEDIFF(d,AddTime,getdate())=0 //当天select * from t_count where DATEDIFF(m,AddTime,getdate())=0 //当月select * from t_count where DATEDIFF(yy,AddTime,getdate())=0 //当年以此类推,下面是详细的参数介绍-- DATEDIFF-- 返回跨两个指定日期转载 2010-08-08 18:17:00 · 705 阅读 · 0 评论 -
SQL对DATETIME型数据的操作2
日期和时间函数对建立一个站点是非常有用的。站点的主人往往对一个表中的数据何时被 更新感兴趣。通过日期和时间函数,你可以在毫秒级跟踪一个表的改变。 返回当前日期和时间 通过函数GETDATE(),你可以获得当前的日期和时间。例如,语句SELECT GETDATE() 返回如下的结果: …………………………… NOV 30 1997 3:29AM (1 row(s) affected) 显然,如果你将来使用这个函数,你得到的日期将比这个时间晚,或者更早。 函数GETDATE()可以用来作为DATEDIME()型转载 2010-08-08 18:12:00 · 2197 阅读 · 0 评论 -
SQL触发器语法参考
CreateTRIGGER trigger_name<br />ON { table | view }<br />[ WITH ENCRYPTION ]<br />{<br /> { { FOR |AFTER | INSTEAD OF } { [ Insert ] [ , ] [ Update ] }<br /> [ WITH APPEND ]<br /> [ NOT FOR REPLICATION ]<br /> AS<br /> [ { IF Update转载 2010-08-16 19:33:00 · 550 阅读 · 0 评论 -
sql server 获得数据库中表数量和字段数量的语句
<br />网站做下来有90多个表了,我想知道一共有多少个字段,一个一个数显然太麻烦了。到百度知道上问,没有得到答案,网上再搜,找到个启发性的语句,最后发现了语句。<br /> <br />要知道一个数据库里共有多少个用户表:<br />select count(*) from sysobjects where type='U'<br /> <br />完整输出语句为(下同):<br />Response.Write conn.execute("select count(*) from sysobjects转载 2010-09-02 23:17:00 · 10923 阅读 · 1 评论 -
取用户信息
<br />SELECT DISTINCT dbo.Customer.FirstName,dbo.Payment_Info.cardNumber,dbo.Shipping_Info.shippingAddr1<br />FROM dbo.Shipping_Info,dbo.Payment_Info,dbo.Customer,dbo.Orders,dbo.Order_Item,dbo.Customer_Login<br />WHERE Orders.OrderId=124889 AND dbo.Custome原创 2011-03-14 18:06:00 · 482 阅读 · 0 评论 -
表内触发
<br />表中数据如下:<br /> <br />ID A B 状态<br />1 12 3 已排产<br /> <br /> <br />触发的的功能是,当 A >B 时,表中的 '状态' 字段改为已排产<br /> <br />alter trigger B_N_trigger on 表内触发<br />for insert,update<br />as<br原创 2011-01-16 16:29:00 · 478 阅读 · 0 评论 -
SQL按日期来选择记录(比较日期的大小)
在数据库操作中,通常需要选择某日期以后的记录,比如选择10年1月到11年2月之间的记录,此时用SQL语句编写时,不能直接用“>、详细看如下几条语句:1、select * from IS_生产进度表视图1where 成型日期>‘2011-08-08’所得到的结果是表中全部内容,因为成型日期是datetime型,而右边是字符型,无法比较,因此要将其转换select * from IS_生产进度表视图1where 成型日期>convert(varchar(10),'2010-09-20',120)所得结果包括20原创 2011-01-14 18:21:00 · 36466 阅读 · 2 评论 -
sql convert函数使用小结
<br />CONVERT(data_type,expression[,style]) <br />convert(varchar(10),字段名,转换格式)<br />说明:<br />此样式一般在时间类型(datetime,smalldatetime)与字符串类型(nchar,nvarchar,char,varchar)<br />相互转换的时候才用到.<br />语句 结果<br />SELECT CONVERT(varchar(100), GETDATE(), 0) 07 15 2009 4:06P转载 2011-01-14 18:29:00 · 1249 阅读 · 0 评论 -
在SQL Server触发器中如何判断哪些列被更改(还没试过)
<br />在触发器中判断哪些列被更改有以下两种方法:<br /> 第一、可以使用Update()函数 ,语法:Update(列名);返回值:bool值。如果该列被更新则为True,否则为False。该函数比较方便也比较实用。<br /> 第二、使用COLUMNS_UPDATED()函数。 语法:COLUMNS_UPDATED () ;返回值:varbinary <br /> 1.八列以内的表。可以直接使用 COLUMNS_UPDATED()函数来判断。比如:要测试一下第一列有没有被修改,则可转载 2010-12-24 21:24:00 · 2254 阅读 · 0 评论 -
触发器中的 inserted表和deleted
<br />SQL2000中,inserted表和deleted表用于存放对表中数据行的修改信息。他们是触发器执行时自动创建的,放在内存中,是临时表。当触发器工作完成,它们也被删除。它们是只读表,不能向它们写入内容。 <br /> <br />inserted表:用来存储INSERT和UPDATE语句所影响的行的副本。意思就是在inserted表中临时保存了被插入或被更新后的记录行。在执行 INSERT 或UPDATE 语句时,新加行被同时添加到inserted表和触发器表中。因此,可以从inserted表转载 2010-12-24 19:44:00 · 1610 阅读 · 0 评论 -
带参数触发器例子
<br />create trigger trigger_t1 on tb_sales_info<br />for insert<br />declare @BookNo nvarchar(10),@Number int<br />set @BookNo=(select top1 BookNo from inserted )<br />set @BookNo=(select top1 Number from inserted)<br /><br />begin<br />update tb_sales_in转载 2010-12-14 23:04:00 · 2093 阅读 · 0 评论 -
sql 处理字符串的函数有哪些?
<br />1.绝对值 <br />SQL:select abs(-1) value <br />O:select abs(-1) value from dual <br />2.取整(大) <br />S:select ceiling(-1.001) value <br />O:select ceil(-1.001) value from dual <br />3.取整(小) <br />S:select floor(-1.001) value <br />O:select floor(-1.001) v转载 2010-09-19 00:49:00 · 603 阅读 · 0 评论 -
得到表中的所有列信息(包含数据类型名)
取表的字段信息: SELECT syscolumns.name,systypes.name,syscolumns.isnullable,syscolumns.length FROM syscolumns, systypes WHERE syscolumns.xusertype = systypes.xusertype AND syscolumns.id = object_id('prod转载 2012-06-25 11:24:59 · 979 阅读 · 0 评论