Python的MySQLdb模块是Python连接MySQL的一个模块,默认查询结果返回是tuple类型,只能通过0,1..等索引下标访问数据默认连接数据库:
成都创新互联专注于南召网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供南召营销型网站建设,南召网站制作、南召网页设计、南召网站官网定制、微信平台小程序开发服务,打造南召网络公司原创品牌,更为您提供南召网站排名全网营销落地服务。
复制代码 代码如下:
MySQLdb.connect(
host=host,
user=user,
passwd=passwd,
db=db,
port=port,
charset='utf8'
)
查询数据:
复制代码 代码如下:
cur = conn.cursor()
cur.execute('select b_id from blog limit 1')data = cur.fetchall()
cur.close()
conn.close()
打印:
复制代码 代码如下:
for row in data:
print type(row)
print row
执行结果:
复制代码 代码如下:
type 'tuple'
(1L,)
为tuple类型。
我们可以这么干使得数据查询结果返回字典类型,即 字段=数据导入模块
复制代码 代码如下:
import MySQLdb.cursors
在连接函数里加上这个参数 cursorclass = MySQLdb.cursors.DictCursor 如:
复制代码 代码如下:
MySQLdb.connect(
host=host,
user=user,
passwd=passwd,
db=db,
port=port,
charset='utf8',
cursorclass = MySQLdb.cursors.DictCursor
)
再重新运行脚本,看看执行结果:
复制代码 代码如下:
type 'dict'
{'b_id': 1L}
搞定!
注意,在连接的时候port如果要指定则值必须是整型,否则会出错!
Mysql存储过程中没有打印语句,可以用select 来代替,比如:
select @var;
select【si'lekt】,中文意思为选择、挑选。这是一条计算机SQL数据库中常用的函数,select语句是最常用的数据查询语句。
如果给出了 LIMIT 或者 OFFSET 子句,那么 SELECT 语句只返回结果行的一个子集。
如果声明了 FOR UPDATE 或者 FOR SHARE 子句, SELECT 语句对并发的更新锁住选定的行。
你必须有 SELECT 权限用来从表中读取数值。 使用 FOR UPDATE FOR SHARE 还要求 UPDATE 权限。
用循环保存
int index =0;
while(rs.next){
Object obj = rs.get(index ++);
}
1、只能用 SELECT.就像下面这个 Hello World 一样,mysql DELIMITER //,mysql CREATE PROCEDURE HelloWorld, BEGIN,SELECT 'Hello World',END/,Query OK, 0 rows affected (0.00 sec),mysql call HelloWorld,Hello World ,row in set 0.00 sec,Query OK, 0 rows affected只有SELECT了。
2、mysql没有sqlserver里面控制台的概念,因为mysql全部都是控制台
开启mysql的常规查询日志
所谓的常规查询日志,就是客户端操作的所有日志,包括select delete insert update等等所有的sql语句
开启的办法很简单:
1. 在etc/mysql/my.cnf中,加入
【注:如果 /var/log/mysql 这个目录对于mysql用户可写,那么重启mysql的时候会自动生成access.log这个文件。如果该目录对于mysql不可写,那么手工创建这个目录,并加入mysql用户的写权限。】
方法一:
直接执行命令:
mysql select count(1) from table into outfile '/tmp/test.xls';
Query OK, 31 rows affected (0.00 sec)
在目录/tmp/下会产生文件test.xls
遇到的问题:
mysql select count(1) from table into outfile '/data/test.xls';
报错:
ERROR 1 (HY000): Can't create/write to file '/data/test.xls' (Errcode: 13)
可能原因:mysql没有向/data/下写的权限
方法二:
查询都自动写入文件:
mysql pager cat /tmp/test.txt ;
PAGER set to 'cat /tmp/test.txt'
之后的所有查询结果都自动写入/tmp/test.txt',并前后覆盖
mysql select * from table ;
30 rows in set (0.59 sec)
在框口不再显示查询结果