手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆
浏览模式: 标准 | 列表Tag:sql

SQL,大量的SQL

这两天在折腾数据,写了很多很多SQL(当然是对我来说,比如象锅巴那种牛人,他们一写就是几百上千行的,我不能比),我只写了100多行。基本上所有的操作都通过SQL完成了,除非实在没办法完成的。才用PHP处理。

对我来说,这两天 insert into xxx (xxx) select xxx from xxx where xxx,写的很多了

还有update a,b set a.xx=b.xx where a.id=b.id之类的也很多

在锅巴哥哥的介绍下,还知道把一句SQL分成多句,或者用下面这张图解决。。。

大小: 65.24 K
尺寸: 360 x 376
浏览: 1912 次
点击打开新窗口浏览全图

嗯,本来想用存储过程的,但赶时间,来不及学了。几年前看的东西全忘光了。靠,晚上回去翻开我的mysql书看一下下先。

 

Tags: mysql, sql

使用ZendFramework的时候打印SQL

在使用ZendFramework开发的时候,会遇到要对SQL进行优化的处理,但是从ZEND的DB类里并没有找到输出SQL的方法,唯一看到的输出也是在SELECT类里面有一个__toString()的方法,但这个方法也只能输出SELECT的语句,对于Insert,Update,Delete之类的语句并不能处理。

开始的时候,很郁闷,后来问HaoHappy,因为他是国内第一批翻译ZF手册的人,果然我一问,他一下子就说,有一个Profiler类可以解决。
翻开手册,Zend_Db_Profiler,里面果然有操作。。(注:类名是凭记忆的,以下内容也是凭记忆写出来的)

1、在DB的CONFIG里面把profiler打开,如果没有打开,则需要用$profiler =  $db->getProfiler();然后 $profiler->setEnable(true); (好象记错了,请看手册,我这里只说解决方法)

2、然后有一个设置 Profiler 的filter条件的,可以设定select,insert,update,delete的操作。

3、然后根据官方的例子,对SQL进行输出(手册上的例子,只是输出了执行时间最长的SQL哦)。如果需要每条都输出,你得在那个 if 判断外把sql 存储下来,即 $query->getQuery();

4、根据手册,还可以输出到fireBug和利用FirePHP来进行类似的debug,但我试了一下没有成功(  QEE 支持 firePHP ,不知道是否借鉴了ZEND的这个功能,猜测而己 )

纯粹是一个记录,顺便感谢一下HaoHappy

Tags: zend, framework, sql

wwwsqldesigner:a Visual web-based SQL modelling tool

看到这个的时候很吃惊,最初看到类似功能的时候是在PHPMYADMIN 3上面,想不到现在已经发展到这个地步了,实在让人大吃一“斤”呀。

WWW SQL Designer allows users to create database designs, which can be saved/loaded and exported to SQL scripts. Various databases and languages are supported. Ability to import existing database design.

About

Hi and welcome to WWW SQL Designer! This tool allows you to draw and create database schemas (E-R diagrams) directly in browser, without the need for any external programs (flash). You only need JavaScript enabled. The Designer works perfectly in Mozillas (Firefox, Seamonkey), Internet Explorers (6, 7, 8), Safari and Operas. Konqueror works, but the experience is limited.

Many database features are supported, such as keys, foreign key constraints, comments and indexes. You can either save your design (for further loading & modifications), print it or export as SQL script. It is possible to retrieve (import) schema from existing database.

WWW SQL Designer was created by Ondrej Zara and is built atop the oz.js JavaScript module. It is distributed under GNU GPL license.

网址:http://code.google.com/p/wwwsqldesigner/

我是从:http://parandroid.com/www-sql-designer-open-source-sql-based-web-creation-tools/看来的

它支持很多的数据库功能:

  • 强制外关键字
  • 注解
  • 索引

当数据库图表创建后,你可以:

  • 保存你的数据表设计或稍后修改它们
  • 打印它
  • 作为 SQL脚本导出

它甚至还可以从已存在的数据库中检索出概况图标,支持MySQL, MSSQL, SQLite 和 Web2py。感兴趣的朋友看查看DEMO.

 

 

图片附件:
大小: 18.81 K
尺寸: 430 x 188
浏览: 2420 次
点击打开新窗口浏览全图

Tags: designer, sql, web

SQL语句导入导出大全(转)

备份资料:Copy from ---> http://php.mydict.com/ziliao/7/2006_05/SQLYuJuDaoRuDaoChuDaQuan3016_1.html



/******* 导出到excel
EXEC master..xp_cmdshell 'bcp SettleDB.dbo.shanghu out c:\temp1.xls -c -q -S"GNETDATA/GNETDATA" -U"sa" -P""'

/*********** 导入Excel
SELECT *
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:\test.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...xactions

更多看详细。。。

» 阅读全文

Tags: sql, 导入, 导出, 详解, 数据库

惊心动魄的SQL BUG

刚才打开google reader的时候,突然看到一篇文章,让俺大吃一惊呀。详细内容如下:

原文网址:http://www.cnblogs.com/xinerzhui/archive/2008/07/30/1256648.html
  1.  请谨慎注意这一微软SQLBug  
  2. 刚来博客园,有什么不对,需要改进的地方,欢迎各位同道指出来,谢谢。  
  3. 今天在使用数据库时出现意外操作,将一张表的数据删除了。仔细查看SQL语句,发现问题。将问题类推到Northwind中。我们使用两个表,Employees和Products  
  4. SQL语句如下:  
  5. select * from Products where CategoryID in (select CategoryID from Employees)  
  6. 不看表结构是看不出什么问题的,不清楚的看一下表结构。执行上面的SQL语句,你将能看到所有的产品记录。  
  7. 当你执行上面语句的"select CategoryID from Employees",将会提示一个错误提示:  
  8. 消息 207,级别 16,状态 3,第 1 行  
  9. 列名 'CategoryID' 无效。  
  10. 表Employees中根本就没有CategoryID列,而微软忽略了括号中的错误,执行前面的语句。如果是应用在删除,更新,那后果将是不可现象的。我曾为此付出了代价。  
  11. 这个应该就是微软SQL的BUG吧,我们需要特别注意。  
  12. 在SQL2000企业管理器,SQL2000的查询分析器,SQL2005的Management Studio Express中均有此Bug。   

 

然后有人回复为:

#2楼 2008-07-30 17:21 | 熊呜呜
我在Sql2000上测试,确实有这个问题。  

#3楼 2008-07-30 17:27 | ocean  
  1. 有意思的问题,在我的management studio里面查询,也会有这个问题,要好好地研究一下。  

#7楼 117.22.68.*2008-07-30 17:45 | johnnyshieh [未注册用户]
  1. Microsoft SQL Server Management Studio 9.00.1399.00  
  2. 有楼主说的问题!  
  3. 确实应该注意一下。  
#9楼 2008-07-30 17:55 | 金色海洋(jyk)
  1. 看了表结构才知道,Employees 表里面没有 CategoryID字段。为什么不报错呢。错误被吃掉了。  
  2.   
  3. select * from Products where CategoryID in (select CategoryID from Employees)  
  4.   
  5. select * from Products where CategoryID in (select EmployeeID from Employees)  
  6.   
  7. 我比较了一下这两个语句的执行计划,不完全一样。建议lz分析一下执行计划。  
  8. 因为我还不能完全看懂执行计划。只能看出来两个执行计划是不一样的。呵呵。  
在MYSQL里没有试会不会遇到这种情况,我用navicat试是没有这种情况的。不知道其他的会不会有。

联想起以前写CRUD之类的东西时候,在过滤条件时,自动将空值直接unset掉,然后再拼成SQL,后来被BOBBY严厉批评了一下,确实,查询的时候感觉不出有什么问题,可如果是在UPDATE或者是DELETE的时候呢?本来是有条件的,可突然被unset掉成为没有条件了,那岂不是很恐怖?

借这个机会再次提醒自己,细心、周全、小心

 

Tags: mssql, sqlserver, microsoft, sql, bug

Records:712