数据库基础-----使用python命令行创建数据库

本文详细介绍如何使用Python通过pymysql和SQLAlchemy模块进行数据库的增删改查操作,包括简单的SQL执行、参数化查询、批量操作及ORM方式的数据库交互。

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

用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()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值