#实例:用数据库存储日记,实现日记本功能

#流程

#创建数据库

 #coding:utf-8
import sqlite3
connect=sqlite3.connect('test.db')
connect.close()

#效果

  

#用sqlite3模块对数据库进行操作

 #coding:utf-8
import sqlite3
#创建数据库
connect=sqlite3.connect('test.db')
cursor = connect.cursor()
#为了多次执行该段程序所以在开头删除表diary1
cursor.execute("drop table diary1") #创建表
cursor.execute("create table diary1 (id integer primary key autoincrement,title text,content text)")
#插入数据,id自增所以可以写null
cursor.execute("insert into diary1 values (null,'title1','content1')")
#插入数据
cursor.execute("insert into diary1(title,content) values ('title2','content2')") #查询表中所有数据
for row in cursor.execute("select * from diary1"):
print row
print '*******增*******' #删除id为1的数据
cursor.execute("delete from diary1 where id=1")
for row in cursor.execute("select * from diary1"):
print row
print '******删除*******' #修改数据
cursor.execute("update diary1 set title='title0',content='content0' where id =2")
for row in cursor.execute("select * from diary1"):
print row
print '*****改******' #一次性插入多条数据
items=[('title0','content0'),('title1','content1'),('title2','content2')]
cursor.executemany("insert into diary1 (title,content) values(?,?)",items)
for row in cursor.execute("select * from diary1"):
print row
print "******插入多条数据******" #查询数据
print '查询数据'
cursor.execute("select * from diary1 where id=4")
print cursor.fetchall() cursor.execute("select * from diary1 where content='content0'")
print cursor.fetchall() #关闭游标和数据库
cursor.close()
connect.close()

#效果

#注意到在python的sqlite3模块中,数据库中的每个记录都是以一个tuple的形式存储

#表中数据除了主键外其他字段的值都可以重复

#获取当前数据库中的所有表

 #coding:utf-8
import sqlite3
connect = sqlite3.connect("test.db")
cursor = connect.cursor() #插入记录,参数为表名(str),数据(元组)
def insertData(table,tup):
global cursor
global connect
sql="insert into "+table+"(title,content) values (?,?)"
cursor.execute(sql,tup)
#对数据库操作事务的提交
connect.commit() #删除特定id的记录
def deleteData(name,id):
global cursor
global connect
sql="delete from "+name+" where id="+str(id)
cursor.execute(sql)
connect.commit() #根据id修改数据,参数为表名,id(整型),数据(元组)
def updateData(name,id,tup):
global cursor
global connect
sql="UPDATE "+name+" SET title='"+tup[0]+"',content='"+tup[1]+"' WHERE id="+str(id)
cursor.execute(sql)
connect.commit() #根据id查找数据,参数为表名(str),id
def searchData(name,id):
#为什么这里又不需要global connect
global cursor
sql="select * from "+name+" where id="+str(id)
cursor.execute(sql)
#cursor.fetchall()和cursor.fetchone()区别?
print u"要查找的数据为:",cursor.fetchone() insertData('mydiary',('title0','content0'))
updateData("mydiary",2,('title3','content3'))
#deleteData('mydiary',1)
insertData('mydiary',('title9','content9'))
searchData("mydiary",6)

程序媛计划——python数据库的更多相关文章

  1. 程序媛计划——python socket通信

    定义 socket 是进程间的一种通信方式,可以实现不同主机间的数据传输 #写服务期端程序server.py #实现服务器向客户端连接 #!/usr/bin/env python #coding:ut ...

  2. 程序媛计划——python中级课时1

    class1 异常处理 #python会把标准输入的内容当作字符串处理,即使输入的是数字3也会转化为字符串’3’. n1 = raw_input() n2 = raw_input() print n1 ...

  3. 程序媛计划——python正则表达式

    #定义 正则表达式是对字符串操作的一种逻辑公式,通过它我们能筛选过滤出我们需要的内容,如判断一串数字是否是电话号码. #原理 先把正则表达式的字符串转换成 Pattern 对象,接着用这个对象处理文本 ...

  4. 程序媛计划——python初级课时3~5

    产生1-10中的随机数: for 循环:所有可遍历对象都能用于for循环,如一个字符串. len(list),list中的元素类型可以各不相同:可以直接用下标对list元素赋值来更新列表 对字符串可以 ...

  5. 程序媛计划——python初级课时1~2

    在命令行中运行py文件:python 文件路径/文件名 python变量必须赋值后才能使用,因为py变量只有赋值后才会被创建. py可以同时给多个变量赋值:a,b,c = 10,20,'dfjkdj' ...

  6. 程序媛计划——python爬虫

    #用selenium打开百度首页 #第一次运行代码时应该在safari开发者选项中设置'allow remote automation' from selenium import webdriver ...

  7. 程序媛计划——python初级class5~13

    列表和元组都是可迭代对象(可以用于for in) 列表 [] #添加列表元素: list.append(argu) #修改列表: list[2] = 2017 #删除列表元素 Del list[2] ...

  8. 程序媛计划——SQLite初级

    数据库简介 数据库定义: 指的是以一定方式储存在一起.能为多个用户共享.具有尽可能小的冗余度.与应用程序彼此独立的数据集合.是带有相关数据的表的集合. 数据库是由行和列组成的二维表. 字段: 数据库表 ...

  9. 程序媛计划——mysql外键

    定义 外键:如果一个表的某个字段指向另一个表的主键,就称之为外键.被指向的表,称之为主表,也叫父表,那么另一个表就是从表,也叫子表 #先新建两个表 mysql> create table aut ...

随机推荐

  1. fragment 事务回滚 ---动态创建fragment

    import java.util.Date; import java.util.LinkedList; import com.qianfeng.gp08_day23_fragment5.fragmen ...

  2. cannot convert from 'wchar_t *' to 'char *' 问题

    MFC中使用unicode 会导致cstring之间的转换变的很复杂 经常遇到这样的错误cannot convert from 'wchar_t *' to 'char *' 强制转换成wchar_t ...

  3. mvc view获取url参数

    视图页面直接获取url get传值, 1.@Request.QueryString["look"] 2.@ViewContext.RequestContext.HttpContex ...

  4. Linux 配置文件管理

    一.简介 参考:https://robots.thoughtbot.com/rcm-for-rc-files-in-dotfiles-repos http://dotfiles.github.io/ ...

  5. 利用ks构建ISO中的一些坑

    构建ISO的基本流程 1.获取rpm包源码 2.将源码增量编译成二进制包 3.编写ks的包列表决定ISO制作时需要从什么地方(二进制仓库repo)取哪些二进制包 4.通过createiso命令并指定k ...

  6. DNA甲基化检测服务

    DNA甲基化检测服务 DNA甲基化是最早发现的基因表观修饰方式之一,真核生物中的甲基化仅发生于胞嘧啶,即在DNA甲基化转移酶(DNMTs)的作用下使CpG二核苷酸5'-端的胞嘧啶转变为5'-甲基胞嘧啶 ...

  7. Luogu 1070 道路游戏

    看完题面想了一会发现只会写$n^3$,愣了一会才想出了单调队列优化的做法. 90分算法: 设$f_{i, j, k}$表示第$i$分钟在第$j$座城市已经走了$k$步的最大价值,转移显然,时间复杂度$ ...

  8. C#的一些方法读程序转c++

    1.Array.Copypublic static void Copy( Array sourceArray, int sourceIndex, Array destinationArray, int ...

  9. FTP 搭建

    FTP 搭建 FTP 是 File Transfer Protocol(文件传输协议)的英文简称,它工作在 0SI 模型的第七层,TCP 模型的第四屋上,即应用层. 一.FTP 简介 FTP 会话时包 ...

  10. 记录pytorch的几个问题

    1.Variable里面的creator没有,网上博客上面说有,奇怪??