Python MySQL

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介: Python MySQL

python操作mysql数据库


python标准数据库接口为python DB-API,python DB-API为开发人员提供了数据库应用编程接口

python DB-API使用流程:


  • 引入API模块
  • 获取与数据库的连接
  • 执行SQL语句和存储过程
  • 关闭数据库连接
    使用MySQLdb库
    import MySQLdb
    实例:


import MySQLdb
#打开数据库连接
db=MySQLdb.connect("localhost","testuser","test123","TESTDB",charset='utf8')
#使用cursor()方法获取操作游标
cursor=db.cursor()
#使用execute方法执行SQL语句
cusor.execute("SELECT VERSION()")
#使用fetchone()方法获取一条数据
data=cursor.fetchone()
print("database version :%s"%data)
#关闭数据库连接
db.close()


创建数据库表


cursor.execute("DROP TABLE IF EXISTS EMPLOYEE")
#创建数据表sql语句
sql="""CREATE TABLE EMPLOYEE(
       FIRST_NAME CHAR(20) NOT NULL.
       LAST_NAME CHAR(20),
       AGE INT,
       SEX CHAR(1),
       INCOME FLOAT)"""
cursor.execute(sql)


数据库插入操作


sql="""INSERT INTO EMPLOYEE(FIRST_NAME,
       LAST_NAME.AGE,SEX,INCOME)
       VALUES('Mac','Mohan',20,'M',2000)"""
try:
    #执行sql语句
    cursor.execute(sql)
    #提交到数据库执行
    db.commit()
except:
    db.rollback()


数据库查询操作


sql="SELECT * FROM EMPLOYEE \
     WHERE INCOME > %s" %(1000)
try:
    #执行sql语句
    cursor.execute(sql)
    #获取所有记录列表
    results=cursor.fetchall()
    for row in results:
       fname=row[0]
       lname=row[1]
       age=row[2]
       sex=row[3]
       income=row[4]
       #打印结果
       print "fname=%s,lname=%s,age=%s,sex=%s,income=%s" %\           (fname,lname,age,sex,income)
except:
     print("Error:unable to fecth data")


读取数据


improt pymsql
db=pymysql.connect(host='localhost',user='root',password='test',database='test',port=3306,charset='utf8')
user=pd.read_sql('select * from table',con=db)
db.colse()


SQL函数


聚合函数


AVG(),COUNT(),MAX(),MIN(),SUM(),复制聚合后,为了为聚合的值增加条件选择,使用having语句


转换函数


convert(data_type[(length)],expression[,style])

CONVERT(VARCHAR(10),日期字段名,120) --120 为日期格式YYYY-MM-DD

cast(expression as data_type)

cast与convert区别,convert更多用在时间格式转换,cast更多用在数值类型转换


日期函数


getdate():当前系统日期

dateadd(日期部分,number,date):返回增加数字(number)日期后的date值

datediff(日期部分,date1,date2):返回两个日期的差值

datename(日期部分,date):返回日期中部分字符形式

datepart(日期部分,date):返回日期中部分整数形式

year(date):返回指定日期年份

month(date):返回指定日期月份

day(date):返回指定日期天数


数字函数


abs(num_expr) 返回数值表达式的绝对值。

acos(float_expr) 返回角(以弧度表示),它的余弦值近似于指定的浮点表达式。

asin(float_expr) 返回角(以弧度表示),它的正弦值近似于指定的浮点表达式。

atan(float_expr) 返回角(以弧度表示),它的正切值近似于指定的浮点表达式。

atn2(float_expr1, float_expr2) 返回角(以弧度表示),它的正切值在两个近似的浮点表达式之间。

ceiling(num_expr) 返回大于或等于数值表达式的最小整数。

cos(float_expr) 返回以浮点表达式表示的近似于指定角度(以弧度表示)的余弦三角函数的值。

cot(float_expr) 返回以浮点表达式表示的近似于指定角度(以弧度表示)的余切三角函数的值。

degrees(num_expr)返回数值表达式表示的弧度值对应的度值。

exp(float_expr) 根据指定的近似浮点表达式,返回指数值。

floor(num_expr) 返回小于或等于数值表达式的最大整数

log(float_expr) 根据指定的近似浮点表达式,返回自然对数值。

log10(float_expr) 根据指定的近似浮点表达式,返回以为底的对数。

pi() 返回常量值.141592653589793

power(num_expr,y) 返回幂为y的数值表达式的值。

radians(num_expr) 返回数值表达式表示的度值对应的弧度值。

rand([seed]) 随机返回的到之间的近似浮点值,可以对seed指定为整数表达式(可选)。

round(num_expr,length) 对数值表达式截取指定的整数长度,返回四舍五入后的值。

sign(num_expr) 对正数执行+1操作,对负数和零执行-1操作。

sin(float_expr) 返回以浮点表达式表示的近似于指定角度(以弧度表示)的正弦三角函数的值。

square(float_expr) 返回浮点表达式的平均值。

sqrt(float_expr) 返回指定的近似浮点表达式的平方根。

tan(float_expr) 返回以浮点表达式表示的近似于指定角度(以弧度表示)的正切三角函数的值。


字符串函数


Expr1+expr2 返回两个表达式的组合形式的字符串。

ASCII(char_expr) 返回表达式最左边字符的ASCⅡ代码值。

CHAR(int_expr) 返回到之间的整数表达式的ASCⅡ字符值。如果输入的值不在有效范围内,则返回NULL。

CHARINDEX(‘pattern’,char_expr) 返回字符表达式中指定模式的起始位置。

DIFFERENCE(char_expr1,char_expr2) 根据比较两个字符表达式的相似度,返回到之间的值。表示匹配度最佳。

LEN(char_expr) 返回字符表达式的长度。

LOWER(char_expr) 将字符表达式全部转换为小写。

LTRIM(char_expr) 返回删除掉前面空格的字符表达式。

PATINDEX(’%pattern%’,expr) 返回表达式中模式第一次出现的起始位置。返回表示不存在模式形式。

REPLICATE(char_expr,int_expr) 返回重复指定次数的字符表达式产生的字符串。

REVERSE(char_expr) 反转字符表达式。

RIGHT(char_expr,int_expr) 返回从字符表达式最右端起根据指定的字符个数得到的字符。

RTRIM(char_expr) 返回删除掉其后空格的字符表达式。

SOUNDEX(char_expr) 评估两个字符串的相似度后得到的位代码。

SPACE(int_expr) 返回包含指定空格数的字符串。

STR(float_expr[,length[,decimal]]) 返回浮点表达式的字符串表示法。

STUFF(char_expr1,start,length,char_expr2) 使用字符表达式替换字符表达式的一部分字符,从指定的位置开始替换指定的长度。

SUBSTRING(char_expr,start,length) 返回从字符表达式的指定位置开始,截取指定长度得到的字符集。

UPPER(char_expr) 将字符表达式全部转换为大写。


相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
2月前
|
SQL 关系型数据库 MySQL
MySQL操作利器——mysql-connector-python库详解
MySQL操作利器——mysql-connector-python库详解
529 0
|
29天前
|
关系型数据库 MySQL 数据库
Mysql学习笔记(四):Python与Mysql交互--实现增删改查
如何使用Python与MySQL数据库进行交互,实现增删改查等基本操作的教程。
57 1
|
2月前
|
关系型数据库 MySQL Python
mysql之python客户端封装类
mysql之python客户端封装类
|
2月前
|
关系型数据库 MySQL Python
pymysql模块,python与MySQL之间的交互
pymysql模块,python与MySQL之间的交互
|
2月前
|
SQL 关系型数据库 MySQL
30天拿下Python之使用MySQL
30天拿下Python之使用MySQL
42 0
|
2月前
|
关系型数据库 MySQL 数据管理
pymysql:Python操作MySQL数据库的又一利器
pymysql:Python操作MySQL数据库的又一利器
22 0
|
2月前
|
SQL 关系型数据库 MySQL
Python小技巧——将CSV文件导入到MySQL数据库
Python小技巧——将CSV文件导入到MySQL数据库
41 0
|
3天前
|
SQL 关系型数据库 MySQL
go语言数据库中mysql驱动安装
【11月更文挑战第2天】
16 4
|
1天前
|
SQL 关系型数据库 MySQL
12 PHP配置数据库MySQL
路老师分享了PHP操作MySQL数据库的方法,包括安装并连接MySQL服务器、选择数据库、执行SQL语句(如插入、更新、删除和查询),以及将结果集返回到数组。通过具体示例代码,详细介绍了每一步的操作流程,帮助读者快速入门PHP与MySQL的交互。
6 1
|
27天前
|
存储 关系型数据库 MySQL
Mysql(4)—数据库索引
数据库索引是用于提高数据检索效率的数据结构,类似于书籍中的索引。它允许用户快速找到数据,而无需扫描整个表。MySQL中的索引可以显著提升查询速度,使数据库操作更加高效。索引的发展经历了从无索引、简单索引到B-树、哈希索引、位图索引、全文索引等多个阶段。
58 3
Mysql(4)—数据库索引
下一篇
无影云桌面