用python连接mysql数据库,原生sql建表
- import MySQLdb #mysqlclient 如果是mysqlclient那就导入这个包
- import pymysql #pymysql 如果是pymysql 那就导入这个包
-
- '''
- 两个包使用方法类似
- conn = MySQLdb.connect(host='数据库IP地址',port=3306,
- user='账户',password='密码',
- database='数据库',charset='utf8')
- print(conn)#返回一个数据库对象
- '''
-
-
-
- conn = pymysql.connect(host='数据库IP地址',port=3306,
- user='用户',password='用户密码',
- database='数据库',charset='utf8')
- print(conn)#返回一个数据库对象
-
– python连接数据库标准写法
–增加数据
- import MySQLdb #mysqlclient
- import pymysql #pymysql
-
- '''
- conn = MySQLdb.connect(host='47.111.252.112',port=3306,
- user='chenmeng',password='Chenmeng.123',
- database='school',charset='utf8')
- print(conn)
- '''
-
- #1.创建数据库连接
- conn = pymysql.connect(host='47.111.252.112',port=3306,
- user='chenmeng',password='Chenmeng.123',
- database='school',charset='utf8') #autocommit=True
-
- #print(conn)
-
-
- try:
- #2.获取游标对象(通过游标对象可以向Mysql数据库发出SQL语句)
- with conn.cursor() as cursor:
-
- #3.通过游标执行SQL语句并获取结果
- restult = cursor.execute('insert into tb_student values(1031,"唐冰玉","女","98-2-23","2")')
- #在sql语句中如果使用变量可以使用占位符%s ,这个不是格式化字符串
- #假设有五个变量,id,name,sex,birth,collid
- # restult = cursor.execute('insert into tb_student values(%s,%s,%s,%s,%s)',(id,name,sex,birth,collid))
-
- if restult == 1:
- print('新增数据成功!')
- conn.commit()手动模式添加 如果autocommit=true的话,就不需要使用commit方法!
-
-
- #4.回滚(撤销操作)
- except MySQLdb.MySQLError as err:
- print(err)
- conn.rollback()
-
-
- #5.释放数据库连接
- finally:
- conn.close()
-
– 删除数据
- import pymysql #pymysql
-
- #1.创建数据库连接
- conn = pymysql.connect(host='47.111.252.112',port=3306,
- user='chenmeng',password='Chenmeng.123',
- database='school',charset='utf8') #autocommit=True
-
- #print(conn)
- no = int(input('id:'))
-
- try:
- #2.获取游标对象(通过游标对象可以向Mysql数据库发出SQL语句)
- with conn.cursor() as cursor:
- #3.通过游标执行SQL语句并获取结果
- restult = cursor.execute('delete from tb_student where id=%s',(no,))
- if restult == 1:
- print('删除数据成功!')
- conn.commit()
- except:
- #4.回滚(撤销操作)
- conn.rollback()
-
-
- #5.释放数据库连接
- finally:
- conn.close()
-
–查询数据
- import pymysql
-
-
- conn = pymysql.connect(host='47.111.252.112',port=3306,
- user='chenmeng',password='Chenmeng.123',
- database='school',charset='utf8') #autocommit=True
-
-
-
- try:
-
- with conn.cursor(pymysql.cursors.DictCursor) as cursor:
- #这里如果不指定的话,默认是元祖型游标
- cursor.execute('select * from tb_student')
- row = cursor.fetchone()#返回一条数据
- print(row)
-
-
- finally:
- conn.close()
-
- import psycopg2
-
-
- class CreateTable(object):
- '''pgsql ORM'''
-
- def __init__(self, database, user, password, host, port=5432, **kwargs):
- self._conn = psycopg2.connect(database=database,
- user=user,
- password=password,
- host=host,
- port=port,
- **kwargs)
-
- self._cursor = self._conn.cursor()
-
- @property
- def conn(self):
- return self._conn
-
- @conn.setter
- def conn(self, value):
- self._conn = value
- self._cursor = self._conn
-
- @property
- def cursor(self):
- return self._cursor
-
- def to_sql(self, sql):
- try:
- self._cursor.execute(sql)
- except Exception, e:
- print u'error', e
-
- def save(self):
- self._conn.commit()
-
- def __call__(self, sql, *args, **kwargs):
- self.to_sql(sql)
- self.save()
-
- def __del__(self):
- self._conn.close()
- self._cursor.close()
-
-
- if __name__ == '__main__':
- print 1
- # conn = psycopg2.connect(database="scanner", user="ifns", password="", host="192.168.1.60", port="5432")
- # cursor = conn.cursor()
- # cursor.execute("CREATE TABLE test_conn (id SERIAL PRIMARY KEY, name text)")
- # conn.commit()
- # cursor.close()
- # conn.close()
-