Python 学习之SQlite
参考链接:
[1]https://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/001388320596292f925f46d56ef4c80a1c9d8e47e2d5711000
[2] http://www.runoob.com/sqlite/sqlite-python.html
#导入SQlite驱动
import sqlite3
#连接到数据库,新建或者打开一个数据库文件
conn = sqlite3.connect('test.db')
#给数据库建立一个光标,通过光标进行对数据库的操作
cursor = conn.cursor()
#光标执行用cursor.excute(),内置SQL语句
cursor.excute('SQL语句')
#获得插入的行数
cursor.rowcount()
#注意每次都要将cursor和connection关闭
cursor.close()
#提交事务
conn.commit()
conn.close()
我们来试试看查询记录
import sqlite3
conn = sqlite3.connect('test.db')
cursor = conn.cursor()
cursor.excute('select * from user where id=?', ('1',))
values = cursor.fetchall()#通过fetchall可以拿到结果集
values
cursor.close()
#只是取数据,所以不需要提交事务
conn.close()
创建表
import sqlite3
conn = sqlite3.connect('test.db')
print('opened database successfully')
c = conn.cursor()
c.execute('''CREATE TABLE COMPANY
(ID INT PRIMARY KEY NOT NULL,
NAME TEXT NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR(50),
SALARY REAL);''')
print("Table created successfully")
conn.commit()
conn.close()
insert
import sqlite3
conn = sqlite3.connect('test.db')
c = conn.cursor()
c.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \
VALUES (1, 'Paul', 32, 'California', 20000.00 )");
c.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \
VALUES (2, 'Allen', 25, 'Texas', 15000.00 )");
c.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \
VALUES (3, 'Teddy', 23, 'Norway', 20000.00 )");
c.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \
VALUES (4, 'Mark', 25, 'Rich-Mond ', 65000.00 )");
conn.commit()
conn.close()
select
import sqlite3
conn = sqlite3.connect('test.db')
c = conn.cursor()
cursor = c.execute('SELECT id, name, address, salary from COMPANY')
for row in cursor:
print('id=',row[0])
print('name=',row[1])
print('address=',row[2])
print('salary=',row[3],'\n')
conn.close()
UPDATE
import sqlite3
conn = sqlite3.connect('test.db')
c = conn.cursor()
c.execute('UPDATE COMPANY set SALARY = 25000.00 where ID=1')
conn.commit()
print(conn.total_changes)
conn.close()