欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

python 连接数据库

程序员文章站 2024-03-13 17:22:27
...

Python连接数据库


python 连接数据库

1.连接sqlserver

  import pymssql
  #获取连接
  #server = '127.0.0.1'
  #user='sa'
  #password = '123456'
  #database:数据库名字
  conn = pymssql.connect(server, user, password, database='sql')
  #获取游标
  cursor = conn.cursor()
  #创建表格
  cursor.execute("""
  IF OBJECT_ID('record','U',IS NOT NULL
      DROP TABLE table(
      id INT NOT NULL,
      Name VARCHAR(100),
      Recordtime VARCHAR(100),
      PRIMARY KEY(id)
      )
  """)
  #查询数据,若查全部就用*
  cursor.ececute('SELECT id FROM table')
  #打印出查询的值
  row= cursor.fetchone()
  #按条件查询
  curson.execute('SELECT * FROM table WHERE Name = %s',(u'小明'))
  row = cursor.fetchall()
  #若查询的那行输出为none,转换格式
  if row[0] is None:
    row0= list(row)
    row0[0]=0
    row=tuple(row0)
  #插入数据
  cursor.executemany("INSERT INTO table VALUES (%d,%s,%s)",[1,u'小明''2018-08-28']
  #必须调用commit()来保持你数据的提交如果没有,将自动提交设置为true
  conn.commit()
  #关闭游标关闭数据库
  cursor.close()
  conn.close()

2.连接mysql

    import pymysql
    server = '127.0.0.1'
    user = 'root'
    password = '123456'
    conn = pymysql.connect(server,user,password,database = 'record_data2')#获取连接
    cursor = conn.cursor ()#获取游标
    #"**ENGINE=InnoDB DEFAULT CHARSET=utf8**"-创建表的过程中增加这条,中文就不是乱码
    #创建表
    '''
    cursor.execute("""
    CREATE TABLE record_person(
        id INT NOT NULL,
        Recordtime VARCHAR(100),
        Come_person INT NOT NULL ,
        Leave_person INT NOT NULL,
        PRIMARY KEY(id)
        )
         ENGINE=InnoDB DEFAULT CHARSET=utf8
    """)
    '''
    #查询数据
    cursor.execute('SELECT max(id) FROM record_person')
    row= cursor.fetchone()
    if row[0] is None:
        row0= list(row)
        row0[0]=0
        row=tuple(row0)
    #插入数据,注:与sqlserver有些区别
    cursor.execute("INSERT INTO record_person VALUES('%d','%s','%d','%d')" %(int(row[0])+1,time,person_c,person_l))
    #提交数据,才会写入表格
    conn.commit()
    #关闭游标关闭数据库
    cursor.close()
    conn.close()


注:mysql与sqlserver区别

1.python 安装pymssql,pymysql:直接pip install – 就ok
2.目前在python中连接sqlserver数据库,安装pymssql,不支持Py3.6版本。pymysql 都支持
3.在数据库中如果想要添加中文或者想从表格返回中文时,在建表格时添加一行:ENGINE=InnoDB DEFAULT CHARSET=utf8,就可输出汉字(在mysql数据库亲测有效)。
4.mysql与sqlserver 插入数据时候语法有些区别:
mysql:
cursor.executemany(“INSERT INTO table VALUES (%d,%s,%s)”,[1,u’小明’,’2018-08-28’]
sqlserver:
cursor.execute(“INSERT INTO record_person VALUES(‘%d’,’%s’,’%d’,’%d’)” %(int(row[0])+1,time,person_c,person_l))**