通过Python使用MySQL

使用pymysql包实现,可以使用pip进行安装

pip install pymysql

示例

create table admin(
	id int auto_increment primary key,
	username varchar(64) not null,
    password varchar(64) not null,
    mobile char(11) not null
) default charset=utf8;

mysql> create table admin(
    -> id int auto_increment primary key,
    -> username varchar(64) not null,
    ->     password varchar(64) not null,
    ->     mobile char(11) not null
    -> ) default charset=utf8;
Query OK, 0 rows affected, 1 warning (0.01 sec)

mysql> show tables;
+------------------+
| Tables_in_unicom |
+------------------+
| admin            |
+------------------+
1 row in set (0.00 sec)

mysql> desc admin;
+----------+-------------+------+-----+---------+----------------+
| Field    | Type        | Null | Key | Default | Extra          |
+----------+-------------+------+-----+---------+----------------+
| id       | int         | NO   | PRI | NULL    | auto_increment |
| username | varchar(64) | NO   |     | NULL    |                |
| password | varchar(64) | NO   |     | NULL    |                |
| mobile   | char(11)    | NO   |     | NULL    |                |
+----------+-------------+------+-----+---------+----------------+
4 rows in set (0.00 sec)

1.创建数据

import pymysql

#1.连接MySQL
##创建连接
conn = pymysql.connect(host="127.0.0.1",port=3306,user='root',password="123456",charset='utf8',db='unicom')
##使用游标
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)

#2.发送指令
##执行
cursor.execute("insert into admin(username,password,mobile) values('xiaoming','123','13556456575')")
##提交
conn.commit()
###!!!!!!千万不要使用字符串格式化去做SQL语句的拼接,会被SQL注入,具有安全隐患
###需要格式化输入
sql = "insert into admin(username,password,mobile) values(%s,%s,%s)"
cursor.execute(sql,["二狗","666","15684966379"])
conn.commit()
###或者
sql = "insert into admin(username,password,mobile) values(%(n1)s,%(n2)s,%(n3)s)"
cursor.execute(sql,{"n1":"王大壮","n2":"457","n3":"18756236607"})
conn.commit()

###写一个自定义连续输入
while True:
    user = input("用户名:")
    if user == "Q":
        break
    pwd = input("密码:")
    num = input("手机号:")
    sql = "insert into admin(username,password,mobile) values(%s,%s,%s)"
    cursor.execute(sql, [user,pwd,num])
    conn.commit()


#3.关闭连接
cursor.close()
conn.close()

2. 查询数据

import pymysql

#1.连接MySQL
##创建连接
conn = pymysql.connect(host="127.0.0.1",port=3306,user='root',password="123456",charset='utf8',db='unicom')
##使用游标
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)

#2.发送指令
sql = "select * from admin where id>%s"
id = [4]
cursor.execute(sql,id)
data_list = cursor.fetchall()#以字典列表的形式返回全部数据,没有返回空列表
for row_dict in data_list:
    print(row_dict)

cursor.execute(sql,id)
first_data = cursor.fetchone()#fetchone:以字典形式返回第一条数据,没有返回None
print('\n',first_data)

#3.关闭连接
cursor.close()
conn.close()

3.删除数据

import pymysql

#1.连接MySQL
##创建连接
conn = pymysql.connect(host="127.0.0.1",port=3306,user='root',password="123456",charset='utf8',db='unicom')
##使用游标
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)

#2.发送指令
sql = "select * from admin where id>%s"
id = [4]
cursor.execute(sql,id)
data_list = cursor.fetchall()#以字典列表的形式返回全部数据,没有返回空列表
for row_dict in data_list:
    print(row_dict)

cursor.execute(sql,id)
first_data = cursor.fetchone()#fetchone:以字典形式返回第一条数据,没有返回None
print('\n',first_data)

#3.关闭连接
cursor.close()
conn.close()

4.创建数据

import pymysql

#1.连接MySQL
##创建连接
conn = pymysql.connect(host="127.0.0.1",port=3306,user='root',password="123456",charset='utf8',db='unicom')
##使用游标
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)

#2.发送指令
sql = "select * from admin where id>%s"
id = [4]
cursor.execute(sql,id)
data_list = cursor.fetchall()#以字典列表的形式返回全部数据,没有返回空列表
for row_dict in data_list:
    print(row_dict)

cursor.execute(sql,id)
first_data = cursor.fetchone()#fetchone:以字典形式返回第一条数据,没有返回None
print('\n',first_data)

#3.关闭连接
cursor.close()
conn.close()

注意

  • 在使用新增、删除和修改数据时,记得commit
  • 查询使用fetchall和fetchone
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值