数据库补充复习(二),建立数据库链接

数据库补充复习(二),建立数据库链接1.注:连表 left join on    表1 left join 表二 on    若是表1中的数据多,表2少,就用null补    right join    inner join 只要有null,那么整行数据就会被舍弃    平均值:avg获取平均值    临时表:查询操做的结果会以临时表的状态呈现(1)子查询:    select(select caption from 表 where cid=score.sid limit 0,1),'shuxue',1,sid,num from score;(2)表的关联:2.数据库链接(1)正常链接操做    #author: wylkjj    #date:2019/5/23    import pymysql    #建立链接    conn = pymysql.connect(host="127.0.0.1",port=3306,user="root",                           password="1234",db="jsp02",charset='utf8')    #建立游标    cursor = conn.cursor()    #执行sql,并返回收影响行数    effect_row = cursor.execute("insert into users(UserID,UserName,UserPwd,UserAnnCount,UserPhone) "                                "values('201145','ericw','123456','2','123455467')")    #提交,否则没法保存新建或者修改的数据    conn.commit()    #关闭游标    cursor.close()    #关闭链接    conn.close()(2)变量操做    import pymysql    #建立链接    conn = pymysql.connect(host="127.0.0.1",port=3306,user="root",                           password="1234",db="jsp02",charset='utf8')    #建立游标    cursor = conn.cursor()    #执行sql,并返回收影响行数    #第一种方式字符串拼接,能够运行可是严令禁止使用,由于会形成sql注入    inp=input('请输入name:')    sql = "insert into user(name) values ('%s')"    sql = sql %(inp,) #对sql语句的输入进行格式化(字符串拼接)    r = cursor.execute(sql)    #第二种方式参数传递    inp=input('请输入name:')    r = cursor.execute("insert into user(name) values (%s)",inp)#内部机制会自动进行参数传递    #提交,否则没法保存新建或者修改的数据    conn.commit()    #关闭游标    cursor.close()    #关闭链接    conn.close()(3)cursor.executemany() 内部作了循环可进行多条语句插入    l=[        ('123',12,'adsasd'),        ('123',10,'adsasd'),        ('123',102,'adsasd')    ] #列表    r=cursor.executemany("insert into user(name) values (%s)",l)    #其它均同样(4)增删改查操做同以前的同样    execute()进行查找的时候返回的是数据的条数    注:execute()执行sql语句后用fetchall()去内存取出并打印数据    fetchall()查找并打印全部数据条数,并以元组方式打印(要会,重要)    fetchone()第一条数据(要会,重要)    fetchmoney(3)取三条,可任意取    注:移动指针所在位置    scroll(1,mode='relative')#相对当前位置移动,-1就是后移动    scroll(2,mode='absolute')#相对绝对位置移动(5)sql注入:注释漏洞 --    ('eric" or 1=1 -- ',123456)#要加空格,不然不知足注释条件(6)游标参数    cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)    查询操做的返回值就会从默认的元组变成字典形式打印(7)信息的ID,插入数据时所在第几条数    nid = cursor.lastrowid    print(nid)#注:若是插入多条数据,只返回最后一条的ID(8)反射:    #author: wylkjj    #date:2019/5/26    from src import comments    # comments.add()#正常状况下    #反射    func_name = 'add'#comments中的函数add    func = getattr(comments,func_name)    func()(9)经过字符串动态导入模块    model = 'src.comments'    func_name = 'add'    import importlib    m=importlib.import_module(model)    func=getattr(m,func_name)    func()    print(m)
相关文章
相关标签/搜索