python 连接数据库

#Python连接数据库


python 连接数据库_第1张图片
###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))**

你可能感兴趣的:(Python,连接数据库,python,mysql,python,sqlserver,数据库输入中文,mysql,与sqlserver区别,数据库)