暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

sqlite---insert和select

coolpython 2017-03-31
191

纠正昨天的错误

sqlite---创建数据库和表

上一篇,在创建user表时,name字段的定义是错误的,应该是char(50)而不是cahr(50),此外还做了几处修改,改动后的内容如下

#coding=utf-8
import sqlite3
conn = sqlite3.connect('mydata.db')

def create_table():
   create_sql = '''
   create table user(
   id     INTEGER  PRIMARY KEY autoincrement NOT NULL,
   name   char(50) NOT NULL,
   age    INTEGER      NOT NULL
   );
   '''
   conn.execute(create_sql)

create_table()

  • 不要太关心大小写问题,大写小写都可以

  • autoincrement 是递增的意思,每次写入新的数据时,它会自动增长

  • char 你或许还很陌生,把它理解成字符串就可以了,括号里写50,表示这个字段的长度最大是50,如果名字的长度超过50,写入数据库就会失败

写入一条数据

def insert():
   sql = u"insert into user(name,age) values ('小明',10)"
   conn.execute(sql)
   conn.commit()

我这里实现了一个写入数据的函数,字符串sql是一条sql语句,执行这条sql语句可以向数据库里增加一条数据,conn.execute(sql) 结束后,一定要执行commit操作,这个方法的意思是将更改提交到数据库。

改进insert函数

你肯定不希望每次写入数据库里的数据都是小明,名字和年龄应该是可以自由变化的

def insert(name,age):
   sql = u"insert into user(name,age) values
('{name}',{age})"
.format(name=name,age=age)
   conn.execute(sql)
   conn.commit()

insert(u'white',20)

你现在可以调用insert函数,向数据库里写入你自己定义的数据了,通过SQLiteStudio这个工具,你可以随时查看表里的数据,除了使用工具,你也可以编写一段代码来查看

def select():
   sql = "select * from user"
   res = conn.execute(sql)
   data = res.fetchall()
   print data

select()

对于一张数据库表的操作,无非是新增,删除,修改,查看,本篇已经简单的介绍了新增和查看,明天会介绍修改和删除,有了这些简单的数据库知识,结合web.py,就可以写一些简单的应用了。

完整的示例代码


#coding=utf-8
import sqlite3
import os

dbname = 'mydata.db'
if os.path.exists(dbname):
os.remove(dbname)

#建立连接
conn = sqlite3.connect(dbname)

def create_table():
create_sql = '''
   create table user(
   id     INTEGER  PRIMARY KEY autoincrement NOT NULL,
   name   char(50) NOT NULL,
   age    INTEGER      NOT NULL
   );
   '''
   conn.execute(create_sql)

def insert(name,age):
sql = u"insert into user(name,age) values
('{name}',{age})"
.format(name=name,age=age)
conn.execute(sql)
conn.commit()

def select():
sql = "select * from user"
   res = conn.execute(sql)
data = res.fetchall()
print data

create_table()
insert('white',20)
insert('black',19)
select()


文章转载自coolpython,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论