商品接单网站源码分享(电商接单网站)

各位老铁们好,相信很多人对商品接单网站源码分享都不是特别的了解,因此呢,今天就来为大家分享下关于商品接单网站源码分享以及电商接单网站的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!

前言

回顾之前讲了python语法编程,必修入门基础和网络编程,多线程/多进程/协程等方面的内容,今天到了数据库编程篇,前面没看的也不用往前翻,系列文已经整理好了:

「1.跟我一起从零开始学python(一)编程语法必修」

「2.跟我一起从零开始学python(二)网络编程」

「3.跟我一起从零开始学python(三)多线程/多进程/协程」

「本篇讲:python数据库编程:MySQL数据库」

本系列文根据以下学习路线展开讲述,由于内容较多,:

「从零开始学python到高级进阶路线图」

python文档+笔记+了解接单+源码获取方式

「适用于零基础学习和进阶人群的python资源:」

「①腾讯认证python完整项目实战教程笔记PDF」「②十几个大厂python面试专题PDF」「③python全套视频教程(零基础-高级进阶JS逆向)」「④百个项目实战+源码+笔记」「⑤编程语法-机器学习-全栈开发-数据分析-爬虫-APP逆向等全套项目+文档」「⑥交流学习」「⑦想要兼职接单」

「下章讲:Redis数据库」

一丶MySQL数据库

MySQL数据库

一丶MySQL基础

MySQL是一种关系型数据库管理系统,是目前最流行的开源数据库之一。Python可以通过MySQLdb、PyMySQL等模块来连接和操作MySQL数据库。

以下是Python连接MySQL数据库的基本步骤:

「安装MySQLdb或PyMySQL模块」

pipinstallMySQLdb

pipinstallPyMySQL

「导入模块」

importMySQLdb

importpymysql

「连接数据库」

39;localhost&39;root&39;password&39;test&PyMySQL模块\nconn=pymysql.connect(host=&39;,user=&39;,password=&39;,database=&39;,port=3306)

「创建游标对象」

cursor=conn.cursor()

「执行SQL语句」

cursor.execute(&39;)

「获取查询结果」

result=cursor.fetchall()

「关闭游标和连接」

cursor.close()\nconn.close()

以上是Python连接MySQL数据库的基本步骤,具体操作可以根据实际需求进行调整。

「2.在MySQL数据库中,常见的数据类型包括」

「数值类型」:包括整型、浮点型、双精度型等。「字符串类型」:包括定长字符串、变长字符串、文本类型等。「日期和时间类型」:包括日期、时间、日期时间等。「布尔类型」:包括真和假两种值。「二进制类型」:包括二进制数据、图像、音频等。「枚举类型」:包括一组预定义的值。「集合类型」:包括一组预定义的值,但可以选择多个。

在Python中,可以使用MySQLdb或pymysql等库来连接MySQL数据库,并使用SQL语句来创建、修改、查询和删除数据表。在创建数据表时,需要指定每个字段的数据类型,以确保数据的正确性和完整性。

「3.在MySQL数据库中,约束是用于限制表中数据的规则。以下是MySQL中常用的约束」

「NOTNULL约束」:该约束用于确保列中的值不为空。「UNIQUE约束」:该约束用于确保列中的值是唯一的。「PRIMARYKEY约束」:该约束用于将列设置为主键,确保每行数据都有唯一的标识符。「FOREIGNKEY约束」:该约束用于确保列中的值与另一个表中的值匹配,通常用于建立表之间的关系。「CHECK约束」:该约束用于确保列中的值符合指定的条件。「DEFAULT约束」:该约束用于在插入新行时为列提供默认值。

例如,以下是一个包含约束的MySQL表的示例:

CREATETABLEstudents(\nidINTPRIMARYKEY,\nnameVARCHAR(50)NOTNULL,\nageINTCHECK(age>=18),\nemailVARCHAR(50)UNIQUE,\nmajor_idINT,\nFOREIGNKEY(major_id)REFERENCESmajors(id)\n);

在上面的示例中,id列被设置为主键,确保每行数据都有唯一的标识符。name列被设置为NOTNULL,确保该列中的值不为空。age列被设置为CHECK约束,确保该列中的值大于或等于18。email列被设置为UNIQUE约束,确保该列中的值是唯一的。major\\_id列被设置为FOREIGNKEY约束,确保该列中的值与majors表中的id列匹配。

「4.Python中操作MySQL数据库需要使用到MySQLdb或者pymysql等第三方库」

下面介绍一些基本的数据库操作。

连接数据库使用MySQLdb库连接数据库的代码如下:

importMySQLdb\n\n34;localhost&34;root&34;password&34;test&使用cursor()方法获取操作游标\ncursor=db.cursor()\n\n打开数据库连接\ndb=pymysql.connect(host=&34;,user=&34;,passwd=&34;,db=&34;)\n\n关闭数据库连接\ndb.close()

创建表使用execute()方法执行SQL语句来创建表,例如:

34;&34;CREATETABLEEMPLOYEE(\nFIRST_NAMECHAR(20)NOTNULL,\nLAST_NAMECHAR(20),\nAGEINT,\nSEXCHAR(1),\nINCOMEFLOAT)&34;&插入数据\nsql=&34;&39;Mac&39;Mohan&39;M&34;&34;\n\ncursor.execute(sql)

查询数据使用execute()方法执行SQL语句来查询数据,例如:

34;SELECT*FROMEMPLOYEEWHEREINCOME>%s&34;fname=%s,lname=%s,age=%d,sex=%s,income=%d&更新数据\nsql=&39;%c&34;%(&39;)\ncursor.execute(sql)

删除数据使用execute()方法执行SQL语句来删除数据,例如:

34;DELETEFROMEMPLOYEEWHEREAGE>%s&34;Tom&39;Tom&打开数据库连接\ndb=pymysql.connect(host=&34;,user=&34;,password=&34;,database=&34;)\n\n关闭数据库连接\ndb.close()

创建数据表使用Python中的pymysql库创建MySQL数据库中的数据表,示例代码如下:

importpymysql\n\n34;localhost&34;root&34;123456&34;test&使用cursor()方法创建一个游标对象cursor\ncursor=db.cursor()\n\n34;&34;CREATETABLEEMPLOYEE(\nFIRST_NAMECHAR(20)NOTNULL,\nLAST_NAMECHAR(20),\nAGEINT,\nSEXCHAR(1),\nINCOMEFLOAT)&34;&执行SQL语句\ncursor.execute(sql)\n\n打开数据库连接\ndb=pymysql.connect(host=&34;,user=&34;,password=&34;,database=&34;)\n\nSQL插入语句\nsql=&34;&39;Mac&39;Mohan&39;M&34;&34;\n\n提交到数据库执行\ndb.commit()\n\n打开数据库连接\ndb=pymysql.connect(host=&34;,user=&34;,password=&34;,database=&34;)\n\nSQL查询语句\nsql=&34;%(1000)\n\n获取所有记录列表\nresults=cursor.fetchall()\nforrowinresults:\nfname=row[0]\nlname=row[1]\nage=row[2]\nsex=row[3]\nincome=row[4]\n34;fname=%s,lname=%s,age=%d,sex=%s,income=%d&关闭数据库连接\ndb.close()

更新数据使用Python中的pymysql库更新MySQL数据库中的数据表数据,示例代码如下:

importpymysql\n\n34;localhost&34;root&34;123456&34;test&使用cursor()方法创建一个游标对象cursor\ncursor=db.cursor()\n\n34;UPDATEEMPLOYEESETAGE=AGE+1WHERESEX=&39;&39;M&执行SQL语句\ncursor.execute(sql)\n\n关闭数据库连接\ndb.close()

删除数据使用Python中的pymysql库删除MySQL数据库中的数据表数据,示例代码如下:

importpymysql\n\n34;localhost&34;root&34;123456&34;test&使用cursor()方法创建一个游标对象cursor\ncursor=db.cursor()\n\n34;DELETEFROMEMPLOYEEWHEREAGE>%s&执行SQL语句\ncursor.execute(sql)\n\n关闭数据库连接\ndb.close()

二丶MySQL进阶查询

「1.创建数据库,数据表」

创建数据库:

使用Python连接MySQL数据库,可以使用mysql.connector模块,示例代码如下:

importmysql.connector\n\n34;localhost&34;root&34;123456&创建数据库\nmycursor=mydb.cursor()\nmycursor.execute(&34;)

创建数据表:

使用Python连接MySQL数据库,可以使用mysql.connector模块,示例代码如下:

importmysql.connector\n\n34;localhost&34;root&34;123456&34;mydatabase&创建数据表\nmycursor=mydb.cursor()\nmycursor.execute(&34;)

以上代码创建了一个名为customers的数据表,包含两个字段name和address,类型均为VARCHAR(255)

「2.条件查询」

条件查询是指根据一定的条件筛选出符合要求的数据,常用的条件查询语句有WHERE、AND、OR、IN、BETWEEN等。

WHERE语句WHERE语句用于指定查询条件,语法如下:

SELECTcolumn1,column2,…FROMtable_nameWHEREcondition;

其中,condition是查询条件,可以使用比较运算符(=、<、>、<=、>=、<>)、逻辑运算符(AND、OR、NOT)和通配符(%、_)等。

例如,查询年龄大于等于18岁的学生信息:

SELECT*FROMstudentsWHEREage>=18;

AND语句AND语句用于同时满足多个条件,语法如下:

SELECTcolumn1,column2,…FROMtable_nameWHEREcondition1ANDcondition2AND…;

例如,查询年龄大于等于18岁且性别为女的学生信息:

SELECT*FROMstudentsWHEREage>=18ANDgender=&39;;

OR语句OR语句用于满足多个条件中的任意一个,语法如下:

SELECTcolumn1,column2,…FROMtable_nameWHEREcondition1ORcondition2OR…;

例如,查询年龄大于等于18岁或性别为女的学生信息:

SELECT*FROMstudentsWHEREage>=18ORgender=&39;;

IN语句IN语句用于指定多个值,语法如下:

SELECTcolumn1,column2,…FROMtable_nameWHEREcolumn_nameIN(value1,value2,…);

例如,查询学号为1001、1002、1003的学生信息:

SELECT*FROMstudentsWHEREidIN(1001,1002,1003);

BETWEEN语句BETWEEN语句用于指定一个范围,语法如下:

SELECTcolumn1,column2,…FROMtable_nameWHEREcolumn_nameBETWEENvalue1ANDvalue2;

例如,查询年龄在18岁到20岁之间的学生信息:

SELECT*FROMstudentsWHEREageBETWEEN18AND20;

以上就是条件查询的基本语法,可以根据实际需求灵活运用。

「3.在MySQL中,可以使用ORDERBY子句对查询结果进行排序」

ORDERBY子句可以跟一个或多个列名,用逗号分隔。默认情况下,排序是升序的,可以使用DESC关键字进行降序排序。

例如,以下语句将按照age列进行升序排序:

SELECT*FROMstudentsORDERBYage;

以下语句将按照age列进行降序排序:

SELECT*FROMstudentsORDERBYageDESC;

可以同时指定多个列进行排序,例如:

SELECT*FROMstudentsORDERBYgradeDESC,age;

以上语句将先按照grade列进行降序排序,如果有相同的grade值,则按照age列进行升序排序。

注意,ORDERBY子句应该放在查询语句的最后面。

「4.在MySQL中,分组是一种将数据按照某个字段进行分类的操作」

分组可以用于统计数据、计算平均值、最大值、最小值等聚合函数的值。

下面是一个简单的例子,假设我们有一个学生表,包含学生的姓名、年龄和成绩:

CREATETABLEstudents(\nidINTPRIMARYKEYAUTO_INCREMENT,\nnameVARCHAR(50),\nageINT,\nscoreINT\n);\n\nINSERTINTOstudents(name,age,score)VALUES\n(&39;,18,90),\n(&39;,19,80),\n(&39;,18,95),\n(&39;,20,85),\n(&39;,19,75);

现在我们想要按照年龄分组,统计每个年龄段的平均成绩和最高成绩,可以使用如下的SQL语句:

SELECTage,AVG(score)ASavg_score,MAX(score)ASmax_score\nFROMstudents\nGROUPBYage;

执行结果如下:

+—–+———–+———-+\n|age|avg_score|max_score|\n+—–+———–+———-+\n|18|92.5000|95|\n|19|77.5000|80|\n|20|85.0000|85|\n+—–+———–+———-+

可以看到,我们按照年龄分组,统计了每个年龄段的平均成绩和最高成绩。

在分组查询中,我们还可以使用HAVING子句来过滤分组后的数据。例如,我们想要找出平均成绩大于85分的年龄段,可以使用如下的SQL语句:

SELECTage,AVG(score)ASavg_score\nFROMstudents\nGROUPBYage\nHAVINGavg_score>85;

执行结果如下:

+—–+———–+\n|age|avg_score|\n+—–+———–+\n|18|92.5000|\n|20|85.0000|\n+—–+———–+

可以看到,我们只保留了平均成绩大于85分的年龄段。

三丶MySQL高级应用

「1.视图」

在MySQL中,视图是一种虚拟的表,它是由一个或多个基本表的查询结果组成的。视图并不存储数据,而是根据查询语句动态生成结果集。视图可以简化复杂的查询操作,提高查询效率,同时也可以保护数据的安全性。

创建视图的语法如下:

CREATEVIEWview_nameAS\nSELECTcolumn1,column2,…\nFROMtable_name\nWHEREcondition;

其中,view_name是视图的名称,column1,column2,…是要查询的列名,table_name是要查询的表名,condition是查询条件。

例如,我们可以创建一个名为employee_view的视图,查询employee表中的id、name和salary列:

CREATEVIEWemployee_viewAS\nSELECTid,name,salary\nFROMemployee;

查询视图的语法与查询表的语法类似:

SELECT*FROMview_name;

例如,我们可以查询employee_view视图的结果:

SELECT*FROMemployee_view;

视图也可以进行更新操作,但是需要满足一定的条件。具体来说,视图可以进行以下类型的更新操作:

对单表视图进行更新,即只涉及一个基本表的视图。对多表视图进行更新,但是更新操作只能涉及一个基本表的某些列,且这些列必须是唯一的。更新视图的语法如下:

UPDATEview_name\nSETcolumn1=value1,column2=value2,…\nWHEREcondition;

例如,我们可以更新employee_view视图中id为1的员工的薪水:

UPDATEemployee_view\nSETsalary=5000\nWHEREid=1;

需要注意的是,更新视图时,实际上是更新了基本表中的数据,而不是视图本身。因此,更新视图时需要满足基本表的约束条件,否则会更新失败。

除了更新操作,视图还可以进行插入和删除操作,具体语法与表的操作类似。但是需要注意的是,插入和删除操作只能涉及一个基本表,且必须满足基本表的约束条件。

「2.事务」

事务是指一组操作,这些操作要么全部执行成功,要么全部不执行。在MySQL中,事务是通过ACID属性来保证数据的一致性和可靠性的。

ACID是指:

「原子性(Atomicity)」:事务中的所有操作要么全部执行成功,要么全部不执行。「一致性(Consistency)」:事务执行前后,数据的完整性和约束条件不变。「隔离性(Isolation)」:事务之间是相互隔离的,一个事务的执行不会影响其他事务的执行。「持久性(Durability)」:事务一旦提交,对数据的修改就是永久性的,即使系统崩溃也不会丢失。

在MySQL中,使用BEGIN、COMMIT和ROLLBACK语句来控制事务的提交和回滚。

「BEGIN」:开始一个事务。「COMMIT」:提交一个事务,将事务中的所有操作永久保存到数据库中。「ROLLBACK」:回滚一个事务,将事务中的所有操作撤销。下面是一个使用事务的示例:

importmysql.connector\n\n34;localhost&34;root&34;123456&34;mydatabase&获取游标\nmycursor=mydb.cursor()\n\n34;STARTTRANSACTION&执行操作\ntry:\nsql=&34;\nval=(&34;,&34;)\nmycursor.execute(sql,val)\n\nsql=&39;ParkLane38&39;Highway21&34;\nmycursor.execute(sql)\n\n回滚事务\nmydb.rollback()\n\n打开数据库连接\ndb=pymysql.connect(host=&34;,user=&34;,password=&34;,database=&34;)\n\n关闭数据库连接\ndb.close()

其中,host表示主机名,user表示用户名,password表示密码,database表示要连接的数据库名。

执行SQL语句:

连接到MySQL数据库后,可以使用cursor对象执行SQL语句。pyMySQL支持执行所有的SQL语句,包括查询、插入、更新、删除等操作。以下是一个查询操作的示例:

importpymysql\n\n34;localhost&34;root&34;password&34;test&使用cursor()方法获取操作游标\ncursor=db.cursor()\n\n34;SELECT*FROMstudents&获取所有记录列表\nresults=cursor.fetchall()\nforrowinresults:\nid=row[0]\nname=row[1]\nage=row[2]\ngender=row[3]\nprint(&34;%(id,name,age,gender))\n\n创建数据库连接\nengine=create_engine(&39;)\n\n创建Base类\nBase=declarative_base()\n\n39;users&创建表\nBase.metadata.create_all(engine)\n\n插入数据\nuser=User(name=&39;,age=20)\nsession.add(user)\nsession.commit()\n\n更新数据\nuser=session.query(User).filter_by(name=&39;).first()\nuser.age=21\nsession.commit()\n\n39;Tom&关闭Session\nsession.close()

在上面的示例中,我们首先创建了一个数据库连接,然后创建了一个Session类和一个Base类。Session类用于创建Session实例,Base类用于定义ORM映射关系。我们定义了一个User类,它继承自Base类,并定义了表名和字段。然后我们使用Base.metadata.create_all()方法创建了表。接着我们创建了一个Session实例,并使用session.add()方法插入了一条数据。使用session.query()方法查询数据,并使用session.commit()方法提交事务。我们还演示了如何更新和删除数据,最后使用session.close()方法关闭Session。

SQLAlchemyORM框架提供了丰富的功能和灵活的配置选项,可以满足各种不同的需求。同时,它也有一定的学习曲线,需要花费一些时间来学习和掌握。

「1.使用SQLAlchemy查询MySQL数据库的示例」

首先,需要安装SQLAlchemy库:

pipinstallsqlalchemy

然后,连接MySQL数据库:

fromsqlalchemyimportcreate_engine\n\n39;mysql+pymysql://username:password@host:port/database&定义ORM模型\nBase=declarative_base()\n\nclassUser(Base):\n__tablename__=&39;\n\nid=Column(Integer,primary_key=True)\nname=Column(String(50))\nage=Column(Integer)

这个ORM模型对应MySQL数据库中的users表,包含id、name和age三个字段。

接下来,使用SQLAlchemy查询数据:

fromsqlalchemy.ormimportsessionmaker\n\n查询所有用户\nusers=session.query(User).all()\nforuserinusers:\nprint(user.id,user.name,user.age)\n\n查询年龄大于等于18岁的用户,并按照年龄从小到大排序\nusers=session.query(User).filter(User.age>=18).order_by(User.age).all()\nforuserinusers:\nprint(user.id,user.name,user.age)

以上代码分别查询了所有用户、年龄大于等于18岁的用户、年龄大于等于18岁的用户并按照年龄从小到大排序的结果,并打印出来。

除了以上示例,SQLAlchemy还支持更多的查询方式,如分页查询、聚合查询等。

以上就是关于python数据库编程MySQL数据库的内容分析

本系列文根据以下学习路线展开讲述,由于内容较多,:

「从零开始学python到高级进阶路线图」

python文档+笔记+了解接单+源码获取方式

「适用于零基础学习和进阶人群的python资源:」

「①腾讯认证python完整项目实战教程笔记PDF」「②十几个大厂python面试专题PDF」「③python全套视频教程(零基础-高级进阶JS逆向)」「④百个项目实战+源码+笔记」「⑤编程语法-机器学习-全栈开发-数据分析-爬虫-APP逆向等全套项目+文档」「⑥交流学习」「⑦想要兼职接单」

「下章讲:Redis数据库」

好了,文章到此结束,希望可以帮助到大家。

站内搜索