''' 复习 数据库操作-笔记 ''' ''' 创建一个test库 create database test; 授权一个用户 grant all privilges on *.* to 'chen'@'%' identified by '123456' with grant option; 创建表 create table student(id int not null); 查询 select * from table_name where 条件1 and 条件2 增加 insert into table_name (id,name,age,sex) values (1,'ling',25,'M') 改 update table_name set id=10 删除 delete from table_name where 条件判读( name='ling' ) drop table table_name truncate table table_name 联合查询 select a.id, b.name from A a join B b on a.id = b.xid 创建索引 create index idx_库名_表名_列名1_列名2(列名1,列名2) 查看sql 是否走索引 ''' ''' 链接数据库 Python2 使用的是MySQLdb Python3 使用的pymysql pip安装 1.创建链接和游标 注意:在mysql链接中,尽量使用一个链接,确保mysql的并发数 conn = pymysql.connect(host='',port='',user='',passwd='',db='') cus = conn.course() 2.执行sql sql = "select * from Student;" cus.execute(sql) cus.fetchone() 获取单个 返回tuple cus.fetchall() 获取多个 返回list(单个元素是tuple) cus.fetchmany(size=n) 3.关闭游标和链接 cus.close() conn.close() 注意结合try exception finally的使用 ''' ''' SQLAlchemy 1.创建引擎 engine=create_engine('mysql+pymysql://username:password@hostname:port/dbname') 2.创建session DbSession = sessionmaker(bind=engine) session = DBsession() 3.创建表 a.获得engine b.metadata = MetaData(engine) c.student = Table('表名',metadata, Column('id',Integer,primary_key=True), ) d.metadata.create_all() # 以存在时不操作 4.增加 a.先要有一个模型 Base = declarative_base(0) class Student(Base): __tablename__ = 'student' id = Column(Integer,primary_key=True) anme = Column(String(100),primary_key=True) b.导入模型类,实例化类 c.session.add(单实例) session.add_all([实例1,实例2]) 5.查询 filter 和 filter_by 的区别 filter : 可以使用< > = ,列表必须是 表.列 不支持组合查询 等于是== session.query(Student).filter(Student.id>100).first() session.query(Student).filter(Student.id>100).fillter(name="aa") filter_by 可以直接使用列 不支持< > = 等于是== 可以组合查询 session.query(Student).filter_by(id==10).first() session.query(Student).filter_by(id==10 and name=='ling').first() like select * from student where name like "%ling%" 模糊查询含有ling的关键字 模糊查询 session.query(Student).filter(Student.name like('%ling%')) 获取数据的时候有两个方法: one() tuple all() list(单个元素是tuple) 6.更新 1.先查出来 2.更新一下类对应的属性值 3.session.commit() my_student = sesion.query(Student).filter(Student.name) stu1.name = 'test' sesion.commit() 7.删除 1.先查出来 2.直接调用delete()方法就可以了 3.提交一下 8.统计,分组,排序 统计:count() 只要在查出来以后,把one或者all替换成count() 统计有多少个 分组:group_by '''
python 笔记 之 复习-数据库操作-笔记
猜你喜欢
转载自my.oschina.net/u/3824134/blog/1811768
今日推荐
周排行