安装Python访问MySQL的模块

安装Python访问MySQL的模块

安装pymysql模块

pip install pymysql

pycharm的py文件中,测试连接代码;

import pymysql

##connection 用于数据库连接,获取数据库对象,cursor,数据库交互对象,exception数据库异常类
##流程:创建connection,创建数据库连接对象,然后调用cursor方法,返回cursor对象,对数据库进行操作,cursor调用##方法,执行命令,获取数据处理出数据,然后关闭cursor,关闭cnnection(否则占用资源),结束。
##connection对象的方法:cursor():使用该链接并返回游标,commit()提交当前事务,rollback()回滚当前事务,##close()关闭连接

##游标对象,由于执行查询和获取结果。excute(),执行数据库查询和命令,将数据库语句送到数据库执行,数据库将对象##返回客户端缓冲池。fetchone()去的结果集的下一行。##fetchmany(size)获取结果集的下几行,fetchall():获取结果##集中的剩下所有行,rowcount():最近一次execute返回数##据的行数或者影响的行数。close():关闭是游标对象。

pymysql.Connect()参数说明
host(str):      MySQL服务器地址
port(int):      MySQL服务器端口号
user(str):      用户名
passwd(str):    密码
db(str):        数据库名称
charset(str):   连接编码

connection对象支持的方法
cursor()        使用该连接创建并返回游标
commit()        提交当前事务
close()         关闭连接

cursor对象支持的方法
execute(op)     执行一个数据库的查询命令
fetchone()      取得结果集的下一行
fetchmany(size) 获取结果集的下几行
fetchall()      获取结果集中的所有行
rowcount()      返回数据条数或影响行数
close()         关闭游标对象

 print(cur._last_executed)  打印上次执行的sql语句
 

建立数据库连接

conn = pymysql.Connect(
    host='localhost',##mysql服务器地址
    port=3306,##mysql服务器端口号
    user='root',##用户名
    passwd='',##密码
    db='python',##数据库名
    charset='utf8'##连接编码
)

获取游标

cursor = conn.cursor()
print(conn)
print(cursor)

1、从数据库中查询

sql = "SELECT * FROM login"

cursor执行sql语句

cursor.execute(sql)

打印执行结果的条数

print(cursor.rowcount)

使用fetch方法进行遍历结果 总共有三条数据

rs=cursor.fetchone()#将第一条结果放入rs中
re=cursor.fetchmany(3)#将多个结果放入re中
rr = cursor.fetchall()  # 将所有的结果放入rr中

对结果进行处理

for row in rr:
    print("ID是:=%s, 姓名是:=%s, 密码是:=%s" % row)

print(re)#输出两条数据,因为fetch()方法是建立在上一次fetch()方法基础上的

按照字典的形式来获取数据再进行数据的操作:

cursor=conn.cursor(cursor=pymysql.cursors.DictCursor)
sql="select * from cms_news where news_id> %s"
data="20"
cursor.execute(sql,data)
print(cursor.rowcount)
list=cursor.fetchall()
print(list)

for (index,item) in enumerate(list):
    print(item["title"],index)

2数据库中插入数据

cursor=conn.cursor(cursor=pymysql.cursors.DictCursor)
sql="INSERT INTO cms_user(username,password,realname,status)values (%s,%s,%s,%s)"
 
print(sql)
data=("zhangsan","123","张三",1)
cursor.execute(sql,data)
conn.commit()

print(cursor.lastrowid)
#数据库插入多条数据  
cursor=conn.cursor(cursor=pymysql.cursors.DictCursor)
sql="INSERT INTO cms_user(username,password,realname,status)values (%s,%s,%s,%s);"

data = [("zhangsan1", "123", "张三", '1'),("zhangsan2", "1234", "张三1", '0')]
cursor.executemany(sql,data)
conn.commit()

修改数据库中的内容

sql="UPDATE cms_user set username=%s where user_id=%s"
data=("lisi",14)
cursor.execute(sql,data)
conn.commit()

删除数据库中的内容

sql = "DELETE FROM cms_user WHERE  user_id=%s"
data = (14)
cursor.execute(sql , data)
conn.commit()

数据库连接和游标的关闭

conn.close()
cursor.close()

where语句
WHERE 子句用于提取满足指定标准的的记录。

SELECT column_name(s)
FROM table_name
WHERE column_name operator value
SELECT user,email FROM class  WHERE  user='张三' || user='李四'

SELECT user,email FROM class  WHERE  user='张三' && user='李四'

SELECT user,email FROM class  WHERE  user!='张三' && user!='李四' 

LIMIT 3

ORDER BY 关键词

ORDER BY 关键词用于对记录集中的数据进行排序。
ORDER BY 关键词默认对记录进行升序排序。
如果你想降序排序,请使用 DESC 关键字。 ASC—升序

SELECT column_name(s)
FROM table_name
ORDER BY column_name(s) ASC|DESC

SELECT * FROM MyGuests ORDER BY Age

SELECT * FROM MyGuests ORDER BY Age ASC

$sql="select * from employees  ORDER BY id ASC limit 1,20 ";

like 用法

我们知道在 MySQL 中使用 SQL SELECT 命令来读取数据, 同时我们可以在 SELECT 语句中使用 WHERE 子句来获取指定的记录。
WHERE 子句中可以使用等号 = 来设定获取数据的条件,如 “runoob_author = ‘RUNOOB.COM’”。
但是有时候我们需要获取 runoob_author 字段含有 “COM” 字符的所有记录,这时我们就需要在 WHERE 子句中使用 SQL LIKE 子句。
SQL LIKE 子句中使用百分号 %字符来表示任意字符。
如果没有使用百分号 %, LIKE 子句与等号 = 的效果是一样的。

查找以huxiao结尾的username

select * from user where username like '%huxiao';       

查找以huxiao开头的username

select * from user where username like 'huxiao%';   

查找huxiao中间位置出现的username

select * from user where username like '%huxiao%';
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

聚焦IT

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值