Python3 MySQL一

Python2中则使用mysqldb

PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,遵循 Python 数据库 API v2.0 规范,并包含了 pure-Python MySQL 客户端库。

看下一篇文章Python3 MySQL二 PyMySQL

数据库名:atest

表:user

 

目录

Python2中则使用mysqldb

PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,遵循 Python 数据库 API v2.0 规范,并包含了 pure-Python MySQL 客户端库。

数据库名:atest

1.连接数据库

2.创建数据库、创建表

3.插入表数据

4.查询数据

5.删除数据

6.update数据

7.删除表

8.删除数据库


1.连接数据库

import mysql.connector

anewab = mysql.connector.connect(
    host="localhost",
    user="root",
    passwd=""
)
print(anewab)

2.创建数据库、创建表

创建数据库atest

import mysql.connector

anewab = mysql.connector.connect(
    host="localhost",
    user="root",
    passwd="",
    
)

mycursor = anewab.cursor()

# 创建数据库
mycursor.execute("CREATE DATABASE atest")

在atest数据库创建表user 

import mysql.connector

anewab = mysql.connector.connect(
    host="localhost",
    user="root",
    passwd="",
    # 指定数据库
    database="atest"
)

mycursor = anewab.cursor()

# 创建表
mycursor.execute("create table user(name VARCHAR (10), age integer(3) )")

 给已存在的表user设置主键

# 设置主键
mycursor.execute("alter table user add column id int auto_increment primary key ")

 

 

如果表未存在,创建表的同时设置主键

mycursor.execute("CREATE TABLE sites (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255), url VARCHAR(255))")

 

3.插入表数据

import mysql.connector

anewab = mysql.connector.connect(
    host="localhost",
    user="root",
    passwd="",
    # 指定数据库
    database="atest"
)

mycursor = anewab.cursor()

# 插入数据
sql = "insert into user(name,age) values (%s, %s)"
val = ("陈奕迅", 18)
mycursor.execute(sql, val)
# 数据表内容有更新,必须使用到该语句提交
anewab.commit()
# rowcount只会记录未被提交的最后一条SQL语句的影响行数
print(mycursor.rowcount, "插入成功")


 


插入多条数据


# 插入数据
sql = "insert into user(name,age) values (%s, %s)"
val = [
    ("周杰伦", 18),
    ("李宇春", 18),
    ("汪苏泷", 18),
    ("许嵩", 18)
]

# 注意这里用executemany
mycursor.executemany(sql, val)
anewab.commit()
print(mycursor.rowcount, "插入成功")

 

获取插入的ID

mycursor.lastrowid

4.查询数据

获取所有用fetchall()

import mysql.connector

anewab = mysql.connector.connect(
    host="localhost",
    user="root",
    passwd="",
    # 指定数据库
    database="atest"
)
mycursor = anewab.cursor()

mycursor.execute("select * from user")
myresult = mycursor.fetchall()

for x in myresult:
    print(x)

 

 

获取一条可以用fetchone()

mycursor.execute("select * from user")
myresult = mycursor.fetchone()
print(myresult)

 

 

 

 为了防止数据库查询发生 SQL 注入的攻击,我们可以使用 %s 占位符来转义查询

 

升序

降序 用desc

限制查询数量:

select * from user limit 3

指定起始位置,使用的关键字是 OFFSET

 

"select * from user limit 3 offset 2

5.删除数据

 

注意:要慎重使用删除语句,删除语句要确保指定了 WHERE 条件语句,否则会导致整表数据被删除。 

6.update数据

sql = "update user set name='陈奕迅2' where name = '陈奕迅'"
mycursor.execute(sql)
anewab.commit()

UPDATE 语句要确保指定了 WHERE 条件语句,否则会导致整表数据被更新。

7.删除表

mycursor.execute("drop table if exists user")

8.删除数据库

mycursor.execute("drop database if exists atest")

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

一身正气z

打赏随心就好

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

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

打赏作者

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

抵扣说明:

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

余额充值