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(),因为一般重要的数据操作,必须要提交下,如果没有这个,写完后可以执行,但表中的数据不会受影响,所以要提交下,前面设置为自提交就不用了。

 

posted @ 2019-08-22 15:51  帅气逼人23  阅读(856)  评论(0编辑  收藏  举报