MYSQL数据增删查改select_sql
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了MYSQL数据增删查改select_sql,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2598字,纯文字阅读大概需要4分钟。
内容图文
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` (" "`id` INT AUTO_INCREMENT PRIMARY KEY COMMENT 'id', " "`name` VARCHAR(128) COMMENT '名字', " "`url` VARCHAR(255) COMMENT '官网'" ")"
cursor.execute(create_table_sql)
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)
创建表结构和添加字段索引个人建议客户端手动操作,一行一行代码操作效率实在太低。这边公众号回复"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语句。
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()
?
?
内容总结
以上是互联网集市为您收集整理的MYSQL数据增删查改select_sql全部内容,希望文章能够帮你解决MYSQL数据增删查改select_sql所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。