navicat安装使用以及pymysql基本使用

navicat安装与使用:

  使用navicat需要先与MySQL建立连接,如下图:连接建立好之后navicat就相当于MySQL的客户端,MySQL就相当于服务端。两者基于网络通讯。

  使用navicat查看库的时候,直接鼠标双击你的主机就好了,创建新的库直接鼠标点中你的主机右键就能创建,在创建库的时候需要注意的是要选择字符集,字符集一定要选,否则可能会出现乱码的情况,字符集一般情况下选择utf8。 创建表的时候也是如此操作,选中库然后右键创建新表。其实它是内部已经帮你封装好了的,每次右键新建库或表的时候,它内部都有对应的sql语句在进行操作,只是没展现给我们看罢了。

在使用navicat建表时需要注意:

  设置主键的时候摁一个空格它就变成一个钥匙,钥匙就是键的意思。然后主键在设置的时候下面的自动递增一定要勾选,如果不勾上它就不会自动递增了。注释可以根据自己的需求选择写或者不写。表建好之后双击表进进入了添加数据阶段,id不用添加它自动递增就会帮你添加了

修改数据表:

  选中数据表点击右键选中设计表,然后跟创建表的操作一样去编辑字段,数据类型,完整性约束等。

pymysql基本使用:

  pymysql模块是能直接操作MySQL的模块,使用pymysql模块的时候需要先下载。

  调的方法是先导入pymysql模块,然后.connect()     connect连接的意思,只不过我们需要在里面传一些参数

connect能传入很多参数,列举一下:

具体语法:

#  conn类似于通讯对象

import pymysql
conn = pymysql.connect(
    host = "127.0.0.1",  # ip地址
    prot = 3306,  # MySQL默认端口
    user = "填入你的用户名",
    password = "填入你的密码",
    database = "填入你创建好了的库名",  # 告诉python你要操作哪个库
    charset = "utf8"  # 编码千万不要加 -  如果写成了utf-8会直接报错
)

cursor
= conn.cursor(pymysql.cursors.DictCursor) # 产生一个游标对象,就相当于MySQL里面的光标 # 括号内表示的意思是:以字典的形式返回查询出来的数据 建是表的字段,值是表的字段对应的信息 sql = "select * from 表名" # 往你创建好了的表里面传入数据。 cursor.execute(sql) # 执行传入的sql语句 会有一个返回值,返回的是数据条数 print(cursor.fetchone()) # 只获取一条数据,而且是从头获取 cursor.scroll(1, "absolute") # 控制光标移动 absolute前面传入数字是几就相对于当前位置往后移动几位 cursor.scroll(1, "relative") # relative前面传入数字是几相对于当前位置往后移动几位 print(cursor.fetchone()) # 获取所以的数据,返回的结果是个列表,里面套的是字典

sql语句注入问题:

  sql注入就是利用注释等具有特殊意义的符号 来完成一些骚操作,后续写sql语句不要手动拼接关键性的数据,而是让excute帮你做拼接

import pymysql
conn = pymysql.connect(
    host = "127.0.0.1",  # ip地址
    prot = 3306,  # MySQL默认端口
    user = "填入你的用户名",
    password = "填入你的密码",
    database = "填入你创建好了的库名",  # 告诉python你要操作哪个库
    charset = "utf8"  # 编码千万不要加 -  如果写成了utf-8会直接报错
)
cursor = conn.cursor(pymysql.cursors.DictCursor)  # 产生一个游标对象,就相当于MySQL里面的光标
username = input("请输入用户名>>>:")
password = input("请输入密码>>>:")
# sql = "select * from user where name = '%s' and password = '%s'" % (username,password)
# res = cursor.execute(sql)  # 直接这样使用会被利用注释等具有特殊意义的符号来获取数据
sql = "select * from user where name = '%s' and password = '%s'"

res = cursor.execute(sql(username,password))  # 能够帮我们自动过滤特殊符号 避免sql注入问题
# execute 能够自动识别sql语句中的%s自动做替换

if res:
    print(cursor.fetchall())
else:
    print("用户名或者密码错误")

pymysql增删改配置:

  增删改操作必须要添加一条conn.commint()操作,commint提交的意思,也就是说只要你进行了增删改这些操作,就必须得提交一次才有结果。

  也可以在连接的时候加有一条语句:autocommit = True  :这个参数配置完成后,增删改操作都不需要手动加conn。communit了。它会自动提交。

原文地址:https://www.cnblogs.com/sweet-i/p/11396489.html