亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

MySQL與Python的交互學習筆記

標簽:
MySQL

MySQL Connector

官方的驱动模块,兼容性好

创建连接

1、import mysql.connector

    con=mysql.connector.connect(

    host="localhost",port="3306",

    user = 'root',password="abc1",

    database="demo");

2、import mysql.connector

    config={

    "host":"localhost",

    "port":3306,

    "user" :'root',

    "password":"abc1",

    "database":"demo"};

con=mysql.connector.connect(**config)

利用游标来执行SQL语句,而查询的结果集也保存在游标中

cursor=con.cursor()

cursor.execute(sql语句)

SQL语句是解释型语言,拼接SQL语句的时候,容易被注入恶意的SQL语句。

SQL预编译机制

预编译就是将数据库提前把SQL语句编译成二进制,反复执行童一条SQL语句的效率就会提高。

SQL语句被编译后,传入参数都被当做字符串处理,数据库不会解释注入SQL语句。

防注入

sql="SELECT COUNT(*) FROM t_user WHERE username=%s AND AES_DECRYPT(UNHEX(password),‘helloword’)=%s";

cursor.execute(sql,(username,password));

print(cursor.fetchone()[0])

事务控制

con.start_transaction([事务的隔离级别])

con.commit()

con.rollback()

异常处理

try:

    ......

except Exception as e:

    ..[con.rollback()]

finally:

    if "con" in dir():con.close()

数据库最昂贵的是数据库连接,并发尤为突出

TCP连接需要三次握手,四次回首,然后数据库还要验证用户信息。

数据库连接池:预先创建一些数据库连接,然后缓存,避免程序语言反复创建

import mysql.connector.pooling

config={...}

pool=mysql.connector.pooling.MySQLConnectionPool(**config,pool_size=10)

con=pool.get_connection()

EXECUTEMANY()函数可以反复执行一条SQL语句。

cursor.executemany(sql,data)

create table t_emp_new AS (select * from t_emp)复制数据表

create table t_emp_new like t_emp 复制数据表结构(内容空)

cursor.fetchall() 查出全部数据




點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消