关系型数据库
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子句中的对象符