当前位置: 首页 > wzjs >正文

打开网站 显示建设中站长工具之家

打开网站 显示建设中,站长工具之家,.net网站开发书,企业门户网站建设思路目录 一、数据库 1、数据库的概念 2、数据库的表 3、字段详解 二、SQL数据库语句 1、了解SQL命令 2、CREATE命令 3、INSERT命令 三、数据库和SQL命令 四、数据库的查询与修改 1、SELECT命令 2、UPDATE命令 3、DELETE命令 4、DROP TABLE 5、SQL的注意事项 五、处…

目录

一、数据库

1、数据库的概念

2、数据库的表

3、字段详解

二、SQL数据库语句

1、了解SQL命令

2、CREATE命令

3、INSERT命令

三、数据库和SQL命令

四、数据库的查询与修改

1、SELECT命令

2、UPDATE命令

3、DELETE命令

4、DROP TABLE

5、SQL的注意事项

五、处理二进制字段


在Python中,我们通常会用列表,字典,元组等数据类型来存储一些数据,但是当我们有大量的数据时,使用这些数据类型会比较麻烦,比如要进行写入,修改,查找等操作时,我们要进行大量的数据编辑,这时我们可以把Python结合数据库来使用,下面我们会介绍其内容。

一、数据库

1、数据库的概念

数据库可以用来存放大量的数据,并且提供了方便且快速的检索手段,且能够快速查找出符合某种条件的数据(比如所有身高在170cm以上的男生)

数据库可以是一个文件比如“c:/tmp/students.db”

2、数据库的表

一个数据库文件中,可以包含很多张表,比如在students.db的数据库文件中,包含学生信息表和学生课程表

而一个表由记录构成,比如在一个学生信息的表中,每一个记录,就代表一个学生的信息

而一个记录由字段构成,每个字段对应一个属性,一个记录中若包含多个字段,就是在表述这个事物的多个属性,比如拿出一个学生记录,可以由name(姓名),id(学号),age(年龄),gender(性别)等字段构成

3、字段详解

每一个字段都是有“类型”的,下面我们用一个学生信息表的例子来介绍一下:

字段名数据类型
name(姓名)text(字符串)
gpa(成绩)real(小数)
age(年龄)integer(整数)
profile(用户资料)text(字符串)
photo(照片)blob(二进制数据)
birthday(生日)date(日期,本质上就是text)
register time(注册时间)datetime(日期+时间,本质上就是text)

二、SQL数据库语句

1、了解SQL命令

SQL命令是用来对数据库进行操作的标准语句,它支持多种数据库的操作

下面我们介绍几种常见的SQL命令(不区分大小写)

SQL命令功能
CREATE TABLE创建一个表
INSERT INTO在表中插入记录
UPDATE在表中更新记录
SELECT在表中查询记录
DALETE从表中删除记录

2、CREATE命令

我们可以用CREATE命令来创建一个表:

例子:

CREATE TABLE if not exists students (id integer primary key , name text , gpa real , birthday date , age integer , picture blob)

这个命令会创建一个名为students的表,里面会包含许多种字段(绿色的字),而后面跟着的黑色的字就是其对应的数据类型,而第一个id后面的(primary key)表示不可重复

3、INSERT命令

我们可以用INSERT INTO 命令来插入一个记录

例子:

INSERT INTO students VALUES(001 , 'Sue' , 100 , '1900-01-01' , 19 , null)

这条命令在students表中插入了一个记录,该记录暂无照片,就用“null”表示

而VALUES是指该记录中每个字段的值是什么

三、数据库和SQL命令

下面我们把数据库和Python结合:

在结合的时候我们需要导入一个sqlite3的包:

我们来看一个简单的例子:

先在某目录下创建一个后缀是.db的数据库文件(也可以不创建,但是要在Python的代码中明确之处想要创建的文件的目录及名称)

创建完成后我们在Python的文件中创建对数据库执行操作的代码:

import sqlite3db = sqlite3.connect("D:\学习\Python\students.db")    #连接数据库,若不存在则自动创建
cur = db.cursor()       #获取光标,操作数据库一般需要通过光标来进行
sql = "CREATE TABLE if not exists students (id integer primary key , name text , gpa real , birthday date , age integer )"      #创建一个students的表。如果不存在就创建它
cur.execute(sql)    #通过光标来执行上面的SQL命令
cur.execute("INSERT INTO students VALUES(1001 , 'Sue' , 100 , '1900-01-01' , 19 , 1 )")     #插入一个记录
mylist = [(1002 , 'Lua' , 98 , '1900-01-02' , 99.5 , 1) , (1003 , 'Don' , 88.5 , '1999-02-18' , 67 , 1)]for i in mylist :       #可把列表中的每个元素都遍历一遍,然后把这些数据依次插入到students表中cur.execute('INSERT INTO students VALUES(?,?,?,?,?,?)' , (i[0] , i[1] , i[2] , i[3] , i[4] , i[5]))     #“ ?”对应这后面的每一项i[x],证明是可变变量db.commit()     #执行这条语句,才能真正的把上面那些操作完成
cur.close()     #关闭光标
db.close()      #关闭数据库

执行后,我们可以用SQLite软件来查看:

可以发现我们的成功的创建了students这个表,并且插入了相关的记录

四、数据库的查询与修改

1、SELECT命令

SELECT命令是一个十分强大的命令,它可以根据你的要求去筛选记录:

下面是一些例子:

①:SELECT * FROM students

检索表students表中的全部记录

( * 代表查询所要求的记录的全部字段 )

②:SELECT * FROM students ORDER BY age

检索表students表中的全部记录,并按年龄排序

③:SELECT name , age FROM students

检索表students表中的全部记录,但每个记录只取name和age字段

④:SELECT * FROM students WHERE name = " Sue "

检索表中全部name字段为“Sue”的记录

(WHERE 代表检索条件)

⑤:SELECT * FROM students WHERE name = "Sue" AND age > 20 ORDER BY age DESC

检索表中name字段是“Sue”,且年龄大于20的人,并且结果按年龄的降序排序

下面我们根据上面已经创建好的数据库文件,来进行一个筛选:

import sqlite3db = sqlite3.connect("D:\学习\Python\students.db")    #连接数据库
cur = db.cursor()       #创建光标
sql = 'SELECT * FROM students WHERE age < 50'   #要执行的SQL语句
cur.execute(sql)    #执行SQL语句
x = cur.fetchall()      #获取SQL语句操作后,得到的结果
if x != [] :print("符合条件的共有:" , len(x))for i in x :print(i)cur.close()     #关闭光标
db.close()      #关闭数据库

我们想要筛选数据库中年龄小于50的记录

输出:

2、UPDATE命令

①UPDATE students SET age = 18

把所有记录的age都改成18

②UPDATE students SET , gpa = 88 , age = 99 WHERE name = "Don"

修改name = Don 的gpa字段和age字段

例子:

import sqlite3db = sqlite3.connect("D:\学习\Python\students.db")    #连接数据库
cur = db.cursor()       #创建光标
sql = 'UPDATE students SET age = ? WHERE name = ?'   #要执行的SQL语句
cur.execute(sql , (1, "Don"))    #执行SQL语句,元组中的两个元素对应上面的两个?(若Don不存在,则无效果)
db.commit()     #只要改变了数据库的数据就必须执行这个!!!
cur.close()     #关闭光标
db.close()      #关闭数据库

我们回到数据库的表中,发现Don的年龄被改成了1(神秘返老还童术):

3、DELETE命令

①DELETE FROM students WHERE age <18

删除年龄小于18的记录

②DELETE FROM students

删除全部记录

4、DROP TABLE

DROP TABLE IF EXISTS students

删除students表

(这个操作最后也需要commit)

5、SQL的注意事项

对于修改表的操作:如插入,删除,更新,在关闭数据库前不要忘记commit!否则可能无效

五、处理二进制字段

把图片放入数据库

import sqlite3
import requests     #网络请求db = sqlite3.connect("D:\学习\Python\students.db") 
cur = db.cursor()imgURL = "https://img5.duitang.com/uploads/item/201605/19/20160519224441_VFMWR.jpeg"
imgStream = requests.get(imgURL, stream = True)     #stream=True 参数告诉 requests 库以流式传输(streaming)的方式获取数据,而不是一次性将所有内容下载到内存中
sql = "UPDATE students SET picture = ? WHERE name = 'Don'"
cur.execute(sql , (imgStream.content , ))       #注意元组最后需要有一个逗号db.commit()
cur.close()
db.close()

补充:

f = open (r"D:\学习\Python\001.jpg" , "rb")   #字符串之前的r是把字符串内的任何特殊字符数字均看成字符,后面的rb的r是读取,b是二进制

以上就是Python与数据库的全部内容:)


文章转载自:

http://NAcD6Vzk.bpmfg.cn
http://3joKHXHv.bpmfg.cn
http://nlzqY6ka.bpmfg.cn
http://bTm8VtXz.bpmfg.cn
http://wg41st37.bpmfg.cn
http://w6BOxFP4.bpmfg.cn
http://P6X6DnRr.bpmfg.cn
http://Y44bUxbq.bpmfg.cn
http://NmlPjWBJ.bpmfg.cn
http://V1SCAjub.bpmfg.cn
http://o33X6YVB.bpmfg.cn
http://G6XE28Fn.bpmfg.cn
http://iicOOfu7.bpmfg.cn
http://Hh6DKrWq.bpmfg.cn
http://locb0V3k.bpmfg.cn
http://rivKBG71.bpmfg.cn
http://7OnJQBVv.bpmfg.cn
http://ZWFFqJ3f.bpmfg.cn
http://GfnlNr1p.bpmfg.cn
http://6djo2NWx.bpmfg.cn
http://vnomGOts.bpmfg.cn
http://3wGcU5V3.bpmfg.cn
http://Jw4lhFVs.bpmfg.cn
http://07wALYZz.bpmfg.cn
http://h8g0Sp6x.bpmfg.cn
http://qJPQa2tv.bpmfg.cn
http://Y15VITzK.bpmfg.cn
http://M9kyXM1o.bpmfg.cn
http://omE38NVW.bpmfg.cn
http://A5jmd5sL.bpmfg.cn
http://www.dtcms.com/wzjs/640133.html

相关文章:

  • 济源网站开发网站建设工具有哪些品牌
  • 电脑传奇网站百度竞价排名怎么收费
  • .帮别人做网站google建网站
  • 怎么做企业网站仿站五核网站建设
  • 网站怎么自己编辑模块怎么查找网站建设
  • 安徽网站建设调查报告网站商城建设公司
  • php网站怎么做的做论坛app网站有哪些
  • 网站的安全建设或者解决方案深圳网站设计十年乐云seo
  • 400网站总机 阿里云南京百家湖网站建设
  • vps网站打开需要身份验证网站地图怎么上传
  • 自创字 网站广告设计哪个网站好
  • 网站开发公司组织架构wordpress自动采集aote
  • 苏州装修公司网站建设三只松鼠口碑营销案例
  • 武夷山住房和城乡建设部网站商场装修设计
  • .net电商网站开发设计网络搜索关键词排名
  • 公司网站如何宣传推广游戏平台网页版
  • 网站建设 9awordpress如何套用模板
  • 网站建设的条件是什么基于php房产网站开发
  • 招聘网站做专题的目的wordpress相册代码
  • 红河公司 网站建设网站建设问题及解决办法
  • 网站开发g网络服务器可提供的常见服务哪四个
  • 南平网站建设wzjseo手机模板网站开发
  • 单页面网站制作教程网站建设对于企业的重要性
  • 下列软件属于网站开发工具的是开封网站建设流程与开发步骤
  • 个人网站的内容主题网站开发报告
  • 邹城住房城乡建设部网站绵阳建设工程信息网官网
  • 网站主页图片设计宁波网站建设内容
  • 网站的免费空间是什么做网站思想
  • 石家庄红酒公司 网站建设怎样办网站做宣传
  • 营销型企业网站建设哪家好网站改版策划