Archive for SQl
Mysql插入语句的5种写法。
发表于 2010-10-5 09:09 : 评论 ( 没有评论 )
insert into tablename (id,name) value ('', 'xxx'); insert into tablename (id,name) values ('', 'xxxxx'); insert into tablename (id, name) value ('','xxx'),('','xxxxxxx'); insert into tablename (id, name) values ('','xxx'),('','xxxxxxx'); insert into tablename set id='id', name='xxxxx'; 一般推荐第四种写法,这是SQL标准,在Oracle等其它数据库类型中通用性好,其它几种在Mysql App开发时,有特定的方便之处。
一些PHP+PDO的查询技巧
发表于 2010-05-12 00:55 : 评论 ( 没有评论 )
1,类似PHP框架中的预处理,简单理解为可绑定参数自动传值 This example fetches data based on a key value supplied by a form. The user input is automatically quoted, so there is no risk of a SQL injection attack. 这个例子里获取的数据,根据用户提交的表单自动生成,不需要程序员判断变量,用户提交的数据将被自动转义,所有没有SQL注入的问题 2,同上,自动赋值的另外一种代码样式 3,PHP+PDO+Mysql 4,完善的事务处理功能
SQL Server 压缩日志及数据库文件大小
发表于 2008-08-1 17:13 : 评论 ( 没有评论 )
以下操作均需要按步骤进行,未进行前面的步骤时,请不要做后面的步骤,以免损坏你的数据库. 一般不建议做第4,6两步,第4步不安全,有可能损坏数据库或丢失数据。第6步如果日志达到上限,则以后的数据库处理会失败,在清理日志后才能恢复。 1.清空日志 DUMP TRANSACTION 库名 WITH NO_LOG 2.截断事务日志 BACKUP LOG 数据库名 WITH NO_LOG 3.收缩数据库文件(如果不压缩,数据库的文件不会减小 企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件 --选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了 --选择数据文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了 也可以用SQL语句来完成 --收缩数据库 DBCC SHRINKDATABASE(客户资料) --收缩指定数据文件,1是文件号,可以通过这个语句查询到: select * from sysfiles DBCC SHRINKFILE(1) 4.为了最大化的缩小日志文件(如果是sql 7.0,这步只能在查询分析器中进行) a.分离数据库: 企业管理器--服务器--数据库--右键--分离数据库 b.在我的电脑中删除LOG文件 c.附加数据库: 企业管理器--服务器--数据库--右键--附加数据库 此法将生成新的LOG,大小只有500多K 或用代码: 下面的示例分离 pubs,然后将 pubs 中的一个文件附加到当前服务器。 a.分离 EXEC sp_detach_db @dbname = 'pubs' b.删除日志文件 c.再附加 EXEC sp_attach_single_file_db @dbname = 'pubs', [...]
SQL Server的MDF文件的修复
发表于 2008-08-1 17:08 : 评论 ( 没有评论 )
首先:如果备份的数据库有两个文件,分别是.LDF 和 .MDF,打开企业管理器,在实例上右击---所有任务--附加数据库,然后选择那个.MDF文件,就可以了。 或者在查询分析器中输入: sp_attach_db "数据库名称","路径\文件名.ldf","路径\文件名.MDF" SQL Server数据库备份有两种方式,一种是使用BACKUP DATABASE将数据库文件备份出去,另外一种就是直接拷贝数据库文件mdf和日志文件ldf的方式。下面将主要讨论一下后者的备份与恢复。本文假定您 能熟练使用SQL Server Enterprise Manager(SQL Server企业管理器)和SQL Server Quwey Analyser(SQL Server查询分析器)。
DELETE,UPDATE与LEFT JOIN
发表于 2008-07-30 22:18 : 评论 ( 没有评论 )
#UPDATE: UPDATE A SET ApproverID=NULL,ApproveDate=NULL,ApproveResult=100,CheckerID=null,CheckDate=null, IsCheck=0 FROM [SH_MaterialApplyBuyBill] A LEFT JOIN [SH_MaterialApplyBuyBillDetail] B ON A.ID=B.[MaterialApplyBuyBillID] WHERE A.id=125 AND @InDetailCount=0 #DELETE: DELETE A FROM [SH_ClosingBalance] A LEFT JOIN [SH_StoreHouse] B ON A.StoreHouseID=B.ID WHERE B.departmentID='1000' update table1 set a.a=1 from table1 a inner join table2 b on a.ip=b.ip
Sql中字段的相关处理
发表于 2008-07-29 20:06 : 评论 ( 没有评论 )
增加字段 alter table docdsp add dspcode char(200) 删除字段 ALTER TABLE table_NAME DROP COLUMN column_NAME 修改字段类型 ALTER TABLE table_name ALTER COLUMN column_name new_data_type 改名 sp_rename 更改当前数据库中用户创建对象(如表、列或用户定义数据类型)的名称。 语法 sp_rename [ @objname = ] 'object_name' , [ @newname = ] 'new_name' [ , [ @objtype = ] 'object_type' ] --假设要处理的表名为: tb --判断要添加列的表中是否有主键 if exists(select 1 from sysobjects where [...]
sql的left join 命令详解
发表于 2008-07-21 23:02 : 评论 ( 没有评论 )
例表a aid adate 1 a1 2 a2 3 a3 表b bid bdate 1 b1 2 b2 4 b4 两个表a,b相连接,要取出id相同的字段 select * from a inner join b on a.aid = b.bid这是仅取出匹配的数据. 此时的取出的是: 1 a1 b1 2 a2 b2 那么left join 指: select * from a left join b on a.aid = b.bid 首先取出a表中所有数据,然后再加上与a,b匹配的的数据 此时的取出的是: 1 a1 [...]
Access 通配符参考 [适用于: Microsoft Office Access 2007]
发表于 2008-07-21 13:16 : 评论 ( 没有评论 )
较长时间内都一直在用Access2007.在替换上面需要使用到正则替换,写程序太过复杂,因而找到以下通配符来使用按格式搜索功能,十分方便。 做一记号。
