zoukankan      html  css  js  c++  java
  • pymysql

    一IDE 可视化工具

    二 数据库备份

    三pymysql的使用

    一IDE 可视化工具

    生产环境还是推荐使用mysql命令行,但为了方便我们测试,可以使用IDE工具

    下载链接:https://pan.baidu.com/s/1bpo5mqj

    掌握:
    #1. 测试+链接数据库
    #2. 新建库
    #3. 新建表,新增字段+类型+约束
    #4. 设计表:外键
    #5. 新建查询
    #6. 备份库/表
    
    #注意:
    批量加注释:ctrl+?键
    批量去注释:ctrl+shift+?键
    View Code

    二数据库备份

    1.物理备份:直接复制数据库文件,适用于大型数据库环境,但不能恢复到异构系统中。

    2.逻辑备份:备份的是建表、建库、出入等操作所执行的SQL 语句,适用于中小型数据库,效率相对比较低。

    3.导出表:将表导入到文本文件中。

    使用mysqldump实现逻辑备份:

     mysqldump -h 服务器 -u用户名 -p密码 数据库名 > 备份文件.sql
    # 备份单个数据库:
    # mysqldump -uroot -p123456. day47 > D:47.sql
    # 备份多个数据库
    # mysqldump -uroot -p123456. --databases day47 db43 db42 > D:47_43_42.sql
    #备份所有数据库
    # mysqldump -uroot -p123456. --all-databases > D:all.sql
    
    # 把数据引入数据库内
    # (方法一)mysql -uroot -p123456. day47< D:47.sql
    # (方法二)use database day47
    SET SQL_LOG_BIN=0;#停止使用日志文件
    # source 需要导入数据库的地址
    #导入很多数据库
    # mysql -uroot -p123456. < D:47_43_42.sql
    
    注:这些都是在终端的界面上使用

    数据库里面的表操作:

    # 关于表的操作(把表导出来需要配置下:在 secure_file_priv='E:\')
    # 导出表
    # select * from  user into outfile'E:userinfo.txi' fields terminated by ',' lines terminated by '
    ';
    # 导入表
    load data infile '文件的地址'
    into table school.student1
    fields terminated by ','#定义字段分隔符
    optionally enclosed by '"'#定义字符串使用什么符号括起来
    lines terminated by '
    '; #定义换行符

    三 pymysql 的使用

    1 基本使用

    #1 基本使用
    # import pymysql
    # conn=pymysql.connect(host='localhost',user='root',password='',database='day47')#链接导数据库
    # cursor=conn.cursor() #拿到游标,即mysql >
    #
    # sql='select * from user where id>1;'
    # rows=cursor.execute(sql) #拿到受影响的行数
    # print('%s rows in set (0.00 sec)' %rows)
    #
    # cursor.close()
    # conn.close()

    2 小练习(判断是否登录成功)

    # import pymysql
    # user=input('用户名>>: ').strip()
    # pwd=input('密码>>: ').strip()
    #
    # #链接,拿到游标
    # conn=pymysql.connect(host='localhost',user='root',password='',database='day47')
    # cursor=conn.cursor() #拿到游标,即mysql >
    #
    # #执行sql
    # sql='select * from user where user="%s" and password="%s";' %(user,pwd)
    # print(sql)
    # rows=cursor.execute(sql) #拿到受影响的行数
    # # print('%s rows in set (0.00 sec)' %rows)
    # cursor.close()
    # conn.close()
    #
    # if rows:
    #     print('登录成功')
    # else:
    #     print('登录失败')

    3 sql 注入及解决方案

    #sql注入
    # import pymysql
    # user=input('用户名>>: ').strip()
    # pwd=input('密码>>: ').strip()
    # conn=pymysql.connect(host='localhost',user='root',password='',database='day47')
    # cursor=conn.cursor()
    #
    # sql='select * from user where user="%s" and password="%s";' %(user,pwd)
    # print(sql)
    # rows=cursor.execute(sql)
    # cursor.close()
    # conn.close()
    # if rows:
    #     print('登录成功')
    # else:
    #     print('登录失败')
    #解决sql注入
    # import pymysql
    # user=input('用户名>>: ').strip()
    # pwd=input('密码>>: ').strip()
    # conn=pymysql.connect(host='localhost',user='root',password='',database='day47')
    # cursor=conn.cursor()
    #
    # sql='select * from user where user=%s and password=%s;'
    # rows=cursor.execute(sql,[user,pwd])
    # print(rows)
    # cursor.close()
    # conn.close()
    # if rows:
    #     print('登录成功')
    # else:
    #     print('登录失败')

    4 增删改语句

    # import pymysql
    # conn=pymysql.connect(host='localhost',user='root',password='',database='day47',charset='utf8')#设置charset后可以输入中文
    # cursor=conn.cursor()
    # sql='insert into user(user,password) values(%s,%s);'
    # rows=cursor.execute(sql,('alex','123'))#插入单条数据
    # rows=cursor.executemany(sql,[('yuanhao','123'),('laowu','123'),('kgf','12323')])#插入多个数据
    # print('%s row in set (0.00 sec)' %rows)
    # conn.commit()#这个是把数据从内存放到数据库里
    # cursor.close()
    # conn.close()

    5查数据

    # 查:fetchone,fetchmany,fetchall
    
    # import pymysql
    # conn=pymysql.connect(host='localhost',user='root',password='',database='day47',charset='utf8')
    # cursor=conn.cursor()
    # sql='select * from user;'
    # rows=cursor.execute(sql)
    #查单条
    # res1=cursor.fetchone()
    # res2=cursor.fetchone()
    # res3=cursor.fetchone()
    # print(res1[0])
    # print(res2)
    # print(res3)
    
    #查多条
    # print(cursor.fetchmany(3))
    # print(cursor.fetchone())
    
    #查所有
    # print(cursor.fetchall())
    # print(cursor.fetchone())
    
    #光标的移动
    # print(cursor.fetchall())
    # cursor.scroll(1,mode='absolute')#光标移动绝对位置
    # print(cursor.fetchone())
    # cursor.scroll(3,mode='absolute')
    # print(cursor.fetchone())
    
    # print(cursor.fetchone())
    # print(cursor.fetchone())
    # cursor.scroll(-2,mode='relative')#光标移动相对位置
    # print(cursor.fetchone())
    
    # print('%s row in set (0.00 sec)' %rows)
    # cursor.close()
    # conn.close()

    6 最后一个id号

    import pymysql
    conn=pymysql.connect(host='localhost',user='root',password='',database='day47',charset='utf8')
    cursor=conn.cursor()
    sql='insert into user(user,password) values(%s,%s);'
    rows=cursor.execute(sql,('alex','123'))
    # rows=cursor.executemany(sql,[('yuanhao','123'),('laowu','123'),('kgf','12323')])
    conn.commit()
    print(cursor.lastrowid)#查看最后一个的id号
    cursor.close()
    conn.close()
  • 相关阅读:
    【题解】警位安排( 树形 DP)
    【题解】任务分配
    Leo 搭积木
    受牛仰慕的牛
    zy 送画
    [NOIP2010] 乌龟棋
    [WikiOi 1214] 线段覆盖
    【拓扑习题】课程安排问题
    [WikiOI "天梯"1281] Xn数列
    [百度之星2014资格赛] Disk Schedule 报告
  • 原文地址:https://www.cnblogs.com/1a2a/p/7521669.html
Copyright © 2011-2022 走看看