数据库的备份和导入
数据库备份
在命令提示符中输入
mysqldump -h localhost -u root -p 数据库名称>备份的地址
mysqldump -h localhost -u root -p mydb1>d:/mydb1.sql
Enter password;密码
注意:
- 使用的是window的命令行
- mysqldump 是 myslq的可执行命令
- localhost 表示网址
- d:\mydb1.sql 表示 保存的位置。 /表示Linux路径, \ windows路径。
导入
先创建数据库,选择要导入的数据库
source d:/mydb1.sql;——》source 导入数据库的地址
建立python与数据库的连接
pymysql模块
安装
- 两种方式安装此模块 pip install pymysql (命令行)或者 通过 pycharm进行安装。
数据库增加数据操作
import pymysql
#创建连接
conn=pymysql.connect(
host='localhost', #数据库主机地址
user='root', #数据库用户名
password='123456',#数据库密码
database='test', #数据库名称
port=3306) #连接端口
#获取游标
cur=conn.cursor()
#编写SQL语句
sql="insert into test(id,name) values (%(id1)s,%(name1)s)"
#执行sql
s={'id1':input('请输入id;'),'name1':input('请输入姓名;')}#增加一条数据,字典形式
#也可是元组或列表
cur.execute(sql,s)
sql="insert into test(id,name) values (%s,%s)"
s=cur.executemany(sql,[(7,'a'),(8,'s')])#批量增加
print(s)
#提交事务
conn.commit()
#关闭连接
cur.close()
conn.close()
数据库删除数据操作
import pymysql
#创建连接
conn=pymysql.connect(
host='localhost', #数据库主机地址
user='root', #数据库用户名
password='123456',#数据库密码
database='test', #数据库名称
port=3306) #连接端口
#获取游标
cur=conn.cursor()
#编写SQL语句
sql="delete from test where name='a' " #删除
s=cur.execute(sql)
print(s)
#提交事务
conn.commit()
#关闭连接
cur.close()
conn.close()
数据库修改数据操作
import pymysql
#创建连接
conn=pymysql.connect(
host='localhost', #数据库主机地址
user='root', #数据库用户名
password='123456',#数据库密码
database='test', #数据库名称
port=3306) #连接端口
#获取游标
cur=conn.cursor()
#编写SQL语句
sql="update test set id=10 where name='w'" #修改
s=cur.execute(sql)
print(s)
#提交事务
conn.commit()
#关闭连接
cur.close()
conn.close()
数据库查找数据操作
import pymysql
#创建连接
conn=pymysql.connect(
host='localhost', #数据库主机地址
user='root', #数据库用户名
password='123456',#数据库密码
database='test', #数据库名称
port=3306) #连接端口
#获取游标
cur=conn.cursor()
#编写SQL语句
sql="select * from test" #查找
s=cur.execute(sql)
print(s)
#提交事务
conn.commit()
#关闭连接
cur.close()
conn.close()
sqlalchemy 模块
ORM
ORM 全称 Object Relational Mapping
, 翻译过来叫对象关系映射
。简单的说,ORM 将数据库中的表与面向对象语言中的类建立了一种对应关系。这样,我们要操作数据库,数据库中的表或者表中的一条记录就可以直接通过操作类或者类实例来完成。也就是使用面向对象的思想来操作数据库。
SQLAlchemy 是Python 社区最知名的 ORM 工具之一,为高效和高性能的数据库访问设计,实现了完整的企业级持久模型。
python 类 ——》表格 一个类对应一张表格,
对象——》记录 一个对象对应一条记录
属性——》字段 一个属性对应一个字段
不需要写SQL语句,sqlalchemy需要与pymysql联合使用。
from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column,String,Integer
from sqlalchemy.orm import sessionmaker
#1.创建引擎
eng=create_engine("mysql+pymysql://root:123456@localhost/test",encoding='utf-8')
#2.创建基类
Base=declarative_base()
#3.创建类
class Tes(Base):
__tablename__='tes'
id=Column(Integer,primary_key=True,autoincrement=True)
name=Column(String(32),nullable=False)
email=Column(String(32),unique=True)
#4.创建表格
Base.metadata.create_all(eng)
#添加记录
Session=sessionmaker(bind=eng)
#添加
session=Session()
tex=Tes(name='李四',email='222@qq.com')#创建对象
session.add(tex)#添加事务
session.commit()#提交事务
session.close()
# 查询
# 创建session
session = DBSession()
# 利用session创建查询,query(对象类).filter(条件).one()/all()
user = session.query(User).filter(User.id=='5').one()
print('type:{0}'.format(type(user)))
print('name:{0}'.format(user.name))
# 关闭session
session.close()
# 更新
session = DBSession()
user_result = session.query(User).filter_by(id='1').first()
user_result.name = "jack"
session.commit()
session.close()
# 删除
session = DBSession()
user_willdel = session.query(User).filter_by(id='5').first()
session.delete(user_willdel)
session.commit()
session.close()