zoukankan      html  css  js  c++  java
  • Navicat的使用,连表查询,python代码操作sql语句

    exist(了解):

    exist是一个表示真假值的关键字,表示是否存在,当有exist关键字时,内层查询语句不会返回结果而是返回一个真假值,如果为True,那么外层语句将继续查询,如果为假,那么外层语句不进行查询。

    Navicat的使用:

    下载地址::https://pan.baidu.com/s/1bpo5mqj

    这个是将sql语句封装了一款便于我们使用的软件。

    Python操作sql语句:

    这个时候就要使用到了pymysql这个模块

    pymysql模块:

    安装:pip install pymysql

    代码连接:

    import pymysql

    连接

    conn = pymysql.connect(

      host='127.0.0.1',

      port='3306',

      user='root',

      password='147258',

      database='库名',

      charset='utf8',

      autocommit=True  这个为了让其新增,修改,删除的自提交

    设置一个游标

    cursor=conn.cursor()这个执行完毕后返回的结果,单个是元祖,多个是元祖套元祖。

    cursorcon.cursor(cursor=pymysql.cursor.DictCursor)这样单个显示的是一个字典,多个显示是列表套字典。

    pymysql来操作数据库

    执行sql语句

    user= input('>>>:')

    pwd = input('>>>:')

    sql= “select * from user where name='%s' and password='%s' % (user,pwd)  注意%s要加引号

    res = cursor.excute(sql)执行sql语句,拿到返回的是查询到的条数。

    获取真实数据,可以用cursor.fetchone()获取一条,fetchall()是获取多条。

    cursor.scroll(1,'relative')以当前位置往后移动几位,并过滤掉移动的数据。

    cursor.scroll(1,'absolute')以起始位置往后移动几位

    在上面写的sql语句会造成sql注入,就是我可以用一个sql语句的注释等具有特殊意义的字符来跳过检查,正确的方法就是不要手动的拼接sql语句,

    sql= “select * from user where name=%s and password=%s   引号去掉

    cursor.excute(sql,(user,pwd)因为excute不止可以执行sql语句拿到返回的条数,而且还能够自动识别语句中特殊符号并且帮你做替换,但要注意,有几个%s就要有几个替换的值。

    增加和删除,修改都要在写完后加一句conn.commit(),因为一般重要的数据操作,必须要提交下,如果没有这个,写完后可以执行,但表中的数据不会受影响,所以要提交下,前面设置为自提交就不用了。

  • 相关阅读:
    js 数组相减
    js 对象数组去重
    vue 首次不触发watch的解决方法
    "神药"推荐--紫花地丁
    openstack 平台添加 nvidia vGPU
    string易错点整理总结
    CentOS安装图形界面
    CentOs安装ssh和scp
    数组把0移到末尾
    Windows下Celery安装与下使用
  • 原文地址:https://www.cnblogs.com/xinfan1/p/11394795.html
Copyright © 2011-2022 走看看