python_MySQL笔记
笔记原创,图片来自慕课网python数据库教程
一 mysql常用命令
1 登录
mysql -u -root -p
2 登出
q\
3 显示数据库(或表)
show databases;
4 创建database
creat database 数据库名;
5 操作database
use 数据库名;
6 创建表
create table 表名(1列 类型int ,2列 类型varchar(10));
6_1 创建自增表
创建:
create table cc(
id int auto_increment,
name varchar(20),
primary key(id)
);
修改:
alter table cc change id id int primary key auto_increment;
7 插入
insert into 表名(1列 ,2列)values(什么 ,什么);
8 查找
select *全部/某列名字 from 表名;
查找指定字段
select 列名 from 表名 where 数据=什么
9 更新
update 表名 set 某列名子 = 什么 where id = 1;
10 删除表(或数据库)
drop table 表名;
11 删除数据
删除表内所有数据
delete from 表名
删除指定数据
delete from 表名 where id = 1
二 MySQLdb模块基本操作
1 #!/usr/bin/env python 2 #coding:utf-8 3 4 import MySQLdb 5 6 #1 连接 7 conn = MySQLdb.connect(host='127.0.0.1',user='root',passwd='123456',db='base1') 8 #连接数据库 9 10 #1_1 以元组形式获取 11 cur = conn.cursor() 12 #创建一个手 13 14 #1_2 以字典形式获取 15 cur = conn.cursor(cursorclass = MySQLdb.cursors.DictCursor) 16 17 18 #2_1 操作查询 19 recount = cur.execute('select * from userinfo') 20 #抓取执行条数 21 22 #2_1_1 抓取全部数据 23 data = cur.fetchall() 24 25 #2_1_2 抓取一条 包含指针操作(绝对位置与相对位置) 26 data = cur.fetchone() 27 print data 28 data = cur.fetchone() 29 print data 30 cur.scroll(0,mode='absolute') 31 #绝对位置,指针指向第一个数 32 cur.scroll(-1,mode='relative') 33 #相对位置 指针指向-1也就社上一个数 34 data = cur.fetchone() 35 print data 36 37 #2_2 插入 38 sql = 'insert into userinfo (name,adress) values(%s,%s)' 39 #%s是占位符,不是格式化,没有%s,%d什么的 40 params = ('Curry','US') 41 recount = cur.execute(sql,params) 42 conn.commit() 43 #提交请求,使数据库可以生成 44 45 #2_3 删除 46 sql = 'delete from userinfo where id = %s' 47 params = (2) 48 recount = cur.execute(sql,params) 49 conn.commit() 50 51 #2_4 更新 52 sql = 'update userinfo set name = %s where id = %s' 53 params = ('Kobe',9) 54 recount = cur.execute(sql,params) 55 conn.commit() 56 57 #2_5插入多条数据 58 lst = [ 59 ('P1','100'), 60 ('P2','200') 61 ] 62 recount = cur.executemany('insert into userinfo (name,adress) values (%s,%s)',lst) 63 conn.commit() 64 65 66 #3 关闭 67 cur.close() 68 #把手伸回来 69 conn.close() 70 #关门 71 72 73 print recount 74 75 print data
三 多表建立联系
1 #!/usr/bin/env python 2 #coding:utf-8 3 4 import MySQLdb 5 6 #1 连接 7 conn = MySQLdb.connect(host='127.0.0.1',user='root',passwd='123456',db='base1') 8 #连接数据库 9 #1_1 以元组形式获取 10 cur = conn.cursor() 11 #创建一个手 12 13 m_sql = 'insert into media (content) values(%s)' 14 m_params = 'some informations' 15 m_recount = cur.execute(m_sql,m_params) 16 new_id = cur.lastrowid 17 #获取自增id 18 19 r_sql = 'insert into relative (title,meida_id) values (%s,%s)' 20 title = 'love_heart' 21 r_params = (title,new_id) 22 r_recount = cur.execute(r_sql,r_params) 23 conn.commit() 24 25 #3 关闭 26 cur.close() 27 #把手伸回来 28 conn.close() 29 #关门
四 mysql一些常用API(图片来自慕课网)
五 查询和更改的流程图
1 select
2 更改
报错:
SQLError: not all arguments converted during string formatting
解决办法: 以元组的形式传入数据
sql = 'insert into word_table (url, word) values (%s, %s)' self._db.my_execute(sql, (url, word))