zoukankan      html  css  js  c++  java
  • 操作mysql(图形界面) 建库建表

    连接Mysql建库建表
    连接服务器中mysql!
    信息: IP: 39.98.39.173 用户名: root 密码: root
     
    1. 图形界面工具: navicate

     

    2. 建库
    3. 建表
    分析
    # 学生表students
    # 学生对象包含属性(id,姓名,性别,年龄,生日,手机号,地址...) #根据业务需求随意扩展!
    # 对应列!

     

    Python操作数据库
     
    python操作数据库流程
    下载mysql驱动模块(pymysql)
    引入模块
    建连接(建立和数据库连接)
    执行sql语句
    非查询:增加,删,修改
    查询:select
    处理结果
    释放资源
    关连接
    关游标
     
     
    驱动介绍
    python操作mysql驱动/第三方模块: MySQLdb PyMysql
    pymysql: 支持2.x 支持3.x
    mysqldb: 只支持3.x
    #安装模块 
    pip install pymysql
    增删改
    SQL 
    # 增加 
    insert into 表名(列1,列2,....) values(值1,值2,...)
    # 删除 
    delete from 表名 ; # 删除表中所有数据! 
    delete from 表名 where 条件;
    
    # 修改 
    update 表名 set 列1=值1,列2=值2,....; #不加条件,修改所有列!~
     update 表名 set 列1=值1,列2=值2,....where 条件;
    
    select * from students where sex =''; 
    insert into students(name,sex,age,birthday,phone,addr) 
    values('刘帅','',20,now(),'17600950805','山西') ; 
    update students set sex='' where name ='刘帅' 
    delete from students where name ='刘晒

    python实现非查询
    非查询:步骤一样的!
    区别: sql语句不同, 参数个数不同! 
    def my_execute(sql,params): 
        '''非查询通用功能! sql语句, 参数列表''' 
     # 2.连接
        conn =
    pymysql.connect(host='39.98.39.173',port=13306,user='root',passwd='root',db='1909C2',c harset='utf8')
    print(conn) 
    # 3. 获取游标 
    cur = conn.cursor() 
    # 4. 执行sql 
    num = cur.execute(sql,params) 
    #print(f'影响行数:{num}') 
    conn.commit() # 必须手动提交到数据库! 
    # 5. 释放资源 
    cur.close() 
    conn.close() 
    # 返回影响行数! 
    return num

    if __name__ == '__main__':
      
      # 通用
      sql ='insert into students(name,sex,age,birthday,phone,addr) 
    values(%s,%s,%s,%s,%s,%s)' 
      params=('王五','女',39,'2020-11-03','17600950805','山西')
      if my_execute(sql,params)>0:
        print('数据库操作成功!')
      else:
        print('数据库操作失败!')
    参数如何传递
    sql ='insert into students(name,sex,age,birthday,phone,addr)

    values(%s,%s,%s,%s,%s,%s)'
    # 格式:一行数据就是一个元组!
    params=('王五','女',39,'2020-11-03','17600950805','山西')
    num = cur.execute(sql,params) 
     
    批量执行非查询
    sql ='insert into students(name,sex,age,birthday,phone,addr)
    values(%s,%s,%s,%s,%s,%s)'
    # 格式:一行数据就是一个元组!
    params=[('王五1','女',39,'2020-11-03','17600950805','山西'),('王五2','女',39,'2020-11-
    03','17600950805','山西')]
    num = cur.executemany(sql,params) # 结果大于1的

      

    核心对象
    连接对象: conn= pymysql.connect(host='IP地址',port=13306,user='用户名',passwd='密
    码',db='数据库名',charset='utf)
    conn.close() #关闭
    cur= conn.cursor() 创建游标
    游标 Cursor 操作数据库依靠游标!
    num = cur.execute(sql,参数) 执行非查询,返回影响的行数!
    num=cur.executemangy(sql,[(),(),..]) 批量执行非查询,返回影响行数!
    cur.close()
    cur.fetchone() 抓取1条,,返回元组或None
    cur.fetchall() 抓取所有
    cur.fetchmany(大小) 指定抓取大小
    cur.next() 游标下移!
     
     
    查询
    import pymysql
    def get_one():
      # 1. 连接
      conn = pymysql.connect(host='39.98.39.173', port=13306, user='root',
    passwd='root', db='1909C2', charset='utf8')
      # 2. 打开游标
      cur = conn.cursor()
      # 3. 执行
      sql ='select * from students where sex = %s'
      cur.execute(sql,('女'))
      #result = cur.fetchone() # 返回一个元组() 默认找第1个!
      result = cur.fetchall() # 返回多个元祖 ((),(),(),...)
      print(result)
      for stu in result:
        print(f'id:{stu[0]},名字:{stu[1]}')
      # 4.关闭资源
      cur.close()
      conn.close()
    if __name__ == '__main__':
      get_one()
     
  • 相关阅读:
    <unittest学习8>unittest生成测试报告
    <unittest学习7>unittest的封装方法
    <unittest学习6>unittest多种加载用例方法
    <unittest学习5>unittest的几种执行方式和java的junit的很像
    <unittest学习4>跳过用例
    实验3.1
    I
    大数据运维---Zookeeper学习
    裸金属纳管
    一次Linux系统被攻击的分析过程
  • 原文地址:https://www.cnblogs.com/yhj1096/p/13924566.html
Copyright © 2011-2022 走看看