python MySQL数据库
1.安装MySQLdb或PyMySQL模块
pip install PyMySQL
或
pip install MySQLdb
2.简单连接mysql
点击查看代码
import pymysql
conn = pymysql.connect(host='172.17.10.52', user='python', password='radhat', database='nova', port=3306)
# 使用cursor()方法获取操作游标
cursor = conn.cursor()
#执行查询执指令
cursor.execute('SELECT * FROM instances')
#返回结果
result = cursor.fetchall()
print(result)
# 关闭数据库连接
cursor.close()
conn.close()
2.Mysql数据类型
数值类型:包括整型、浮点型、双精度型等。
字符串类型:包括定长字符串、变长字符串、文本类型等。
日期和时间类型:包括日期、时间、日期时间等。
布尔类型:包括真和假两种值。
二进制类型:包括二进制数据、图像、音频等。
枚举类型:包括一组预定义的值。
集合类型:包括一组预定义的值,但可以选择多个。
3.MySQL数据库中,约束是用于限制表中数据的规则
NOT NULL约束:该约束用于确保列中的值不为空。
UNIQUE约束:该约束用于确保列中的值是唯一的。
PRIMARY KEY约束:该约束用于将列设置为主键,确保每行数据都有唯一的标识符。
FOREIGN KEY约束:该约束用于确保列中的值与另一个表中的值匹配,通常用于建立表之间的关系。
CHECK约束:该约束用于确保列中的值符合指定的条件。
DEFAULT约束:该约束用于在插入新行时为列提供默认值。
例如,以下是一个包含约束的MySQL表的示例:
点击查看代码
CREATE TABLE students (
id INT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
age INT CHECK (age >= 18),
email VARCHAR(50) UNIQUE,
major_id INT,
FOREIGN KEY (major_id) REFERENCES majors(id)
);
create database test;
CREATE TABLE students (
id INT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
age INT CHECK (age >= 18),
email VARCHAR(50) UNIQUE,
major_id INT
);
4.Python中操作MySQL数据库需要使用到MySQLdb或者pymysql等第三方库
创建表
sql = """CREATE TABLE EMPLOYEE (
FIRST_NAME CHAR(20) NOT NULL,
LAST_NAME CHAR(20),
AGE INT,
SEX CHAR(1),
INCOME FLOAT )"""
cursor.execute(sql)
插入数据
# 插入数据
sql = """INSERT INTO EMPLOYEE(FIRST_NAME,
LAST_NAME, AGE, SEX, INCOME)
VALUES ('Mac', 'Mohan', 20, 'M', 2000)"""
cursor.execute(sql)
查询数据
sql = "SELECT * FROM EMPLOYEE WHERE INCOME > %s" % (1000)
cursor.execute(sql)
results = cursor.fetchall()
for row in results:
fname = row[0]
lname = row[1]
age = row[2]
sex = row[3]
income = row[4]
print("fname=%s,lname=%s,age=%d,sex=%s,income=%d" % (fname, lname, age, sex, income))
更新数据
sql = "UPDATE EMPLOYEE SET AGE = AGE + 1 WHERE SEX = '%c'" % ('M')
cursor.execute(sql)
删除数据
sql = "DELETE FROM EMPLOYEE WHERE AGE > %s" % (20)
cursor.execute(sql)
MySQL ORM框架-SQLAIchemy
SQLAlchemy是一个Python SQL工具包和ORM框架,它提供了一组广泛的工具,使得在Python中使用SQL更加容易和灵活。SQLAlchemy的主要目标是为SQL数据库提供高效、高性能的访问,并支持多种关系型数据库,如MySQL、PostgreSQL、Oracle、Microsoft SQL Server等。
SQLAlchemy的ORM框架提供了一种将Python对象映射到关系型数据库表的方法,使得开发人员可以使用Python语言来操作数据库,而不必直接使用SQL语言。ORM框架可以自动创建数据库表、插入数据、更新数据、删除数据等操作,同时还支持事务、连接池、缓存等高级功能。
下面是一个使用SQLAlchemy ORM框架的示例:
from sqlalchemy import create_engine, Column, Integer, String
from sqlalchemy.orm import sessionmaker
from sqlalchemy.ext.declarative import declarative_base
# 创建数据库连接
engine = create_engine('mysql+pymysql://username:password@host:port/database')
# 创建Session类
Session = sessionmaker(bind=engine)
# 创建Base类
Base = declarative_base()
# 定义User类
class User(Base):
__tablename__ = 'users'
id = Column(Integer, primary_key=True)
name = Column(String(50))
age = Column(Integer)
# 创建表
Base.metadata.create_all(engine)
# 创建Session实例
session = Session()
# 插入数据
user = User(name='Tom', age=20)
session.add(user)
session.commit()
# 查询数据
users = session.query(User).all()
for user in users:
print(user.name, user.age)
# 更新数据
user = session.query(User).filter_by(name='Tom').first()
user.age = 21
session.commit()
# 删除数据
user = session.query(User).filter_by(name='Tom').first()
session.delete(user)
session.commit()
# 关闭Session
session.close()
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下