前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python——MySql操作

Python——MySql操作

作者头像
羊羽shine
发布2019-05-28 13:32:11
7340
发布2019-05-28 13:32:11
举报
文章被收录于专栏:Golang开发Golang开发

pymysql

pymysql 的GitHub地址:https://github.com/PyMySQL/PyMySQL

image.png

常见数据类

类型

字节大小

有符号范围(Signed)

无符号范围(Unsigned)

TINYINT

1

-128 ~ 127

0 ~ 255

SMALLINT

2

-32768 ~ 32767

0 ~ 65535

MEDIUMINT

3

-8388608 ~ 8388607

0 ~ 16777215

INT/INTEGER

4

-2147483648 ~2147483647

0 ~ 4294967295

BIGINT

8

-9223372036854775808 ~ 9223372036854775807

0 ~ 18446744073709551615

字符串

类型

字节大小

示例

CHAR

0-255

类型:char(3) 输入 'ab', 实际存储为'ab ', 输入'abcd' 实际存储为 'abc'

VARCHAR

0-255

类型:varchar(3) 输 'ab',实际存储为'ab', 输入'abcd',实际存储为'abc'

TEXT

0-65535

大文本

日期时间类型

类型

字节大小

示例

DATE

4

'2020-01-01'

TIME

3

'12:29:59'

DATETIME

8

'2020-01-01 12:29:59'

YEAR

1

'2017'

TIMESTAMP

4

'1970-01-01 00:00:01' UTC ~ '2038-01-01 00:00:01' UTC

安装方式

代码语言:javascript
复制
 python3 -m pip install PyMySQL
Connection

创建对象:调用connect()方法用于建立与数据库的连接

代码语言:javascript
复制
conn=connect(参数列表)

参数host:连接的mysql主机,如果本机是'localhost' 参数port:连接的mysql主机的端口,默认是3306 参数database:数据库的名称 参数user:连接的用户名 参数password:连接的密码 参数charset:通信采用的编码方式,推荐使用utf8 对象的方法 close()关闭连接 commit()提交 cursor()返回Cursor对象,用于执行sql语句并获得结果

Cursor游标

用于执行sql语句,使用频度最高的语句为select、insert、update、delete 获取Cursor对象:调用Connection对象的cursor()方法

代码语言:javascript
复制
c=conn.cursor()

对象的方法 close()关闭 execute(operation [, parameters ])执行语句,返回受影响的行数,主要用于执行insert、update、delete语句,也可以执行create、alter、drop等语句 fetchone()执行查询语句时,获取查询结果集的第一个行数据,返回一个元组 fetchall()执行查询时,获取结果集的所有行,一行构成一个元组,再将这些元组装入一个元组返回

连接数据库
代码语言:javascript
复制
import pymysql

conn = pymysql.connect(host='localhost', user='baxiang', password='123456', port=3306)
cursor = conn.cursor()
cursor.execute('SELECT VERSION()')
data = cursor.fetchone()
print(''.join(data))
cursor.execute('SHOW DATABASES')
data = cursor.fetchone()
print(''.join(data))
conn.close()
创建数据库
代码语言:javascript
复制
import pymysql

conn = pymysql.connect(host='localhost', user='baxiang', password='123456', port=3306)
cursor = conn.cursor()
cursor.execute('CREATE DATABASE py_test DEFAULT CHARACTER  SET utf8')
cursor.execute('SHOW DATABASES')
dbList = cursor.fetchall()
for db in dbList:
    print('db name:'+''.join(db))
conn.close()

fetchall获取结果集的所有行,一行构成一个元组,再将这些元组装入一个元组返回

创建表
代码语言:javascript
复制
import pymysql

conn = pymysql.connect(host='localhost', user='baxiang', password='123456', port=3306, db='py_test')
cursor = conn.cursor()
sql = '''
CREATE TABLE IF NOT EXISTS exam(
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`score` smallint(5) unsigned NOT NULL,
PRIMARY KEY (`id`)
)COMMENT='学生'
'''
cursor.execute(sql)
cursor.close()
conn.close()
插入数据
代码语言:javascript
复制
import pymysql

conn = pymysql.connect(host='localhost', user='baxiang', password='123456', port=3306, db='py_test')
cursor = conn.cursor()
try:
    cursor.execute("INSERT INTO exam(id,name,score) VALUES (%s,%s,%s)", (2009100981, 'ba', 95))
    conn.commit()
except:
    conn.rollback()

cursor.close()
conn.close()
查询数据
代码语言:javascript
复制
import pymysql

conn = pymysql.connect(host='localhost', user='baxiang', password='123456', port=3306, db='py_test')
cursor = conn.cursor()
try:
    cursor.execute("SELECT * FROM exam WHERE score >= 60")
    dataList = cursor.fetchall()
    for data in dataList:
        print(data)
except Exception as e:
    print(e)

cursor.close()
conn.close()
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018.08.05 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • pymysql
    • Connection
      • 连接数据库
        • 创建数据库
          • 创建表
            • 插入数据
              • 查询数据
              相关产品与服务
              云数据库 SQL Server
              腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档