python基础课程3(看代码看注释)--数据库基本操作(mysql)

#人生苦短,我用python
#推荐一个python数据结构可视化工具,网址:http://www.pythontutor.com
##课表:1.mysql数据库的基本操作;2.用python操作基本数据库;3.编写python爬虫并保存到数据库

###数据库:存储数据的地方,平时指的数据库指的是数据管理系统,大型的数据管理软件,用来管理操作数据,excel叫表格数据操作软件
#安装mysql数据库,移步百度
###mysql数据库基本操作
#连接数据库
mysql -u root -p #u 是用户名,p:需要密码登录数据库
#查看数据库
show database;
#选择数据库
use database_name;#如use Examination(表示查看Examination数据库)
#查看数据库中table表
show table;
#查看表格的结构
desc table;#(如 desc score:查看score数据表结构)
#查看表中的数据
select * fromtable_name#select * from score ;
#查看表中的数据并限制数量
select * from table_name#select * from score limit 10;

##推荐一款软件,数据库管理工具,只在mac上有,叫做sequelpro,网址http://www.sequelpro.com,windows使用heidisql


##关系型数据库
dict = {
    'a':100,
    'b':200
}
##关系型数据库,另一种数据库是非关系型数据库,比较流行的是mongodb,redis

###mysql excel的不同:mysql是一种关系型数据库
import json
data_1 = "{'a':1,'b':2,'c':3}"
data_2 = '{"a":1,"b":2,"c":3}'
j_data = json.loads(data_2)
type(j_data)
with open('path','r') as f
   j_data = json.loads(f)
###用命令行操作数据库
##创建数据库
create database Examination_copy default charset utf8mb4;
##删除数据库
drop database Examination_copy;
##指定字符集和校对集,创建数据库
create database Examination_copy default charset utf8mb4 collate utf8MB4_general_ci;
##创建表格
create table class{
    'id' int(11)unsigned not null default#id字段整型11位无符号非空
    PRIMARY KEY('id')
}
#插入操作
insert into 'table_name'('id','name')
value(3,'高一3班')

#修改数据
update 'class' set 'name' = '高一五班'
where 'id' ='6'


###上述命令行操作数据库着实麻烦,我们接下来要学会使用python操作数据库
## Nevicat 强大的mysql数据管理软件
##python安装第三方库(windows环境):方法1.pip install 模块名称;方法2.conda install模块名称
import MySQLdb #没有安装的话需要安装###记住本机木有安装成功,记得有时间返回来安装呀>。<
#连接数据库

DATABASE = {
    'host':'localhost', #如果是远程数据库则为远程服务器的ip地址
    'database':'Ex',
    'user':'root',
    'password':'yuping',
    'charset':utf8
}
db = MySQLdb.comnect(host='localhost',database='Ex',user='root',password='yuping')
#等价于
db = MySQLdb.comnect('localhost','Ex','root','yuping')
#等价于
db = MySQLdb.comnect(**DATABASE)
##数据库中的游标概念
##查询语句
cursor = db.cursor()
sql = "select * from student where id<20"
cursor.excute(sql)#使用游标执行sql语句,执行结束后就可以用游标获取所有的结果
result = cursor.fetchall()
for row in result:
    print(row)
##连接数据库没有按照字符集指定我们数据库的编码格式时会打印出??号,在数据库中设置'charset':'utf8

#插入操作
sql = "insert into 'class'('name') values('高一四班');"
cursor = db.cursor()
cursor.execute(sql)
db.commit()
#删除操作
sql = "delete from 'class'('name') values('高一四班');"
cursor = db.cursor()
cursor.execute(sql)
db.commit()
#省略
#更新操作
sql = "update 'class' set 'name'= '高一四班';"
cursor = db.cursor()
cursor.execute(sql)
db.commit()

##捕捉异常
try:
    a = 10
    b = a+'hello'##捕捉了之后即使数据类型不一致不能相加也不会报错因为已经用except捕捉异常了最后打出了e
except Exception as e:##回本操作
    print(e)
try:
sql = "insert into 'class'('name') values('高一四班');"
cursor = db.cursor()
cursor.execute(sql)
db.commit()
except Exception as e1:
    pass
##回滚操作db.rockback()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值