<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>数据库</title><link>http://leejd.cndev.org/category/584.aspx</link><description>数据库</description><managingEditor>小东</managingEditor><dc:language>zh-CHS</dc:language><generator>.Text Version 0.95.2004.101</generator><item><dc:creator>小东</dc:creator><title>4大开源数据库介绍</title><link>http://leejd.cndev.org/archive/2005/05/01/12084.aspx</link><pubDate>2005-05-01 16:25:00Z</pubDate><guid>http://leejd.cndev.org/archive/2005/05/01/12084.aspx</guid><wfw:comment>http://leejd.cndev.org/comments/12084.aspx</wfw:comment><comments>http://leejd.cndev.org/archive/2005/05/01/12084.aspx#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://leejd.cndev.org/comments/commentRss/12084.aspx</wfw:commentRss><trackback:ping>http://leejd.cndev.org/services/trackbacks/12084.aspx</trackback:ping><description>&lt;P&gt;&lt;STRONG&gt;&lt;U&gt;PostgresSQL&lt;BR&gt;&lt;/U&gt;&lt;/STRONG&gt;Postgres可追溯至1986年的加州柏克莱大学。该大学在1994年以BSD授权方式将程式码开放给开源码社群，社群则加入了SQL支援，然後一直研发该软体至今。部分原始程式码与设计依然留存至今，不论在Postgres或Informix资料库都还看得到，後者一开始就采用Postgres的程式码，现在则由IBM所有。Postgres是公认最先进的开放原始码资料库，但文件品质则相当受到诟病。&lt;/P&gt;
&lt;P&gt;&lt;U&gt;&lt;STRONG&gt;MySQL &lt;/STRONG&gt;&lt;BR&gt;&lt;/U&gt;瑞典的MySQL AB公司於1995年开始同时以开放原始码模式与商业授权模式来推出此一产品，该公司表示此一「双轨授权」策略有助於站稳财务基础，有利於未来持续改善资料库产品。MySQL以100名员工可称得上是全球最大的开放原始码资料库组织，号称有400万安装基础，也被赞美为最好用的开放原始码资料库。该公司还提供另一个原本由ERP大厂SAP所拥有的开放原码资料库MaxDB，并加以认证用在R/3套装软体中。&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;U&gt;Firebird &lt;/U&gt;&lt;/STRONG&gt;&lt;BR&gt;Borland於2000年将Interbase关连资料库第六版的测试原始码公诸大众，使得它成为全球最新的开放原始码资料库。Firebird现在进入1.5版，优点是体积小，且SQL引擎非常稳定。&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;U&gt;BerkeleyDB &lt;BR&gt;&lt;/U&gt;&lt;/STRONG&gt;属於内嵌资料库，包括Apache、Sendmail、Mozilla浏览器，甚至是Google都采用BerkeleyDB。EMC在部分储存装置上也有使用，而昇阳的LDAP伺服器则仰赖这套程式码。思科与Sony都仅是用户。号称拥有2亿个部署基础，且跟MySQL一样，都采双轨授权策略。&lt;BR&gt;&lt;/P&gt;&lt;img src ="http://leejd.cndev.org/aggbug/12084.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>小东</dc:creator><title>FireBird数据库</title><link>http://leejd.cndev.org/archive/2005/05/01/12083.aspx</link><pubDate>2005-05-01 16:02:00Z</pubDate><guid>http://leejd.cndev.org/archive/2005/05/01/12083.aspx</guid><wfw:comment>http://leejd.cndev.org/comments/12083.aspx</wfw:comment><comments>http://leejd.cndev.org/archive/2005/05/01/12083.aspx#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://leejd.cndev.org/comments/commentRss/12083.aspx</wfw:commentRss><trackback:ping>http://leejd.cndev.org/services/trackbacks/12083.aspx</trackback:ping><description>&lt;P&gt;以前一直钟情于mySQL，主要的原因就是99年的时候，我是用PHP做项目，使用的数据库一直是mySQL的，也是我接触到的第一个数据库，不过后来由于一直在搞BCB项目，所以接触多了SQL Server和ACCESS，对别的数据库就了解少了。不过这两年用的数据库又是informix，不过这些数据库基本上就是用于开发的，没有真正的使用维护经历。不过从易用性来说，access是最好的，informix是最差劲的（我们一直在用borland的SQL explorer操作informix，dbaccess使用不方便）。&lt;/P&gt;
&lt;P&gt;由于BCB对mysql的支持没有想象中的好，而且针对客户端内嵌也不是很舒服，经过PP的推荐，最后还是决定使用FB作为客户端数据库的基础。不过这两天找了很多FB的资料，感觉FB操作性也还是不好，GUI的管理器好像只有EMS出了一个，使用起来还非常的困难，可能跟我下载的是lite版本有关系吧，自己带的isql，始终连不到我指定的数据库上面。不过好像在BCB里面链接FB倒是很轻松的，不过我原先使用的是ACCESS数据库资料，看来得先导过来。由于数据资料还是不少的，EMS给的那个import软件，使用版本只有20条限制，而且我使用那个进行链接FB，老是提示字符集错误。没有成功。实在不行只能通过文本进行转换了。&lt;/P&gt;
&lt;P&gt;暂时先使用FB试试吧，至少客户端在发布和使用的时候，不用以前那么困难了。&lt;/P&gt;&lt;img src ="http://leejd.cndev.org/aggbug/12083.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>小东</dc:creator><title>数据库的选择</title><link>http://leejd.cndev.org/archive/2005/04/29/11981.aspx</link><pubDate>2005-04-29 23:52:00Z</pubDate><guid>http://leejd.cndev.org/archive/2005/04/29/11981.aspx</guid><wfw:comment>http://leejd.cndev.org/comments/11981.aspx</wfw:comment><comments>http://leejd.cndev.org/archive/2005/04/29/11981.aspx#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://leejd.cndev.org/comments/commentRss/11981.aspx</wfw:commentRss><trackback:ping>http://leejd.cndev.org/services/trackbacks/11981.aspx</trackback:ping><description>&lt;P&gt;开始的时候，准备在自己的客户端系统中完全放弃数据库，改用内存和XML实现，这样操作起来简单，可移植性也高。但是到目前，发现一个问题，就是数据库编辑后保存没有想想中的简单。虽然可以做到，但是代码量却是直线上升。看来不引入数据库是不行了。&lt;/P&gt;
&lt;P&gt;开始的时候考虑使用access，不过根据以前的经验，这个玩意太不可靠了，对开发人员要求很高，数据库操作稍微不小心，就会给你报错。想想还是放弃吧，以后给工程人员维护，估计数据库会。考虑使用客户端可以嵌入的数据库系统，这样在客户端可以一次安装。所以MSDE之类的已经不在考虑之列了。最后在mysql，sqlite，firebird之间选择（发现一个开源数据库比较的网页：&lt;A href="http://www.csdn.net/news/newstopic/4/4986.shtml"&gt;http://www.csdn.net/news/newstopic/4/4986.shtml&lt;/A&gt;），由于客户端使用了BCB工具进行开发，而且前段时间好像也有人提到Python链接FB的问题，估计这两个支持是没有问题的了。这样可以使用BCB的快速的GUI开发功能，也可使用Python的脚本功能。&lt;/P&gt;
&lt;P&gt;不过目前使用FB遇到的一个问题是，没有一个GUI界面的可以操作FB数据库的工具，可能是我没有找到。暂时还不了解Python对FB支持的程度，还得找找资料，慢慢来啊！找到了一个FB工具的网站：&lt;A href="http://www.sqlmanager.net/products/ibfb"&gt;http://www.sqlmanager.net/products/ibfb&lt;/A&gt;&lt;/P&gt;&lt;img src ="http://leejd.cndev.org/aggbug/11981.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>小东</dc:creator><title>New Features Planned for MySQL 5.0</title><link>http://leejd.cndev.org/archive/2005/01/14/5606.aspx</link><pubDate>2005-01-14 21:54:00Z</pubDate><guid>http://leejd.cndev.org/archive/2005/01/14/5606.aspx</guid><wfw:comment>http://leejd.cndev.org/comments/5606.aspx</wfw:comment><comments>http://leejd.cndev.org/archive/2005/01/14/5606.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://leejd.cndev.org/comments/commentRss/5606.aspx</wfw:commentRss><trackback:ping>http://leejd.cndev.org/services/trackbacks/5606.aspx</trackback:ping><description>&lt;P&gt;Mysql是一款我比较喜欢的数据库，毕竟我的数据库是从mysql开始入门的，要是没有mysql，估计我的数据库得很晚才能接触到。不过以前的mysql主要用于简单的网页开发，别的地方用到的很少，目前mysql已经应用于企业应用了（SAP），看来mysql也是不甘寂寞，来企业级的市场分一杯羹啊。不过mysql目前对于我的优势就是在于免费的（windows下面的授权不知道取消了没有），一些小型应用已经可以轻松的应付了。mysql5.0 alpha已经发布了，众所期待的存储过程也列入了，看来mysql已经慢慢的向功能型发展了。&lt;/P&gt;
&lt;P&gt;The following features are planned for inclusion into MySQL 5.0. Some of the features such as stored procedures are complete and are included in MySQL 5.0 alpha, which is available now. Others such as cursors are only partially available. Expect these and other features to mature and be fully supported in upcoming releases. &lt;/P&gt;
&lt;P&gt;Note that because we have many developers that are working on different projects, there will also be many additional features. There is also a small chance that some of these features will be added to MySQL 4.1. For a list what is already done in MySQL 4.1, see section &lt;A href="http://dev.mysql.com/doc/mysql/en/Nutshell_4.1_features.html"&gt;1.3.2.1 Features Available in MySQL 4.1&lt;/A&gt;. &lt;/P&gt;
&lt;P&gt;For those wishing to take a look at the bleeding edge of MySQL development, we make our BitKeeper repository for MySQL version 5.0 publicly available. See section &lt;A href="http://dev.mysql.com/doc/mysql/en/Installing_source_tree.html"&gt;2.8.3 Installing from the Development Source Tree&lt;/A&gt;. As of December 2003, binary builds of version 5.0 are also available. &lt;/P&gt;
&lt;DL compact&gt;
&lt;DT&gt;&lt;STRONG&gt;Views&lt;/STRONG&gt; 
&lt;DD&gt;
&lt;UL&gt;
&lt;LI&gt;Views, implemented in stepwise fashion up to full functionality. See section &lt;A href="http://dev.mysql.com/doc/mysql/en/ANSI_diff_Views.html"&gt;1.5.5.6 Views&lt;/A&gt;. See section &lt;A href="http://dev.mysql.com/doc/mysql/en/CREATE_VIEW.html"&gt;13.2.7 &lt;CODE&gt;CREATE VIEW&lt;/CODE&gt; Syntax&lt;/A&gt;. &lt;/LI&gt;&lt;/UL&gt;
&lt;DT&gt;&lt;STRONG&gt;Stored Procedures &lt;/STRONG&gt;
&lt;DD&gt;
&lt;UL&gt;
&lt;LI&gt;Stored procedures currently are implemented, based on the SQL:2003 standard. See section &lt;A href="http://dev.mysql.com/doc/mysql/en/Stored_Procedures.html"&gt;19 Stored Procedures and Functions&lt;/A&gt;. &lt;/LI&gt;&lt;/UL&gt;
&lt;DT&gt;&lt;STRONG&gt;New functionality &lt;/STRONG&gt;
&lt;DD&gt;
&lt;UL&gt;
&lt;LI&gt;Elementary cursor support. See section &lt;A href="http://dev.mysql.com/doc/mysql/en/Cursors.html"&gt;19.1.8 Cursors&lt;/A&gt;. 
&lt;LI&gt;The ability to specify explicitly for &lt;CODE&gt;MyISAM&lt;/CODE&gt; tables that an index should be created as an &lt;CODE&gt;RTREE&lt;/CODE&gt; index. (In MySQL 4.1, &lt;CODE&gt;RTREE&lt;/CODE&gt; indexes are used internally for geometrical data that use GIS data types, but cannot be created on request.) 
&lt;LI&gt;Dynamic length rows for &lt;CODE&gt;MEMORY&lt;/CODE&gt; tables. &lt;/LI&gt;&lt;/UL&gt;
&lt;DT&gt;&lt;STRONG&gt;Standards compliance, portability and migration &lt;/STRONG&gt;
&lt;DD&gt;
&lt;UL&gt;
&lt;LI&gt;Support for Data Dictionary / &lt;CODE&gt;INFORMATION_SCHEMA&lt;/CODE&gt;. 
&lt;LI&gt;Add true &lt;CODE&gt;VARCHAR&lt;/CODE&gt; support (column lengths longer than 255, and no stripping of trailing whitespace). There is already support for this in the &lt;CODE&gt;MyISAM&lt;/CODE&gt; storage engine, but it is not yet available at the user level. &lt;/LI&gt;&lt;/UL&gt;
&lt;DT&gt;&lt;STRONG&gt;Speed enhancements &lt;/STRONG&gt;
&lt;DD&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;CODE&gt;SHOW COLUMNS FROM &lt;VAR&gt;tbl_name&lt;/VAR&gt;&lt;/CODE&gt; (used by the &lt;CODE&gt;mysql&lt;/CODE&gt; client to allow expansions of column names) should not open the table, only the definition file. This will require less memory and be much faster. 
&lt;LI&gt;Allow &lt;CODE&gt;DELETE&lt;/CODE&gt; on &lt;CODE&gt;MyISAM&lt;/CODE&gt; tables to use the record cache. To do this, we need to update the threads record cache when we update the &lt;TT&gt;`.MYD'&lt;/TT&gt; file. 
&lt;LI&gt;Better support for &lt;CODE&gt;MEMORY&lt;/CODE&gt; tables: 
&lt;UL&gt;
&lt;LI&gt;Dynamic length rows. 
&lt;LI&gt;Faster row handling (less copying). &lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;DT&gt;&lt;STRONG&gt;Usability enhancements &lt;/STRONG&gt;
&lt;DD&gt;
&lt;UL&gt;
&lt;LI&gt;Resolving the issue of &lt;CODE&gt;RENAME TABLE&lt;/CODE&gt; on a table used in an active &lt;CODE&gt;MERGE&lt;/CODE&gt; table possibly corrupting the table. &lt;/LI&gt;&lt;/UL&gt;&lt;/DD&gt;&lt;/DL&gt;&lt;img src ="http://leejd.cndev.org/aggbug/5606.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>小东</dc:creator><title>Mysql数据库特点</title><link>http://leejd.cndev.org/archive/2004/12/25/5146.aspx</link><pubDate>2004-12-25 23:14:00Z</pubDate><guid>http://leejd.cndev.org/archive/2004/12/25/5146.aspx</guid><wfw:comment>http://leejd.cndev.org/comments/5146.aspx</wfw:comment><comments>http://leejd.cndev.org/archive/2004/12/25/5146.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://leejd.cndev.org/comments/commentRss/5146.aspx</wfw:commentRss><trackback:ping>http://leejd.cndev.org/services/trackbacks/5146.aspx</trackback:ping><description>1.? 使用核心线程的完全多线程。这意味着它能很容易地利用多CPU（如果有）。 &lt;BR&gt;2.? 可运行在不同的平台上。&lt;BR&gt;3.? 多种列类型：1、 2、 3、4、和 8 字节长度的有符号/无符号整数(INT)、FLOAT、DOUBLE、CHAR、VARCHAR、TEXT、BLOB、DATE、TIME、DATETIME、 TIMESTAMP、YEAR、SET和ENUM类型。 &lt;BR&gt;4.? 利用一个优化的一遍扫描多重联结（one-sweep multi-join）非常快速地进行联结(join)。 &lt;BR&gt;5.? 在查询的SELECT和WHERE部分支持全部运算符和函数。&lt;BR&gt;6.? 通过一个高度优化的类库实现SQL函数库并且像他们能达到的一样快速，通常在查询初始化后不应该有任何内存分配。 &lt;BR&gt;7.? 全面支持SQL的GROUP BY和ORDER BY子句，支持聚合函数( COUNT()、COUNT(DISTINCT)、AVG()、STD()、SUM()、MAX()和MIN() )。 &lt;BR&gt;8.? 支持ANSI SQL的LEFT OUTER JOIN和ODBC语法。 &lt;BR&gt;9.? 你可以在同一查询中混用来自不同数据库的表。&lt;BR&gt;10. 一个非常灵活且安全的权限和口令系统，并且它允许基于主机的认证。口令是安全的，因为当与一个服务器连接时，所有的口令传送被加密。 &lt;BR&gt;11. ODBC for Windiws 95。 &lt;BR&gt;12. 具备索引压缩的快速B树磁盘表。 &lt;BR&gt;13. 每个表允许有16个索引。每个索引可以由1～16个列或列的一部分组成。最大索引长度是 256 个字节(在编译MySQL时，它可以改变)。一个索引可以使用一个CHAR或VARCHAR字段的前缀。 &lt;BR&gt;14. 定长和变长记录。 &lt;BR&gt;15. 用作临时表的内存散列表。 &lt;BR&gt;16. 大数据库处理。我们正在对某些包含 50,000,000 个记录的数据库使用MySQL。 &lt;BR&gt;17. 所有列都有缺省值，你可以用INSERT插入一个表列的子集，那些没用明确给定值的列设置为他们的缺省值。 &lt;BR&gt;18. 一个非常快速的基于线程的内存分配系统。 &lt;BR&gt;19. 没有内存漏洞。用一个商用内存漏洞监测程序测试过(purify)。 &lt;BR&gt;20. 包括myisamchk，一个检查、优化和修复数据库表的快速实用程序。 &lt;BR&gt;21. 全面支持ISO-8859-1? Latin1 字符集。 &lt;BR&gt;22. 所有数据以 ISO-8859-1? Latin1 格式保存。所有正常的字符串比较是忽略大小写的。 &lt;BR&gt;23. DELETE、INSERT、REPLACE和UPDATE 返回有多少行被改变(受影响)。 &lt;BR&gt;24. 函数名不会与表或列名冲突。例如ABS是一个有效的列名字。对函数调用的唯一限制是函数名与随后的"("不能有空格。&lt;BR&gt;25. 所有MySQL程序可以用选项--help或-?获得联机帮助。 &lt;BR&gt;26. 服务器能为客户提供多种语言的出错消息。 &lt;BR&gt;27. 客户端使用TCP/IP 连接或Unix套接字（socket）或NT下的命名管道连接MySQL。 &lt;BR&gt;28. MySQL特有的SHOW命令可用来检索数据库、表和索引的信息，EXPLAIN命令可用来确定优化器如何解决一个查询。&lt;BR&gt;&lt;img src ="http://leejd.cndev.org/aggbug/5146.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>小东</dc:creator><title>mysql的几个常用的命令</title><link>http://leejd.cndev.org/archive/2004/12/25/5138.aspx</link><pubDate>2004-12-25 14:33:00Z</pubDate><guid>http://leejd.cndev.org/archive/2004/12/25/5138.aspx</guid><wfw:comment>http://leejd.cndev.org/comments/5138.aspx</wfw:comment><comments>http://leejd.cndev.org/archive/2004/12/25/5138.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://leejd.cndev.org/comments/commentRss/5138.aspx</wfw:commentRss><trackback:ping>http://leejd.cndev.org/services/trackbacks/5138.aspx</trackback:ping><description>&lt;SPAN id=ArticleContent1_ArticleContent1_lblContent&gt;&lt;SPAN id=ArticleContent1_ArticleContent1_lblContent&gt;1.Window2000下的安装.&lt;BR&gt;???A.安装目录最好(应该是一定要)是C:\， 以前有几次没看清楚说明，安装在D盘,结果启动不了。&lt;BR&gt;?? B.安装成为启动服务:mysqld-nt --install&lt;BR&gt;?????? 卸载服务:mysqld-nt --uninstall&lt;BR&gt;?????? 移除服务:mysqld-nt --remove&lt;BR&gt;???????启动服务:net start mysql&lt;BR&gt;?????? 停止服务:net stop mysql&lt;BR&gt;&lt;BR&gt;2.连接以及用户的管理&lt;BR&gt;?? A.连接MySql数据库: mysql -h &lt;VAR&gt;host&lt;/VAR&gt; -u &lt;VAR&gt;user&lt;/VAR&gt; -p&lt;BR&gt;????????比如用root登陆: mysql -h localhost -uroot -p??????&lt;BR&gt;???B.断开连接:quit或exit&lt;BR&gt;?? C.新建用户(用户名为tom,密码为123):&lt;BR&gt;??????? 用root连接到数据库,然后用以下的命令:&lt;BR&gt;????????grant all privileges on *.* to &lt;A href="mailto:'tom'@'localhost'"&gt;'tom'@'localhost'&lt;/A&gt; identified by '123' with grant option;&lt;BR&gt;????????或grant all privileges on *.* to &lt;A href="mailto:'tom'@'%'"&gt;'tom'@'%'&lt;/A&gt; identified by '123' with grant option;&lt;BR&gt;????????或insert into user values('localhost','tom',password('123'),'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');&lt;/SPAN&gt;&lt;/SPAN&gt; &lt;BR&gt;&lt;img src ="http://leejd.cndev.org/aggbug/5138.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>小东</dc:creator><title>Python connect to mysql</title><link>http://leejd.cndev.org/archive/2004/12/17/5003.aspx</link><pubDate>2004-12-17 23:35:00Z</pubDate><guid>http://leejd.cndev.org/archive/2004/12/17/5003.aspx</guid><wfw:comment>http://leejd.cndev.org/comments/5003.aspx</wfw:comment><comments>http://leejd.cndev.org/archive/2004/12/17/5003.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://leejd.cndev.org/comments/commentRss/5003.aspx</wfw:commentRss><trackback:ping>http://leejd.cndev.org/services/trackbacks/5003.aspx</trackback:ping><description>&lt;P&gt;这个网址的Python对Mysql的操作是比较全的：&lt;A href="http://www.kitebird.com/articles/pydbapi.html"&gt;http://www.kitebird.com/articles/pydbapi.html&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;---------------------------一个完整的例子------------------------------&lt;BR&gt;&lt;FONT color=#a9a9a9&gt;?? #! /usr/bin/python&lt;BR&gt;&lt;/FONT&gt;?? &lt;FONT color=#a9a9a9&gt;# animal.py - create animal table and&lt;BR&gt;&lt;/FONT&gt;?? &lt;FONT color=#a9a9a9&gt;# retrieve information from it&lt;BR&gt;&lt;/FONT&gt;?? &lt;STRONG&gt;&lt;FONT color=#800080&gt;import&lt;/FONT&gt;&lt;/STRONG&gt; &lt;STRONG&gt;sys&lt;/STRONG&gt;&lt;BR&gt;?? &lt;STRONG&gt;&lt;FONT color=#800080&gt;import&lt;/FONT&gt;&lt;/STRONG&gt; MySQLdb&lt;BR&gt;??&lt;FONT color=#d3d3d3&gt; &lt;/FONT&gt;&lt;FONT color=#a9a9a9&gt;# connect to the MySQL server&lt;BR&gt;&lt;/FONT&gt;?? &lt;STRONG&gt;&lt;FONT color=#800080&gt;try&lt;/FONT&gt;&lt;/STRONG&gt;:&lt;BR&gt;?????? conn = MySQLdb.connect (host = &lt;FONT color=#0000ff&gt;"localhost"&lt;/FONT&gt;, user = &lt;FONT color=#0000ff&gt;"testuser"&lt;/FONT&gt;, passwd = &lt;FONT color=#0000ff&gt;"testpass"&lt;/FONT&gt;, db = &lt;FONT color=#0000ff&gt;"test"&lt;/FONT&gt;)&lt;BR&gt;?? &lt;STRONG&gt;&lt;FONT color=#800080&gt;except&lt;/FONT&gt;&lt;/STRONG&gt; MySQLdb.Error, e:&lt;BR&gt;?????? &lt;STRONG&gt;&lt;FONT color=#800080&gt;print&lt;/FONT&gt;&lt;/STRONG&gt; &lt;FONT color=#0000ff&gt;"Error %d: %s"&lt;/FONT&gt; % (e.args[0], e.args[1])&lt;BR&gt;?????? &lt;STRONG&gt;sys&lt;/STRONG&gt;.exit (1)&lt;BR&gt;?? &lt;FONT color=#a9a9a9&gt;# create the animal table and populate it&lt;BR&gt;&lt;/FONT&gt;?? &lt;STRONG&gt;&lt;FONT color=#800080&gt;try&lt;/FONT&gt;&lt;/STRONG&gt;:&lt;BR&gt;?????? cursor = conn.cursor ()&lt;BR&gt;?????? cursor.execute (&lt;FONT color=#0000ff&gt;"DROP TABLE IF EXISTS animal"&lt;/FONT&gt;)&lt;BR&gt;?????? cursor.execute (&lt;FONT color=#0000ff&gt;"""CREATE TABLE animal (?name CHAR(40), category CHAR(40))"""&lt;/FONT&gt;)&lt;BR&gt;?????? cursor.execute (&lt;FONT color=#0000ff&gt;"""INSERT INTO animal (name, category)&lt;BR&gt;?????????????? VALUES ('snake', 'reptile'), ('frog', 'amphibian'),?('tuna', 'fish'),? ('racoon', 'mammal')"""&lt;/FONT&gt;)&lt;BR&gt;?????? &lt;FONT color=#800080&gt;print&lt;/FONT&gt; &lt;FONT color=#0000ff&gt;"%d rows were inserted"&lt;/FONT&gt; % cursor.rowcount&lt;BR&gt;?? &lt;FONT color=#a9a9a9&gt;# perform a fetch loop using fetchone()&lt;BR&gt;&lt;/FONT&gt;?????? cursor.execute (&lt;FONT color=#0000ff&gt;"SELECT name, category FROM animal"&lt;/FONT&gt;)&lt;BR&gt;?????? &lt;STRONG&gt;&lt;FONT color=#800080&gt;while&lt;/FONT&gt;&lt;/STRONG&gt; (1):&lt;BR&gt;?????????? row = cursor.fetchone ()&lt;BR&gt;?????????? &lt;STRONG&gt;&lt;FONT color=#800080&gt;if&lt;/FONT&gt;&lt;/STRONG&gt; row == &lt;STRONG&gt;None&lt;/STRONG&gt;:&lt;BR&gt;?????????????? &lt;STRONG&gt;&lt;FONT color=#800080&gt;break&lt;/FONT&gt;&lt;/STRONG&gt;&lt;BR&gt;?????????? &lt;STRONG&gt;&lt;FONT color=#800080&gt;print&lt;/FONT&gt;&lt;/STRONG&gt; &lt;FONT color=#0000ff&gt;"%s, %s"&lt;/FONT&gt; % (row[0], row[1])&lt;BR&gt;?????? &lt;STRONG&gt;&lt;FONT color=#800080&gt;print&lt;/FONT&gt;&lt;/STRONG&gt; &lt;FONT color=#0000ff&gt;"%d rows were returned"&lt;/FONT&gt; % cursor.rowcount&lt;BR&gt;?? &lt;FONT color=#a9a9a9&gt;# perform a fetch loop using fetchall()&lt;BR&gt;&lt;/FONT&gt;?????? cursor.execute (&lt;FONT color=#0000ff&gt;"SELECT name, category FROM animal"&lt;/FONT&gt;)&lt;BR&gt;?????? rows = cursor.fetchall ()&lt;BR&gt;?????? &lt;STRONG&gt;&lt;FONT color=#800080&gt;for&lt;/FONT&gt;&lt;/STRONG&gt; row &lt;STRONG&gt;&lt;FONT color=#800080&gt;in&lt;/FONT&gt;&lt;/STRONG&gt; rows:&lt;BR&gt;?????????? &lt;STRONG&gt;&lt;FONT color=#800080&gt;print&lt;/FONT&gt;&lt;/STRONG&gt; &lt;FONT color=#0000ff&gt;"%s, %s"&lt;/FONT&gt; % (row[0], row[1])&lt;BR&gt;?????? &lt;STRONG&gt;&lt;FONT color=#800080&gt;print&lt;/FONT&gt;&lt;/STRONG&gt; &lt;FONT color=#0000ff&gt;"%d rows were returned"&lt;/FONT&gt; % cursor.rowcount&lt;BR&gt;??&lt;FONT color=#a9a9a9&gt; # issue a query that includes data values literally in&lt;BR&gt;?? # the query string, then do same thing using placeholders&lt;BR&gt;&lt;/FONT&gt;?????? cursor.execute (&lt;FONT color=#0000ff&gt;"""UPDATE animal SET name = 'turtle' WHERE name = 'snake'"""&lt;/FONT&gt;)&lt;BR&gt;?????? &lt;STRONG&gt;&lt;FONT color=#800080&gt;print&lt;/FONT&gt;&lt;/STRONG&gt; &lt;FONT color=#0000ff&gt;"%d rows were updated"&lt;/FONT&gt; % cursor.rowcount&lt;BR&gt;&lt;BR&gt;?????? cur_name = &lt;FONT color=#0000ff&gt;"snake"&lt;/FONT&gt;&lt;BR&gt;?????? new_name = &lt;FONT color=#0000ff&gt;"turtle"&lt;BR&gt;&lt;/FONT&gt;?????? cursor.execute (&lt;FONT color=#0000ff&gt;"""UPDATE animal SET name = %s WHERE name = %s"""&lt;/FONT&gt;, (new_name, cur_name))&lt;BR&gt;?????? &lt;STRONG&gt;&lt;FONT color=#800080&gt;print&lt;/FONT&gt;&lt;/STRONG&gt; &lt;FONT color=#0000ff&gt;"%d rows were updated"&lt;/FONT&gt; % cursor.rowcount&lt;BR&gt;?? &lt;FONT color=#a9a9a9&gt;# create a dictionary cursor so that column values&lt;BR&gt;?? # can be accessed by name rather than by position&lt;BR&gt;&lt;/FONT&gt;?????? cursor.close ()&lt;BR&gt;?????? cursor = conn.cursor (MySQLdb.cursors.DictCursor)&lt;BR&gt;?????? cursor.execute (&lt;FONT color=#0000ff&gt;"SELECT name, category FROM animal"&lt;/FONT&gt;)&lt;BR&gt;?????? result_set = cursor.fetchall ()&lt;BR&gt;?????? &lt;STRONG&gt;&lt;FONT color=#800080&gt;for&lt;/FONT&gt;&lt;/STRONG&gt; row &lt;STRONG&gt;&lt;FONT color=#800080&gt;in&lt;/FONT&gt;&lt;/STRONG&gt; result_set:&lt;BR&gt;?????????? &lt;STRONG&gt;&lt;FONT color=#800080&gt;print&lt;/FONT&gt;&lt;/STRONG&gt; &lt;FONT color=#0000ff&gt;"%s, %s"&lt;/FONT&gt; % (row[&lt;FONT color=#0000ff&gt;"name"&lt;/FONT&gt;], row[&lt;FONT color=#0000ff&gt;"category"&lt;/FONT&gt;])&lt;BR&gt;?????? &lt;STRONG&gt;&lt;FONT color=#800080&gt;print&lt;/FONT&gt;&lt;/STRONG&gt; &lt;FONT color=#0000ff&gt;"%d rows were returned"&lt;/FONT&gt; % cursor.rowcount&lt;BR&gt;&lt;BR&gt;?????? cursor.close ()&lt;BR&gt;&lt;BR&gt;?? &lt;STRONG&gt;&lt;FONT color=#800080&gt;except&lt;/FONT&gt;&lt;/STRONG&gt; MySQLdb.Error, e:&lt;BR&gt;?????? &lt;STRONG&gt;&lt;FONT color=#800080&gt;print&lt;/FONT&gt;&lt;/STRONG&gt; &lt;FONT color=#0000ff&gt;"Error %d: %s"&lt;/FONT&gt; % (e.args[0], e.args[1])&lt;BR&gt;?????? &lt;STRONG&gt;sys&lt;/STRONG&gt;.exit (1)&lt;BR&gt;&lt;BR&gt;?? conn.close ()&lt;BR&gt;?? &lt;STRONG&gt;sys&lt;/STRONG&gt;.exit (0)&lt;BR&gt;&lt;/P&gt;&lt;img src ="http://leejd.cndev.org/aggbug/5003.aspx" width = "1" height = "1" /&gt;</description></item></channel></rss>