pymysql

pymysql内置功能

匿名 (未验证) 提交于 2019-12-02 22:06:11
视图是一个虚拟表(非真实存在),其本质是【根据SQL语句获取动态的数据集,并为其命名】,用户使用时只需使用【名称】即可获取结果集,可以将该结果集当做表来使用。 #语法:CREATE VIEW 视图名称 AS SQL语句 create view teacher_view as select tid from teacher where tname=‘李平老师‘; #于是查询李平老师教授的课程名的sql可以改写为 mysql> select cname from course where teacher_id = (select tid from teacher_view); +--------+ | cname | +--------+ | 物理 | | 美术 | +--------+ rows in set (0.00 sec) #!!!注意注意注意: #1. 使用视图以后就无需每次都重写子查询的sql,但是这么效率并不高,还不如我们写子查询的效率高 #2. 而且有一个致命的问题:视图是存放到数据库里的,如果我们程序中的sql过分依赖于数据库中存放的视图, 那么意味着,一旦sql需要修改且涉及到视图的部分,则必须去数据库中进行修改,而通常在公司中数据库有专门的DBA负责, 你要想完成修改,必须付出大量的沟通成本DBA可能才会帮你完成修改,极其地不方便 #修改视图,原始表也跟着改

Pymysql安装与连接

匿名 (未验证) 提交于 2019-12-02 22:06:11
今天主要讲的是 Python3 MySQL数据连接 PyMySQL是在python3版本中用于连接MySQL服务器的一个库,Python2中则使用mysqldb 再使用PyMySQL之前 需要确保PyMySQL已安装 如果还未安装,我们可以使用以下命令安装最新版的PyMySQL: 在cmd中输入: pip install PyMySQL 1.导入pymysql库:import pymysql 2.打开数据库连接 conn=pymysql. connect (host= '服务器' , port=端口, user= '用户' , password= '密码' , db= '库名' , charset= '字符集' ) 3.使用cuisor()方法创建游标对象cursor cursor = conn.cursor() 4.使用execute()方法 执行SQL命令 cursor.execute( 'SQL命令' ) 5.使用fetchone()方法获取单条数据 row_1 = cursor.fetchone() print (row_1) 6.提交,不然无法保存新建或者修改的数据 conn. commit () 7.关闭游标 cursor. close () 8.关闭数据库连接 conn. close () 在python7库中创建表employee import pymysql ap

16 数据库 pymysql SQLAlchemy

匿名 (未验证) 提交于 2019-12-02 22:06:11
表中一列或多列组成的唯一key 主键往往为长整型 且非空自增 由查询语句生成的虚表,依然可以进行CRUD操作 将复杂SQL语句定义为视图,可 简化操作 视图可以只显示真实表的部分列或计算后结果,可实现 数据隐藏 子表加外键引用主表 一般与主键配合使用 全称Structured Query Language 结构化查询语言 所有主流关系型数据库以及大部分NoSQL都支持SQL SQL语句分类 : 名称 含义 SQL语句 DDL 数据定义语言,负责数据库定义 数据库对象定义 CREATE ALTER DROP DML 数据操作语言,负责数据库对象的操作 CRUD(增删改查) DCL 数据控制语言,负责数据库访问权限控制 GRANT REVOKE TCL 事务控制语言,负责处理ACID事务 COMMIT ROLLBACK - DCL GRANT授权 REVOKE撤销 - *为通配符,代表任意库或任意表 - %为通配符,代表任意host或ip地址段 GRANT ALL ON database .* TO 'login_name' @ '192.168.%' IDENTIFIED BY 'password' ; REVOKE ALL ON *.* FROM login_name DML 聚合函数 聚合函数 含义 COUNT(expr) 返回记录数目,若指定列,则返回非NULL值的行数

解决: pymysql.err.OperationalError: (2003, "Can't connect to MySQL server on xxxx

匿名 (未验证) 提交于 2019-12-02 22:06:11
在MySQL Server 已经安装好的情况下, Python 3 使用 pymysql 进行连接数据库操作时, 出现的BUG如下图: 在网上找了资料,看有的说是MySQL没有打开,有的说是一些权限问题,这个问题困扰了我一天,最终我发现,我原来的测试代码这样写: 貌似并不规范,我对代码进行了更改,添加了键,如下: 查询结果: 问题解决!!!太开心了 文章来源: 解决: pymysql.err.OperationalError: (2003, "Can't connect to MySQL server on xxxx

基于pymysql来执行txt文件中的SQL语句

匿名 (未验证) 提交于 2019-12-02 22:06:11
import pymysql # 打开数据库连接 db = pymysql.connect(host="197.3.1.1", port=3317,user="luwenjie", # 使用 cursor() 方法创建一个游标对象 cursor cursor = db.cursor() #SQL文件 fo = open("C:\\Users\\卢文杰\\Desktop\\卢文杰\\工作文件\\block_id_1.txt","r") #结果输出文件 fo1 = open("C:\\Users\\卢文杰\\Desktop\\卢文杰\\工作文件\\result4.txt","a") for num in range(1,5): # 使用 fetchone() 方法获取单条数据. fo.close() fo1.close() db.close() 文章来源: 基于pymysql来执行txt文件中的SQL语句

【原创】python3读取mysql数据库

匿名 (未验证) 提交于 2019-12-02 22:06:11
01.环境准备 使用的包:pymysql pymysql下载地址: 点击打开链接 02.pymysql安装: https://blog.csdn.net/u013952400/article/details/80432452 03.示例代码: # -*- coding:utf-8 -*- # __author__ = "LJY" import pymysql conn = pymysql.connect(host='192.168.10.101', port=3306, user='root', passwd='root', db='python_operation_01') cursor = conn.cursor() cursor.execute("select * from demo_pic_repo") # 获取剩余结果的第一行数据 row_1 = cursor.fetchone() print(row_1) # 获取剩余结果前n行数据 # row_2 = cursor.fetchmany(3) # 获取剩余结果所有数据 # row_3 = cursor.fetchall() conn.commit() cursor.close() conn.close() 文章来源: 【原创】python3读取mysql数据库

Mac MySQLdb 的安装

匿名 (未验证) 提交于 2019-12-02 22:06:11
对于 mysqldb-python 的安装过程,心中有无数只草泥马奔腾而过。过程是在是艰辛。iMac 装好了,在自己的MBP 装,一直报 Command "python setup.py egg_info" failed with error code 1 的错误,因为一开始 装Python时版本搞错了,导致后面卸载重装还是一样的结果,没办法只能换成 pymysql ,下面就来说说安装步骤 通过 pip 指令安装 pip install mysqlclient pip install MySQL-python 终端打开 ~/.bash_profile 文件, 添加 export PATH=$PATH:/usr/local/mysql/bin source ~/.bash_profile Reason : image not found 安装完MySQL-python包后,让我们import MySQLdb,此时出现一个错误,错误最后一行写着 Reason: image not found。 找不到libmysqlclient.18.dylib这个文件,但这个文件在/usr/local/mysql/lib/下是有的, 只是位置不对,于是我们这样解决. 执行命令行 $ sudo ln -s /usr/local/mysql/lib/libmysqlclient. 18 .dylib

pymysql的使用

匿名 (未验证) 提交于 2019-12-02 22:06:11
MySQL基于TCP协议之上开发,但是网络连接之后,传输的数据必须遵循MySQL的协议.封装好MySQL协议的包,就是驱动程序. 先建立一个数据传输的数据通道--连接. pymysql.connect()方法返回的是connections模块下的connection类实例. connect方法传参就是给connection类的 __init__ 提供参数 connection初始化参数 说明 host 主机 user 用户名 password 密码 database 数据库 port 端口 connection.ping()方法,测试数据库服务器是否存活,有一个参数reconnect表示断开与服务器连接是否重连. 操作数据库,必须使用游标,首先要获取一个游标对象. connection.cousor(cursor=none)方法返回一个新的游标对象. 连接没有过关闭前,游标对象可以反复使用. cursor参数,可以指定一个cursor类,如果为none,默认使用cursor类. 数据库操作需要使用cursor类的实例,提供execute()方法,执行SQL语句,成功返回影响的行数. 增删相同,注意要conn.commit() ,sql语句实现具体功能 import pymysql ### 连接数据库的参数 conn = pymysql.connect(host='localhost

Django - installing mysqlclient error: mysqlclient 1.3.13 or newer is required; you have 0.9.3

匿名 (未验证) 提交于 2019-12-02 22:06:11
Deepin Linux 15.11 Django 2.2 pymysql0.9.3 因为用pymysql替换了默认的mysqlclient,Django官方推荐的数据库API driver是mysqlclient。 https://docs.djangoproject.com/en/2.2/ref/databases/#mysql-db-api-drivers 不要用 pymysql 。用mysqlclient。 安装方法: https://github.com/PyMySQL/mysqlclient-python#install 2.1 配置文件的目录中_ init_ .py中有如下代码 import pymysql pymysql.install_as_MySQLdb() # 这是一个hack,为了在Djano中替代默认的mysqlclient。mysqlclient官方描述:This is a fork of MySQLdb1 2.2 点进去install_as_MySQLdb 找到version_info变量,改成 version_info = (1, 3, 13, "final", 0) 2.3 改变django.db.backends.mysql.operations.py的一行代码 query = query.decode(errors='replace') ->