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]))