温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Python数据库MYSQL的用法讲解

发布时间:2021-09-16 10:01:51 来源:亿速云 阅读:161 作者:chen 栏目:大数据

本篇内容主要讲解“Python数据库MYSQL的用法讲解”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python数据库MYSQL的用法讲解”吧!

1、创建数据库连接

import mysql.connector
config = {
    'host': 'localhost',
    'port': '3306',
    'user': 'root',
    'password': '',
    'database': 'python'
}
con = mysql.connector.connect(**config)
cursor = con.cursor() #游标,用于执行sql语句

2、创建数据表

create_table_sql = "CREATE TABLE `browser` (">

3、创建索引

_index1 = "ALTER TABLE `browser` ADD UNIQUE INDEX name(name)" #唯一索引
_index2 = "CREATE INDEX url ON `browser`(url)" #普通索引
for sql in [_index1, _index2]:
   cursor.execute(sql)

Python数据库MYSQL的用法讲解

创建表结构和添加字段索引个人建议客户端手动操作,一行一行代码操作效率实在太低。这边公众号回复"mysql"获取相关资源。

4、数据增删查改

#插入单条数据
insert_sql = "INSERT INTO `browser`(name, url) VALUES (%s, %s)"
values = ('Chrome', "http://www.google.cn/chrome/")
cursor.execute(insert_sql, values) 

#插入多条数据
values = [
    ('Chrome', "http://www.google.cn/chrome/"),
    ('Firefox', "http://www.firefox.com/"),
    ('Safari2', "https://www.apple.com.cn/safari/")
]
cursor.executemany(insert_sql, values) 

#查询数据
select_sql = "SELECT * FROM `browser`"
cursor.execute(select_sql)
print(cursor.fetchone()) #获取单条数据
print(cursor.fetchall()) #获取全部数据

#更新数据
update_sql = "UPDATE `browser` SET `url`='http://www.firefox.com.cn' WHERE `name`='Firefox';"
cursor.execute(update_sql)

#删除数据
delete_sql = "DELETE FROM `browser` WHERE `name` = %s"
cursor.execute(delete_sql, ['Safari'])

5、关于抵御注入攻击

由于Sql语句是解释性语言,所以在拼接Sql语句的时候,容易被注入恶意的Sql语句。

sql语句编译过程中,关键字被解析过,所以向编译后的sql语句传入参数,都被当字符串处理,数据库不会解析其中注入的sql语句。

Python数据库MYSQL的用法讲解

6、事务控制与异常处理

try:
    con.start_transaction()
    cursor = con.cursor()
    delete_sql = "DELETE FROM `browser` WHERE `name` = %s"
    cursor.execute(delete_sql, ['Firefox'])
except Exception as e:
    con.rollback() #回滚
else:
    con.commit() #提交

7、实现数据库连接池

如果每次进行操作前都去做连接请求,是非常消耗资源的,尤为考虑到并发问题的时候。

数据库连接池预先创建出一些数据库连接,然后缓存起来,避免出现重复创建和销毁连接付出昂贵的代价,很好的解决这个问题。

import mysql.connector.pooling
config = {...}
pool = mysql.connector.pooling.MySQLConnectionPool(
    **config,
    pool_size=10
)
con_pool = pool.get_connection()

到此,相信大家对“Python数据库MYSQL的用法讲解”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI