金沙糖果派对网站app 1

pymysql完毕对数据库的增加和删除改

import pymysql

conn = pymysql.connect(host='127.0.0.1',port=3306,user='root',password='mysql',db='python_test_1', charset='utf8')

# 通过连接获取游标
cursor = conn.cursor()


# sql = "delete from hero where id = 5;"
# sql = insert into hero (name) values ('西部大坏蛋孙悟空');
sql = "update hero set kongfuid=444 where id = 4;"

row_count = cursor.execute(sql)
print("SQL语句执行影响的行数%d" % row_count)

# 提交数据到数据库
# conn.commit()

# 回滚数据到什么都不做的状态 即撤销刚刚的修改
conn.rollback()

# 关闭游标和连接
cursor.close()
conn.close()

关于提交commit
commit将改正提交到数据库,保存修正

style=”font-size: 14px”>注意pymysql中数据需求手动提交commit手艺保存到数据库中

 
  try:
 
      # 执行SQL语句
 
      cursor.execute(sql)
 
      # 提交到数据库实践
 
      db.commit()
 
  except:
 
      print ‘更新数据退步!’
 
      # 产生错误时回滚
 
      db.rollback()

应用手续:

第二步   Connection对象

1.用以建构与数据库的接连几日

2.创设对象:调用connect()方法

● 参数host:连接的mysql主机,假诺本机是’localhost’

● 参数port:连接的mysql主机的端口,暗许是3306

● 参数db:数据库的称谓

● 参数user:连接的客商名

● 参数password:连接的密码

● 参数charset:通讯采取的编码情势,默许是’gb2312’,要求与数据库成立时内定的编码意气风发致,否则汉语会乱码

举例:conn = pymysql.connect(host=’127.0.0.1′, port=3306, user=’顾客名’,
passwd=’密码’, db=’数据库名’,charset=”utf8″)

pymysql实现数据查询

import pymysql

# 创建和数据库服务器的连接 服务器地址   端口    用户名     密码  数据库名 通信使用字符和数据库字符集一致
conn = pymysql.connect(host='localhost', port=3306, user='root', password='mysql',database='python_test_1', charset='utf8')

# 获取游标
cursor = conn.cursor()

# 执行SQL语句 返回值就是SQL语句在执行过程中影响的行数
sql = """select * from hero;"""

row_count = cursor.execute(sql)
print("SQL语句执行影响的行数%d" % row_count)

# 取出结果集中一行  返回的结果是一行 (1, '妲己', 2)
# print(cursor.fetchone())

# 取出结果集中的所有数据  返回 ((一行数据),(),())
# ((1, '妲己', 2), (2, '李白', 1), (3, '程咬金', 3), (4, '亚瑟', 5), (5, '荆轲', 99))
for line in cursor.fetchall():
    print(line)

# 关闭游标
cursor.close()

# 关闭连接
conn.close()

(1)
什么是 mysql.connector?

cs.close()

第四部   对数据开展操作

cur.execute(“试行语句”)

Connection 对象

  • 用于创设与数据库的总是
    调用pymysql模块中的connect()方法

conn=connect(参数列表)

* 参数host:连接的mysql主机,如果本机是'localhost'
* 参数port:连接的mysql主机的端口,默认是3306
* 参数database:数据库的名称
* 参数user:连接的用户名
* 参数password:连接的密码
* 参数charset:通信采用的编码方式,推荐使用utf8
  • 关闭连接 conn.close()

  • 付给数据 conn.commit()

  • 打消数据 conn.rollback()

  • 经过连接获取游标
    cur = conn.cursor()回来Cursor对象,用于施行sql语句并收获结果

 
  # 创建Sutdent表
 
  cursor.execute(sql)

参数host:连接mysql的主机,倘使本机就用localhost

第一步   安装引进模块

1.安装mysql模块(python3)

pip install pymysql

2.在文书中引入

import pymysql

 数据库编制程序

从眼下我们领略数据库概念包罗数据库文件、服务器和数据库客商端
客商端大家事先曾经用过的有navicat/mysql-client等次第。

难点:
怎么样行使顾客端将100000行数据插入到数据库?

大家会意识只要用事先顾客端大约是不可能完全这些义务的,
因为我们不恐怕去组织出十二分插入10w行数据的SQL。不过,如若大家有贰个作用能够插入后生可畏行数据,依附程序强盛的特征-重复,就能够一举成功的就将10w行数据收入麾下。这种经过运用程序代码的主意去老是数据库服务器,通过和服务器举办交互作用落成对数据库的增加和删除改查的秘籍,就叫做数据库编程。

而此刻攻读的pymysql正是风流潇洒种顾客端。

 
  try:
 
     # 执行SQL语句
 
     cursor.execute(sql)
 
     # 提交修正
 
     db.commit()
 
  except:
 
      print ‘删除数据战败!’
 
      # 发生错误时回滚
 
      db.rollback()

cs = conn.cursor()

(详解)

参数化列表幸免SQL注入

怎么是SQL注入 爆发原因:
后台将客户提交的蕴藏恶意的数额和SQL进行字符串形式的拼接,进而影响了SQL语句的语义,最后发生多少走漏的气象。
假诺制止: sql语句的参数化,
将SQL语句的具备数据参数存在一个列表中传送给execute函数的第2个参数

注意

* 此处不同于python的字符串格式化,必须全部使用%s占位
* 所有参数所需占位符外不需要加引号
from pymysql import connect

def main():

    find_name = input("请输入物品名称:")

    # 创建Connection连接
    conn = connect(host='localhost',port=3306,user='root',password='mysql',database='jing_dong',charset='utf8')
    # 获得Cursor对象
    cs1 = conn.cursor()


    # # 非安全的方式
    # # 输入 " or 1=1 or "   (双引号也要输入)
    # sql = 'select * from goods where name="%s"' % find_name
    # print("""sql===>%s<====""" % sql)
    # # 执行select语句,并返回受影响的行数:查询所有数据
    # count = cs1.execute(sql)

    # 安全的方式
    # 构造参数列表 
    params = [find_name]
    # 执行select语句,并返回受影响的行数:查询所有数据
    count = cs1.execute('select * from goods where name=%s', params)
    # 注意:
    # 如果要是有多个参数,需要进行参数化
    # 那么params = [数值1, 数值2....],此时sql语句中有多个%s即可 

    # 打印受影响的行数
    print(count)
    # 获取查询的结果
    # result = cs1.fetchone()
    result = cs1.fetchall()
    # 打印查询的结果
    print(result)
    # 关闭Cursor对象
    cs1.close()
    # 关闭Connection对象
    conn.close()

if __name__ == '__main__':
    main()

def
createtable(db):
 
  # 使用cursor()方法赢得操作游标 
 
  cursor = db.cursor()
 
  # 假若存在表Sutdent先删除
 
  cursor.execute(“DROP TABLE IF EXISTS
Student”)
 
  sql = “””CREATE TABLE Student (
 
          ID CHAR(10) NOT NULL,
 
          Name CHAR(8),
 
          Grade INT )”””
 
  # 创建Sutdent表
 
  cursor.execute(sql)

“””

指标的章程

● close()关闭

● execute(operation [, parameters ])试行语句,重临受影响的行数

● fetchone()奉行查询语句时,获取查询结果集的首先个行数据,再次回到贰个元组

● next()试行查询语句时,获取当前进的下意气风发行

● fetchall()实行查询时,获取结果集的富有行,大器晚成行构成一个元组,再将那个元组装入三个元组重临

● scroll(value[,mode])将行指针移动到有个别地点

                ○ mode表示移动的秘诀

                ○ mode的暗中认可值为relative,表示依据当前行移动到value,value为正则向下活动,value为负则向上移动

               ○ mode的值为absolute,表示依照第一条数据的岗位,第一条数据的职责为0

pymysql的使用

引进模块

from pymysql import connect

def
main():
 
  db = connectdb()    # 连接MySQL数据库

# 打字与印刷查询结构

第三步   cursor对象

1.执行sql语句

2.创立对象:调用Connection对象的cursor()方法

例如:cur=conn.cursor()

Cursor游标对象

  • 获取Cursor对象

      # 调用Connection对象的cursor()方法    
      cur =conn.cursor()
    

目标:
实施sql语句(使用频度最高的讲话为select、insert、update、delete)

  • 行使游标实行SQL语句

execute(operation [, parameters ])
实践SQL语句,再次回到受影响的行数,首要用于施行insert、update、delete语句,也得以试行create、alter、drop等话语

  • 关闭游标 cur.close()

  • 收获结果聚焦的一条

    cur.fetchone()归来四个元组 形如
    (1,’己妲’,18)

  • 收获结果集中的富有

    cur.fetchall()试行查询时,获取结果集的有着行,生机勃勃行构成叁个元组,再将这几个元组装入三个元组重返形如((1,’公孙离’,20),(2,’己妲’,18))

if
__name__ == ‘__main__’:
 
  main()

“””

风流罗曼蒂克体化步骤(举例)

# 1 . 引包

import pymysql

# 2. 创设连接

conn = pymysql.connect(host=’127.0.0.1′, port=3306, user=’顾客名’,
passwd=’密码’, db=’数据库名’,charset=”utf8″)

# 3 . 创建对象

cur = conn.cursor()

# 4 . 推行语句

cur.execute(“delete from user where id=1”)

# 5 . 提交

conn.commit() 提交(除查询,须求交给数据。卡塔 尔(英语:State of Qatar)

# 6 . 关闭连接

cur.close()

conn.close()


 


if
__name__ == ‘__main__’:
 
  main() 

功能:用于实行sql语句,常用的是增加和删除改查,获取cursor对象,调用Connection对象的cursor()方法cs=conn.cursor()

对象的办法

● close()关闭连接

● commit()事务,所以供给交给才会收效

● rollback()事务,丢掉此前的操作

● cursor()再次回到Cursor对象,用于施行sql语句并赢得结果

 Python 中操作 MySQL 步骤

哪些晓得连接 connection 和 游标 cursor
connection就像连接出发地和目标地的 高等第公路cursor就如在高速度公路上的运货汽车-拉货 我们利用游标就能够成功对数据的操作
当大家完结操作完毕后就可以告生龙活虎段落运货汽车,然后公路再甘休使用。

import
mysql.connector

if __name__ == “__main__”:

对象的习性

● rowcount只读属性,表示近日二次execute()实行后受影响的行数

● connection得到当前三番一回对象

(3) MySQLdb 的使用:

result = cs.fetchone()

$
tar zxvf MySQL-python-*.tar.gz
$
cd MySQL-python-*
$
python setup.py build
$
python setup.py install 

参数database:数据库名称

(2) 源码安装 MySQLdb:

fetchall()
实施查询时,获取结果集的享有行数,生龙活虎行构成二个元祖,再讲那些元组装三个元组再次来到

 
  # SQL 更新语句
 
  sql = “UPDATE Student SET Grade = Grade + 3 WHERE ID = ‘%s'” %
(‘003’)

for i in range:

import
pymysql  
  
#
展开数据库连接(ip/数据库客户名/登入密码/数据库名卡塔 尔(英语:State of Qatar)  
db
= pymysql.connect(“localhost”, “root”, “root”, “test”)  
#
使用 cursor() 方法创造二个游标对象 cursor  
cursor
= db.cursor()  
  
#
SQL 更新语句  
sql
= “UPDATE user SET name = ‘Bob’ WHERE id = 1”  
try:
 
 
  # 执行SQL语句  
 
  cursor.execute(sql)  
 
  # 提交到数据库实施  
 
  db.commit()  
except:
 
 
  # 发生错误时回滚  
 
  db.rollback()  
 
   
#
关闭数据库连接  
db.close()
 

1、创设Connection对象,用于营造与数据库的接连几日,创设对象调用connect()方法conn=connect

(3)
使用 PyMySQL:

def main():

 
  # 假使存在表Sutdent先删除
 
  cursor.execute(“DROP TABLE IF EXISTS Student”)
 
  sql = “””CREATE TABLE Student (
 
          ID CHAR(10) NOT NULL,
 
          Name CHAR(8),
 
          Grade INT )”””

Cursor对象

import
MySQLdb

2、对象的办法

cursor用来试行命令的主意:
callproc(self,
procname,
args):用来执行存储进程,选择的参数为存储进程名和参数列表,再次来到值为受影响的行数
execute(self,
query,
args):实践单条sql语句,接纳的参数为sql语句小编和行使的参数列表,重临值为受影响的行数
executemany(self,
query,
args):推行单挑sql语句,不过再一次试行参数列表里的参数,重回值为受影响的行数
nextset(self):移动到下一个结果集

参数user:连接的顾客名

 
  # SQL 查询语句
 
  #sql = “SELECT * FROM Student \
 
  #    WHERE Grade > ‘%d'” % (80)
 
  sql = “SELECT * FROM Student”
 
  try:
 
      # 执行SQL语句
 
      cursor.execute(sql)
 
      # 获取具有记录列表
 
      results = cursor.fetchall()
 
      for row in results:
 
          ID = row[0]
 
          Name = row[1]
 
          Grade = row[2]
 
          # 打印结果
 
          print “ID: %s, Name: %s, Grade: %d” % \
 
              (ID, Name, Grade)
 
  except:
 
      print “Error: unable to fecth data”

execute(operation,[,parameters])
推行语句,返回受影响的函数,首要用来实施insert,update,delete语句,也可用来执行create,alter,drop等

在Python代码 

Python能源分享群:484031800

  1. PyMySQL 的使用

cursor() 重回Cursor对象,用于施行sql语句并获得结果

import
pymysql  
  
#
展开数据库连接(ip/数据库客商名/登入密码/数据库名卡塔尔国  
db = pymysql.connect(“localhost”, “root”,
“root”, “test”)  
#
使用 cursor() 方法创设二个游标对象 cursor  
cursor = db.cursor()  
  
#
使用 execute()  方法实施 SQL 查询  
cursor.execute(“SELECT
VERSION()”)  
#
使用 fetchone() 方法得到单条数据.  
data = cursor.fetchone()  
print(“Database
version : %s ” % data)  
  
#
关闭数据库连接  
金沙糖果派对2015cc,db.close()
  

connection 取妥善前连连对象from pymysql import *

pip
install mysql-connector-python
pip
install MySQL-python

金沙糖果派对网站app 1

 
  #sql = “INSERT INTO Student(ID, Name, Grade) \
 
  #    VALUES (‘%s’, ‘%s’, ‘%d’)” % \
 
  #    (‘001’, ‘HP’, 60)
 
  try:
 
      #金沙糖果派对网站app, 执行sql语句
 
      cursor.execute(sql)
 
      # 提交到数据库奉行
 
      db.commit()
 
  except:
 
      # Rollback in case there is any error
 
      print ‘插入数据失利!’
 
      db.rollback()

安装:pip3 install pymysql

admin

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注