SQLite基本语句
一:
1.SQLite数据库是一种嵌入式数据库,它的数据就是一个scores.db
2.经常被集成到各种应用程序中,甚至ios、Android、Mac OS、Linux
3.Python中内置了SQLite数据库,直接使用
4.数据库:关系型数据库,一个数据库有多少张表,表和表之间通过主外键进行关联
5.Python中操作Sqlite数据库
a.获取connection
b.连接之后需要打开游标cursor,通过cursor执行sql语句
c.关闭连接,释放资源
二:增,删,改,查数据库
1.查数据库
eg:
import sqlite3 #导入模块sqlite3
db_file = 'nishi.db' #数据库文件
conn = sqlite3.connect(db_file) #获取与数据库的链接
sql = 'select * from scores' #编写sql语句
cur = conn.cursor() #执行sql语句
cur.execute(sql)
print(cur.fetchall()) #打印结果
#关闭资源
cur.close()
conn.close()
2.编辑数据库
import sqlite3 #导入模块sqlite3
db_file = 'nishi.db' # 数据库文件
def insert_score_date(): #插入数据
conn = sqlite3.connect(db_file) # 获取与数据库的链接
cur = conn.cursor() # 打开游标
#插入sql语句:
# insert into 表名 (列1,列2,列3,....) values(?,?,?....)
sql = 'insert into scores(name,math_score,chinese_score) ' \
' values(?,?,?)'
date = ('赵五',89.9,78.2) #插入数据时必须使用元组类型
cur.execute(sql,date)
conn.commit()#执行插入时,需要进行显示提交数据,否则数据无法同步到数据库中
#关闭资源
cur.close()
conn.close()
insert_score_date()
3.删除数据库中的记录,根据某种条件进行操作 where
import sqlite3 #导入模块sqlite3
db_file = 'nishi.db' # 数据库文件
def delete_score_date():
conn = sqlite3.connect(db_file) #获取链接
cur = conn.cursor() #打开游标进行cursor,进行sql语句
sql = 'delete from scores where id=?' #delete from +表名 where 列=?
# 构建元组数据
id = (3,)
cur.execute(sql,id)
conn.commit() #进行提交
#关闭资源
cur.close()
conn.close()
delete_score_date()
4.修改数据,根据条件修改数据
import sqlite3 #导入模块sqlite3
db_file = 'nishi.db' # 数据库文件
#根据某种条件修改数据
def update_score_data():
conn = sqlite3.connect(db_file)
cur = conn.cursor()
sql = 'update scores set math_score = ?,chinese_score = ? where id =2'
#修改sql语句,update表名 set 列名=? ....where条件
data = (99,99,) #元组数据进行封装
cur.execute(sql,data)
conn.commit()
cur.close()
conn.close()
update_score_data()
5.查询数据
import sqlite3 #导入模块sqlite3
db_file = 'nishi.db' # 数据库文件
#根据某种条件修改数据
def select_socre_all():
conn = sqlite3.connect(db_file)
cur = conn.cursor()
sql = 'select * from scores'
#查询语句 select 列名 *表示所有列 from 表示 表名
cur.execute(sql)
print(cur.fetchall()) #打印数据
cur.close()
conn.close()
select_socre_all()
6.插入多条数据
import sqlite3 #导入模块sqlite3
db_file = 'nishi.db' # 数据库文件
score_list = [('Jack',80,9),('BOb',75,95),
('Rose',60,70),('Sunny',86,96),
('Ada',79,89)]
def insert_mult_data():
conn = sqlite3.connect(db_file)
cur = conn.cursor()
sql = 'insert into scores(name,math_score,chinese_score) ' \
'values(?,?,?)'
#执行sql语句,插入多条数据使用的函数是executemany
cur.executemany(sql,score_list)
conn.commit() #进行同步
cur.close()
conn.close()
return cur.rowcount
print(insert_mult_data())
5