python学习-mysql、sqlalchemy

这篇博客介绍了关系型数据库的基本概念,如ACID原则、主键和外键,并详细讲解了如何创建和管理Python的虚拟环境。还阐述了MySQL数据库的启动、基本操作,包括创建、删除数据库和表,以及数据的插入、查询和删除。最后,文章讨论了SQLAlchemy,展示了如何使用Engine对象执行SQL以及实现对象关系映射。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关系型数据库
ACID
A 原子性
C 一致性
I 隔离性
D 持久性

主键 primary key
外键 foreign key 父数据表的主键放在另一个数据表,当做属性以创建彼此的关系,这个属性就是外键

创建虚拟环境

1、安装
sudo pip3 install virtualenv
2、创建虚拟环境
virtualenv venv 创建一个名为venv的虚拟环境
3、进入虚拟环境
source venv/bin/activate
4、查看虚拟环境中默认的pip安装包
pip list
5、导出
pip freeze > requirements.txt
6、退出虚拟环境
deactivate
7、启动数据库
sudo service mysql start
8、安装一个包
sudo pip3 install mysqlclient
9、链接到数据库
mysql -u root

基本操作
create database test; 创建数据库
show databases; 查看所有数据库名称
drop database test; 删除数据库

create table test; 创建表
use test; 切换表
create table test(
id int(10),
name varchar(64),
email varchar(64)
);
show tables; 展示表名
drop table test;
show create table test; 查看表的字段信息
describe test;
insert into test(id,name,email) values(1,’test’,’123@qq.com’);
select * from test; 查看表的数据
delete from test where id = ‘1’; 删除数据

修改表
alter table test modif email varchar(64) unique; 设置唯一约束
alter tablle test add constraint pk_id primary key(id); 设置主键
create table course(
id int(10) auto_increment,
name varchar(64),
teacher_id int(10),
primary key(id),
constraint fk_test foreign key(teacher_id) references test(id)
#设置teacher_id为外键,且关联到了test的id字段
);

SQLAlchemy
通过Engine对象进行
from sqlalchemy import create_engine
engine = create_engine(‘mysql://root:@localhost/test’)
#导入create_engine方法用于创建Engine实例,传递的参数定义了mysql服务器的访问地址 mysql://:@/<db_name>
engine.execute(‘select * from user’).fetchall() 执行sql语句

对象关系映射
声明 基类创建类
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()

创建User类,映射到上文中创建的user表
from sqlalchemy import Coulumn,Integer,String
class User(Base):
talename = ‘user’
id = Column(Integer,primay_key=True)
name=Column(String(50))a
email=Column(String(50))
def repr(self):
return “<User(name=%s)>” % self.name

User.table 记录了定义的表信息
通过User查询数据库,引入Session
from sqlalchemy import sessionmaker
Session = sessionmaker(bind=engine)
session = Session()

查询用户
session.query(User).all()
session.query(User).filter(User.name=’test1’).first() 使用filter对数据进行筛选,运算符可以填入sql where子句中的对象符

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值