网站设计定制公司,无视风险安装下载app软件,西安哪家网站公司做的比较好,广告联盟cpc目录
1、使用前提
2、使用连接数据库最初步骤
2.1 最初步骤
2.2 connect()方法中参数简单传递
3、创建数据库(创建架构)和创建表
3.1 创建数据库(创建架构)
3.2 创建表
3.2.1 基本创建
3.2.2 创建自增主键
4、Pycharm 可视化连接 MySQL 图形界面
5、插入、更新、查询…目录
1、使用前提
2、使用连接数据库最初步骤
2.1 最初步骤
2.2 connect()方法中参数简单传递
3、创建数据库(创建架构)和创建表
3.1 创建数据库(创建架构)
3.2 创建表
3.2.1 基本创建
3.2.2 创建自增主键
4、Pycharm 可视化连接 MySQL 图形界面
5、插入、更新、查询、删除数据
5.1 插入数据
5.2 、更新数据
5.3、查询数据
5.4、删除数据
6. MySQL存储字典 1、使用前提 安装MySQL数据库安装pymysql第三方库。
2、使用连接数据库最初步骤
2.1 最初步骤
(1) 声明一个连接对象。使用connect()方法声明一个连接对象conn参数为数据库的一些信息。依次为主机名、用户名、密码、端口号
(2) 获得游标。使用cursor()方法获得游标
(3) 执行 sql 语句。使用execute()方法
(4)关闭游标
(5) 关闭连接。
以下代码对数据库进行了连接执行语句得到版本。
import pymysql# (1) 声明一个连接对象
conn pymysql.connect(hostlocalhost, userroot, passwd1141477238, port3306) # (2) 建立游标
cursor conn.cursor()# (3) 执行语句
sql SELECT VERSION()
cursor.execute(sql)data cursor.fetchone() # fetchone()得到第一条数据
print(DataBase version:, data)cursor.close() # (4) 关闭游标
conn.close() # (5) 关闭连接# 输出DataBase version: (8.3.0,)
2.2 connect()方法中参数简单传递 在上面可以看到connect()方法中参数很多若要多次连接每次一个个写或者复制比较繁琐所以下面采取更方便的传递方法。 建立一个新python文件mysql_info.py将其中参数设置为字典如下
mysql_local {host: localhost,user: root,passwd: 1141477238,port: 3306,
} 在主要文件中使用如下
from mysql_info import mysql_local#.......
conn pymysql.connect(**mysql_local)
#....... **mysql_local会将mysql_local字典中的键值对展开作为关键字参数传递给pymysql.connect函数。
3、创建数据库(创建架构)和创建表
3.1 创建数据库(创建架构)
# 使用语句create database 数据库名
# 默认编码方式urf-8
sql create database spider default character set utf8mb4
3.2 创建表
3.2.1 基本创建 使用CREATE TABLE 表名(表头)此处为idnameage。
import pymysqlconn pymysql.connect(hostlocalhost, userroot,passwd1141477238, port3306, dbspider)
cursor conn.cursor()
sql (CREATE TABLE IF NOT EXISTS student(id VARCHAR(255) NOT NULL, name VARCHAR(255) NOT NULL, age INT NOT NULL, PRIMARY KEY (id)))
cursor.execute(sql)
cursor.close()
conn.close() IF NOT EXISTS表明如果没有此表则创建该表有则不会再创建表即使改动后面的name、age等再执行一次也不会有变化。若没有IF NOT EXISTS 在初始创建后再执行了一次该程序后再执行会报错即存在表再创建会报错。 NOT NULL表明不允许该键为空否则报错。
3.2.2 创建自增主键 该内容不与下方联系。 sql (CREATE TABLE users (id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(50),email VARCHAR(100))) 该主键id会随着数据的增多而自增再 insert 语句中不需要自己添加。主键是用来唯一标识每一条记录的如果没有主键或者主键值为空就无法唯一标识记录会容易导致插入失败。
def insert_movie():conn pymysql.connect(**mysql_local)cursor conn.cursor()username hhhhhemail 1111111sql fINSERT INTO users (username, email) VALUES (%s, %s)cursor.execute(sql, (username, email))conn.commit()conn.close() 结果如下第一条为最先插入的现插入第二条 4、Pycharm 可视化连接 MySQL 图形界面 在执行代码后观察。具体见链接http://t.csdnimg.cn/ZYZoQ 根据上述代码我们可以看到我们的数据库spider点击表student发现如下图所示 即建表成功可以开始之后的操作。
5、插入、更新、查询、删除数据
5.1 插入数据 使用insert into 表名(表头元素) values (%s, %s, %s)之后execute()中传入参数再比最初步骤多了一个连接提交conn.commit()即可。 为了避免插入失败导致报错崩溃程序加一层异常处理。若插入失败则执行conn.rollback()会发生数据回滚相当于没插入这条数据。之后执行后面的程序。
import mysql# 插入数据
conn pymysql.connect(hostlocalhost, userroot,passwd1141477238, port3306, dbspider)
cursor conn.cursor()
id 10001
name John
age 20
sql insert into student(id, name, age) values (%s, %s, %s)
try:cursor.execute(sql, (id, name, age))conn.commit()
except:conn.rollback()print(插入失败)
cursor.close()
conn.close()5.2 、更新数据 使用update 表明 set 要改变量名 %s where id %sid为定位变量
# 改id为10001的age
sql update student set age %s where id %s
cursor.execute(sql, (25, 10001)) 5.3、查询数据 使用select * from 表名 where 条件。执行后结果返回再游标对象里使用fetchall()方法返回所有符合条件的结果。
初表 # 查询数据
conn pymysql.connect(hostlocalhost, userroot,passwd1141477238, port3306, dbspider)
cursor conn.cursor()
sql select * from student where age 25
cursor.execute(sql)
result cursor.fetchall()
print(result)
执行代码结果 5.4、删除数据 改变 sql 语句即可使用delete from 表名 where 条件即可
import mysqlconn pymysql.connect(hostlocalhost, userroot,passwd1141477238, port3306, dbspider)
cursor conn.cursor()
sql delete from student where age 25
cursor.execute(sql)
conn.commit()
cursor.close()
conn.close() 6. MySQL存储字典 在上述发现表格数据idnameage等要一个个写入比较麻烦所以接下来介绍一个以字典的方式把数据存入MySQL。 主要是将字典的键值拆开分别合并为字符串去对应 sql 语句中的内容之后将excute()方法中的第二个参数设置为元组即可。
import pymysql
from mysql_info import mysql_local # 插入数据此文件中要加入db: 数据库名data {id: 10005,name: HaLun,age: 26
}
table_name student
conn pymysql.connect(**mysql_local)
cursor conn.cursor()keys ,.join(data.keys())
s_value ,.join([%s] * len(data))sql fINSERT INTO {table_name}({keys}) VALUES ({s_value})
print(sql) # 输出INSERT INTO student(id,name,age) VALUES (%s,%s,%s)
print(tuple(data.values())) # 输出(10005, HaLun, 26)cursor.execute(sql, tuple(data.values()))
conn.commit()
cursor.close()
conn.close()
本人新手若有错误欢迎指正若有疑问欢迎讨论。若文章对你有用点个小赞鼓励一下谢谢一起加油吧