python 中使用sqlite3和mysql数据库
2014-04-10 18:12
246 查看
sqlite是小型嵌入式数据库,支持大部分sql语句
sqlite3支持的时间数据类型:
date 包含了年份、月份、日期
time 包含了小时、分钟、秒
timestamp 包含了年、月、日、时、分、秒、毫秒
时间函数:
datetime() : 产生日期和时间
date(): 产生日期
time():产生时间
strftime():对以上3个函数产生的日期和时间进行格式化
e.g: date('2011-9-9','+1 day','+1 year'); 结果是 2010-09-10
数据库的连接对象常用函数:
commit()--事务提交
rollback()--事务回滚
close()--关闭一个数据库连接
cursor()--创建一个游标
游标对象常用函数:
execute()--执行sql语句
executemany()--执行多条sql语句
close()--关闭游标
fetchone()--从结果中取一条记录
fetchmany()--从结果中取多条记录
fetchall()--从结果中取出多条记录
scroll()--游标滚动
import MySQLdb
import sqlite3
mysqlConn = MySQLdb.connect(host='',user='',passwd='',db='', port= , charset='')
sqliteConn = sqlite3.connect('xx.db') ,没有就创建数据库,
在sqlite每一个数据库中,都有一张表sqlite_master,它定义数据库的模式,对于表来说,type 字段永远是 ‘table’,name 字段永远是表的名字。所以,要获得数据库中所有表的列表,可以:
cur.execute('select name from sqlite_master where type="table"')
第一次创建表:
tablename = cur.fetchone()
if tablename == None:
cur.execute('create table admin(DATE timestamp PRIMARY KEY,username text ,age integer')
sqliteConn.commit()
cur.close()
插入数据: insert into 表名(字段列表) values(值列表) e.g: insert into admin values('2014-03-24',‘song’,25);
查询数据: select 字段名 from 表名 where 条件语句 e.g: select DATE from admin order by DATE desc;
删除数据: delete from 表名 where 条件子句 e.g: cur.execute('delete from admin where DATE = "%s"' %date) 注意"%s",要加引号
修改数据: update 表名 set 字段名=值 where 条件子句 e.g:update admin set username=’zhang’,age=24 where username=’song’ and age=25;
in() 查询:cur.execute("select bug_id,assigned_to from bugs where product_id =%s AND assigned_to in (%s)" %(productid, assigned_toStr))
select max(datatime) from where ;
select min(datatime) from where ;
coalesce()解释:返回参数中的第一个非空表达式(从左向右);
不等于 <>
模糊查询like
SELECT 字段 FROM 表 WHERE 某字段 LIKE 条件
(1)%:表示任意0个或多个字符
(2)_:表示任意单个字符,匹配单个任意字符,常用来限制表达式的字符长度语句。
(3)[ ]:表示括号内所列字符中的一个(类似正则表达式)
select * from admin where username like ‘[张李王]三’; 表示搜索的是“张三”,“李三”或“王三”
(4)[^]表示不在括号所列之类的单个字符。
(5)查询内容包含通配符时,用“[ ]”括起来。
cur = mysqlConn.cursor() 定义了一个游标
遍历cur的2中方法:
while True:
res = cur.fetchone()
if res:
print res
else:
break
res = cur.fetchall()
for i in range(len(res)):
pirnt i
sqlite3支持的时间数据类型:
date 包含了年份、月份、日期
time 包含了小时、分钟、秒
timestamp 包含了年、月、日、时、分、秒、毫秒
时间函数:
datetime() : 产生日期和时间
date(): 产生日期
time():产生时间
strftime():对以上3个函数产生的日期和时间进行格式化
e.g: date('2011-9-9','+1 day','+1 year'); 结果是 2010-09-10
数据库的连接对象常用函数:
commit()--事务提交
rollback()--事务回滚
close()--关闭一个数据库连接
cursor()--创建一个游标
游标对象常用函数:
execute()--执行sql语句
executemany()--执行多条sql语句
close()--关闭游标
fetchone()--从结果中取一条记录
fetchmany()--从结果中取多条记录
fetchall()--从结果中取出多条记录
scroll()--游标滚动
import MySQLdb
import sqlite3
mysqlConn = MySQLdb.connect(host='',user='',passwd='',db='', port= , charset='')
sqliteConn = sqlite3.connect('xx.db') ,没有就创建数据库,
在sqlite每一个数据库中,都有一张表sqlite_master,它定义数据库的模式,对于表来说,type 字段永远是 ‘table’,name 字段永远是表的名字。所以,要获得数据库中所有表的列表,可以:
cur.execute('select name from sqlite_master where type="table"')
第一次创建表:
tablename = cur.fetchone()
if tablename == None:
cur.execute('create table admin(DATE timestamp PRIMARY KEY,username text ,age integer')
sqliteConn.commit()
cur.close()
插入数据: insert into 表名(字段列表) values(值列表) e.g: insert into admin values('2014-03-24',‘song’,25);
查询数据: select 字段名 from 表名 where 条件语句 e.g: select DATE from admin order by DATE desc;
删除数据: delete from 表名 where 条件子句 e.g: cur.execute('delete from admin where DATE = "%s"' %date) 注意"%s",要加引号
修改数据: update 表名 set 字段名=值 where 条件子句 e.g:update admin set username=’zhang’,age=24 where username=’song’ and age=25;
in() 查询:cur.execute("select bug_id,assigned_to from bugs where product_id =%s AND assigned_to in (%s)" %(productid, assigned_toStr))
select max(datatime) from where ;
select min(datatime) from where ;
coalesce()解释:返回参数中的第一个非空表达式(从左向右);
不等于 <>
模糊查询like
SELECT 字段 FROM 表 WHERE 某字段 LIKE 条件
(1)%:表示任意0个或多个字符
(2)_:表示任意单个字符,匹配单个任意字符,常用来限制表达式的字符长度语句。
(3)[ ]:表示括号内所列字符中的一个(类似正则表达式)
select * from admin where username like ‘[张李王]三’; 表示搜索的是“张三”,“李三”或“王三”
(4)[^]表示不在括号所列之类的单个字符。
(5)查询内容包含通配符时,用“[ ]”括起来。
cur = mysqlConn.cursor() 定义了一个游标
遍历cur的2中方法:
while True:
res = cur.fetchone()
if res:
print res
else:
break
res = cur.fetchall()
for i in range(len(res)):
pirnt i
相关文章推荐
- Python的Pexpect详解
- Python 中的@修饰符作用
- Python读写excel文件
- python 读取一个目录下的所有目录和文件
- python 正则表达式介绍
- Python操作MySQL
- python中使用xlrd和xlwt进行excel的读写和格式设定
- python练习 双线性插值对图像进行伸缩变换
- Python字符串操作方法详解
- Python - list, tuple, dict, set的区别
- Python 集合类(set)学习
- python 多维数组的排序
- python 批量修改图片的文件名
- Python复习笔记-字典和文件操作
- Python中对list进行排序
- Windows下python环境变量配置
- 学习:python核心编程 第三章
- 一个简单的脚本程序----Python
- Python快速教程(快速上手版)
- Ganglia3.6.0 安装步骤 (含python module)