python与数据库操作

1、启动SQL服务:net start mysql

2、登录MYSQL数据库>mysql -h localhost -u root -p

3、创建数据库:CREATE DATABASE [IF NOT EXISTS] <数据库名>;

4、创建表:-》USE test_db;

     ---》CREATE TABLE tb_emp1{字段}

5、事务机制可以保持数据一致性,具有4个属性:原子性,一致性,隔离性,持久性

6、内外连接区别:

(1)内连接:组合两个表中的记录,返回关联字段相符的记录,即返回两个表的交集  inner  join ....on....

select * from a_table a inner join b_table b on a.a_id = b.b_id;

(2)左(外连接):left join on / left outer join on:左外连接中左表记录全部展示,右表只显示符合搜索条件的记录

语句:select * from a_table a left join b_table b on a.a_id = b.b_id;

(3)右(外连接):right join on / right outer join on:右外连接右边全部展示,左表只显示符合搜索条件的记录

语句:select * from a_table a right outer join b_table b on a.a_id = b.b_id;

7、如果需要将任意值转化为字符串用str()或repr(),repr()转化为供解释器阅读的形式

8、封装数据库相关操作

import pymysql


class Dbhelper(object):
    def __init__(self,host,user,password,port,database):
        self.host=host
        self.user=user
        self.password=password
        self.port=port
        self.database=database
  #连接数据库
    def get__conn(self):
        conn=pymysql.connect(host=self.host, user=self.user, password=self.password, db=self.database)
        cur=conn.cursor()
        return conn,cur
#执行sql语句,主要用来做插入操作
def exec_data(self,sql): conn, cur = self.get__conn() try: cur.execute(sql) conn.commit() except: print("执行失败") conn.rollback() conn.close() #查询数据库所有行 def selectall(self,sql): conn,cur=self.get__conn() data=None try: cur.execute(sql) data=cur.fetchall() except: print("查询失败") conn.close() return data def __del__(self): conn,cur = self.get__conn() conn.close() cur.close()

举例使用:

import SQL1

if __name__=="__main__":
    client=SQL1.Dbhelper('192.168.207.16','root','123456','3306','test')
   #sql拼接用repr,将字符串原样输出 sql
=' insert into students(name,age,sex) values(%d,%s,%s)'%(10,repr('che'),repr('girl')) sql1='select * from students' client.get__conn() result=client.exec_data(sql) res=client.selectall(sql1) for data in res: print("%s %s %s"%(data[0],data[1],data[2]))

 

posted on 2019-09-09 16:59  ChanXM  阅读(210)  评论(0)    收藏  举报

导航