用python命令行执行数据库创建语句。
1.简单式创建:
步骤:
import pymysql
#1.创建连接
conn=pymysql.connect(host='10.10.42.91',user='root',password='******',database='day04',charset='utf8',port=3306)
print(conn)
#2.获取游标
con=conn.cursor()
#3。编写aql语句
sql="insert into account(id,name,money) VALUES (6,'lily',100),(7,'asd',400)"
#4。执行sql
con.execute(sql)
#5.提交事务
conn.commit()
#6.关闭连接
con.close()
conn.close()
其中host表示本机地址,可以用localhost代替。
2.创建的第二种方法:
import pymysql
name=input("请输入姓名:")
money=int(input('请输入金额:'))
conn=pymysql.connect(
host='10.10.42.91',
user='root',
password='123456',
database='day04',
charset='utf8',
port=3306
)
cur=conn.cursor()
sql="insert into account(name,money) values(%s,%s)"
sql="insert into account(name,money) values(%(a)s,%(b)s)"
cur.execute(sql,(name,money))#将name和money的值传给sql
cur.execute(sql,{'a':name,'b':money})
conn.commit()
cur.close()
conn.close()
3.数据库增删改查操作
import pymysql
conn=pymysql.connect(
host='10.10.42.91',
user='root',
password='123456',
database='day04',
charset='utf8',
port=3306
)
cur=conn.cursor()
#1.批量增加
# sql="insert into account(name,money) values(%s,%s)"
# cur.executemany(sql,[('lily',100),('asd',400)])
#2.删除操作
# sql="delete from account where name='lily'"
# cur.execute(sql)
#3.修改操作
# sql="update account set money=%s where name=%s"
# cur.execute(sql,(300,'asd'))
#4.查找操作
sql="select * from account"
cur.execute(sql)
# user=cur.fetchone()#获取一条数据
# print(user)
# user2=cur.fetchall()#获取全部数据
# print(user2)
user3=cur.fetchmany(2)#获取指定个数
print(user3)
conn.commit()
cur.close()
conn.close()
4.利用python模块进行数据库操作
from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column,Integer,String
from sqlalchemy.orm import sessionmaker
#1.创建引擎。
eng=create_engine("mysql+pymysql://root:123456@localhost/day04?charset=utf8")
print(eng)
#2.创建基类。
Base=declarative_base()
#3.创建类。 对应数据库表格
class Student(Base):
__tablename__='student'#指定表格的名称
id=Column(Integer,primary_key=True,autoincrement=True)
name=Column(String(32),nullable=False)#非空约束
email=Column(String(32),unique=True)#unique 唯一约束
#4.创建表格。
Base.metadata.create_all(eng)
#5.删除表格。
#Base.metdata.drop_all(eng)
#6.添加纪录。
Session=sessionmaker(bind=eng)
session=Session()#创建session对象,相当于pymysql中的conn
# student=Student(name='张三',email='112@sq.com')#创建student对象
# session.add(student)#添加纪录
#批量增加
'''
session.add_all(
[
Student(name='小丽',email='113@qq.com'),
Student(name='小王',email='115@qq.com'),
Student(name='小聪',email='117@qq.com')
]
)
'''
#查询操作
#first()方法
# student=session.query(Student.name,Student.email).first()#select * from student limit1;
# print(student)
#get()方法
# student=session.query(Student).get(ident=4)#使用唯一标识
# print(student.id,student.name,student.email)
# ret=session.query(Student).filter(Student.id>3)
# for stu in ret:
# print(stu.id,stu.name)
#filter_by后面的条件不需要添加类名。
# ret=session.query(Student).filter_by(id=2)
# for stu in ret:
# print(stu.id,stu.name,stu.email)
#删除操作
#删除单个对象
# ret =session.query(Student).first()
# session.delete(ret)
#删除多个对象
session.query(Student).filter(Student.id>2).delete()
#修改对象
#单个修改
# student=session.query(Student).first()
# student.name='刘备'
# student.email='111@qq.com'
#多个修改
# session.query(Student).filter_by(id=3).update({'name':'张飞','email':'118@qq.com'})
#
# session.commit()
# session.close()