鱼C论坛

 找回密码
 立即注册
查看: 2430|回复: 3

[技术交流] sqlite3 for python 使用初步

[复制链接]
发表于 2020-2-10 13:37:32 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
e:\>python
Python 3.7.4 (tags/v3.7.4:e09359112e, Jul  8 2019, 20:34:20) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import sqlite3
>>> import sqlite3 as sql      
1、建立连接
>>> conn=sql.connect("test.db")  如果数据库文件存在则打开  没有则新建
>>> print(conn)
<sqlite3.Connection object at 0x0000024904FBD030>
2、建立cursor   
>>> c=conn.cursor()

3、如果是新建数据库  使用sql语句建立一个表   
>>> c.execute('''create table user (id int primary key not null,name text  not null,password  text not null);  ''')
<sqlite3.Cursor object at 0x0000024904DB4F80>
4、提交你的操作
>>> conn.commit()
5、插入记录
>>> c.execute('''insert into user (id,name,password) values(1,"zhangsan","123456"); ''')
<sqlite3.Cursor object at 0x0000024904DB4F80>
>>> c.execute('''insert into user (id,name,password) values(2,"admin","123456"); ''')
<sqlite3.Cursor object at 0x0000024904DB4F80>
>>> c.execute('''insert into user (id,name,password) values(3,"lisi","123456"); ''')
<sqlite3.Cursor object at 0x0000024904DB4F80>
>>> conn.commit()
6、关闭连接关闭数据库
>>> conn.close()
7、查询数据表内容
>>> conn=sql.connect("test.db")
>>> c=conn.cursor()
>>> c.execute('''select * from  user''')
<sqlite3.Cursor object at 0x0000024904DB4E30>
8、查看查询到的结果集
>>> res=c.execute('''select * from  user''')
>>> print(res)
<sqlite3.Cursor object at 0x0000024904DB4E30>
>>> for x in res:
...   print(x)
...
(1, 'zhangsan', '123456')
(2, 'admin', '123456')
(3, 'lisi', '123456')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-2-13 10:16:14 | 显示全部楼层
import sqlite3 as sql      
#1、建立连接 
conn=sql.connect("test.db")  #如果数据库文件存在则打开  没有则新建
#2、建立cursor   
c=conn.cursor()
#3、首先判断表是否存在,如果存在 创建同名表会出错
res=c.execute('''SELECT name FROM sqlite_master WHERE type='table' AND name='datas' ''')
if not res :
   c.execute('''create table datas (id int primary key not null,name text  not null,texts  text not null);  ''')
   #4、插入记录
   c.execute('''insert into datas (id,name,texts) values(1,"zhangsan","今天天气真好"); ''')
   c.execute('''insert into datas (id,name,texts) values(2,"admin","你们要去逛街吗"); ''')
   c.execute('''insert into datas (id,name,texts) values(3,"lisi","我们想去公园"); ''')
   conn.commit()
   conn.close()
#7、查询数据表内容
conn=sql.connect("test.db")
c=conn.cursor()
res=c.execute('''select * from  datas''')
for x in res:
   print(x)
res=c.execute('''select * from  user''')
for x in res:
   print(x)


'''
e:\>python  ex16.py
(1, 'zhangsan', '今天天气真好')
(2, 'admin', '你们要去逛街吗')
(3, 'lisi', '我们想去公园')
(1, 'zhangsan', '123456')
(2, 'admin', '123456')
(3, 'lisi', '123456')
'''
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-17 14:18:00 | 显示全部楼层

一、

增加列:
c.execute('''alter table datas add column htime date; ''')  
红色部分为 TABLE名   新增列名
后面的 date 为字段类型  此处为日期型

二、

取某个字段的最后一位值:此处为取id的值

conn=sql.connect("test.db")  
c=conn.cursor()
sid=c.execute("select id from datas")
ssid=list(sid)[-1][0]
ssid+=1
conn.close

三、

日期型 可以这样处理
htime=time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
此时取 当前系统日期 需要import time

然后就可以拼接sql字符串了
sqltext="insert into datas (id,name,texts,htime) values("+str(ssid)+","+"'"+username+"'"+","+"'"+texts+"'"+","+"'"+htime+"'"+");"
c.execute(sqltext)  
conn.commit()   
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-17 17:30:37 | 显示全部楼层
注意:sqlite3 数据库文件名 不能乱改   修改 之后  table信息 丢失   太脆弱了      
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-9 16:41

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表