访问数据库(廖py)

原创 2018年04月16日 16:41:55

访问数据库(廖py)

标签(空格分隔): MYSQL SQLite


当我们需要保存自己定义的存储格式的时候,比如成绩单

姓名 成绩
aaa 95
bbb 21

可以使用文本进行保存,或者使用JSON格式保存文件。但是这种方法并不便捷,查找和添加时都不能满足要求。
因此使用数据库(database)专门集中存储和查询的软件,可以通过条件快速查询到指定的数据。

image_1cb64a6ssb8u1k4t1p2co3q3pr9.png-36.4kB

根据某个年级的ID就可以查找到所有班级的行,这种查询语句在关系数据库中成为SQL语句,可以写成

SELECT * FROM classes WHERE grade_id = ‘1’

结果也是一个表:
image_1cb64e50k1o5q1isd126m1jj217u0m.png-3.6kB

SQLite

sqlite3已经内置在Python中,可以直接import调用。
表是数据库中存放关系数据的集合,一个数据库中通常包含多个表,比如学生表、班级表、学校表。各表之间通过外键关联。
1.要操作数据库,首先要连接到数据库,一个数据库链接称为Connection;
2.连接到数据库后,需要打开游标Cursor,通过Cursor执行SQL语句,然后获得执行结果。
3.Python定义了一套操作数据库的API接口,任何数据库要连接到Python,只需要提供复合Python标准的数据库驱动即可。

create & insert

# 导入SQLite驱动:
>>> import sqlite3
# 连接到SQLite数据库
# 数据库文件是test.db
# 如果文件不存在,会自动在当前目录创建:
>>> conn = sqlite3.connect('test.db')
# 创建一个Cursor:
>>> cursor = conn.cursor()
# 执行一条SQL语句,创建user表:
>>> cursor.execute('create table user (id varchar(20) primary key, name varchar(20))')
<sqlite3.Cursor object at 0x10f8aa260>
# 继续执行一条SQL语句,插入一条记录:
>>> cursor.execute('insert into user (id, name) values (\'1\', \'Michael\')')
<sqlite3.Cursor object at 0x10f8aa260>
# 通过rowcount获得插入的行数:
>>> cursor.rowcount
1
# 关闭Cursor:
>>> cursor.close()
# 提交事务:
>>> conn.commit()
# 关闭Connection:
>>> conn.close()

select

>>> conn = sqlite3.connect('test.db')
>>> cursor = conn.cursor()
# 执行查询语句:
>>> cursor.execute('select * from user where id=?', ('1',))
<sqlite3.Cursor object at 0x10f8aa340>
# 获得查询结果集:
>>> values = cursor.fetchall()
>>> values
[('1', 'Michael')]
>>> cursor.close()
>>> conn.close()
num work
1. 建立connection
2. 设置cursor
3. 通过cursor.execute执行SQL语句
4. 完成操作后关闭connetion,cursor

使用cursor对象执行insert,update,delete语句时,执行结果由rowcount返回影响的行数。
执行select语句时,通过fetchall()可以拿到结果集,是一个list,每个元素都是一个tuple对应一行记录。

execute()方法

语句中有几个占位符? 就要对应几个参数。

cursor.execute(‘select * from user where name=? and pwd=?, (‘abc’, ‘passward’))

其中有两个占位符,所以有两个参量。当只有一个参量时,参量输入也要为tuple。

cursor.execute(‘select * from user where id=?’, (‘1’,))

练习

sqlite中使用select * from user where ...进行判断选择。
可以使用between选择区间。
排序使用select * from user order by ...,降序时使用desc关键字。

当需要对排序进行选择时,使用嵌套:

cursor.execute(‘select * from (select * from user order by score) where score between ? and ?’, (low ,high))
其中?作为占位符。

MySQL

import mysql.connector
conn = mysql.connector.connect(user='root', passward='pwd', database='test')
curcor = conn.cursor()

其中占位符为%s
其余操作Mysql与SQLite类似。
http://www.runoob.com/sqlite/sqlite-tutorial.html
有SQLite教程。

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_34551188/article/details/79962701

基于ASP.NET网站开发的 SQL SERVER 数据库教学辅导 新手基础实用技术精讲

ASP.NET网站开发 数据库教学辅导 实用技术精讲,主要针对基于ASP.NET的Visual Studio 2010和SQL SERVER 2008 R2下开发的基础数据库部分
  • 2017年09月19日 00:06

廖雪峰的0Python教程

·         目录 ·         Python教程 ·         Python简介 ·         安装Python ·         Python解释器 ·    ...
  • powerlang
  • powerlang
  • 2015-05-08 14:34:34
  • 1839

Python教程(廖雪峰)——模块

模块 #Python中一个.py文件就称为一个模块(Module). #好处:大大提高代码可维护性;编写代码不必从零开始(一个模块编写完毕就可被其他地方引用) #好处: 还可避免函数名和变量名冲...
  • youngersteral
  • youngersteral
  • 2018-01-30 11:35:54
  • 108

【廖雪峰Python习题集】生成器

杨辉三角定义如下: 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 把每一行看做一个list,试写一个generator,不断输出下一行的list...
  • weixin_38855195
  • weixin_38855195
  • 2017-11-02 14:57:00
  • 240

【廖雪峰Python习题集】使用list和tuple

请用索引取出下面list的指定元素: #_*_coding:utf-8_*_ L=[ ['Apple',Google','Microsoft'], ['Java','Python','Ruby',...
  • weixin_38855195
  • weixin_38855195
  • 2017-11-01 19:48:31
  • 268

推荐廖雪峰的网站教程

地址和链接廖雪峰的个人官网推荐内容我觉得三个在线的教程写得非常靠谱:JavaScript全栈教程 小白的Python教程浅显易懂的Git教程其他的也可以看看。...
  • stereohomology
  • stereohomology
  • 2016-03-05 13:32:44
  • 1084

Apache 配置CGI脚本操作数据库

Apache 配置CGI脚本操作数据库 CGI Apache配置php Apache配置Python php操作数据库 Python操作数据库 MySQL-python php-mysql...
  • Lockey23
  • Lockey23
  • 2017-08-12 22:31:38
  • 718

记录 廖雪峰老师 实战 学习到 Day10的bug 以及解决方案

1、点击注册按钮 没有反应 ,命令窗口提示 call with arg{ },说明数据没有传输成功后来发现廖大的源码有几处修改了,但我没有发现1 )app.py app.py 中添加了 def a...
  • Amy_mm
  • Amy_mm
  • 2017-11-08 16:54:41
  • 183

Python廖雪峰实战web开发(Day7-编写MVC)

编写MVC
  • qq_38801354
  • qq_38801354
  • 2017-06-17 09:46:41
  • 1395

廖雪峰的python教程 实战篇

  • 2014年07月31日 18:57
  • 4.38MB
  • 下载
收藏助手
不良信息举报
您举报文章:访问数据库(廖py)
举报原因:
原因补充:

(最多只允许输入30个字)