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))

 

posted @ 2016-11-01 18:43  fuzzier  阅读(142)  评论(0编辑  收藏  举报