數據庫補充複習(二),建立數據庫鏈接

數據庫補充複習(二),建立數據庫鏈接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)
相關文章
相關標籤/搜索