python数据库简单操作

#python2.7
#mysql

数据库连接:
1.普通连接

import MySQLdb
try:
    db = MySQLdb.connect(host = base_ip,user = base_user,charset = 'utf8',passwd = base_pwd,db = base_db)
except Exception as e:
    print e

cursor = db.cursor()
cursor.execute('select * from table_name')
cursor.fetchall()
db.close()

2.连接池连接

import pymysql

from DBUtils.PooledDB import PooledDB
mysql_db_pool=PooledDB(creator=pymysql, mincached=1, maxcached=2, maxconnections=100, host=host, port=3306, user=user, passwd=passwd, db=db, charset='utf8', use_unicode=False, blocking=True)#maxconnections为最大连接数

db = mysql_db_pool.connection() # 连接
cursor = db.cursor()
...
#其他基本操作与普通连接数据库无异

数据库更新:

sql = "update table_name set data1='{0}' where data_id='{1}' " .format(up1,flag)
try:
    cursor.execute(sql)
    cursor.commit()
except Exception as e:
    cursor.rollback()
    print e
cursor.close()

数据库插入:

sql = """INSERT INTO table_name(
    data1,data2,data3,data4)
    VALUES (%s,%s,%s,%s)"""
    #不管要入库的数据是什么格式都写成 %s
try:
    cursor.execute(sql,(data_str,data_text,data_json,data_int))
    db.commit()  #
except:
    cursor.rollback()
db.close()

<>至于数据库其他操作,一般直接操作数据库<>

MyCli:支持自动补全和语法高亮的 MySQL 客户端
安装:
$ pip install mycli
如果是OS X平台:
$ brew install mycli 
怕麻烦就直接使用mysql
#下面mycli命令和mysql可以互换
#大小写无所谓,为了区分而已

建/删除数据库:

#root权限下 #create:建 #drop:删除
mysqladmin -u root -p create DATABASE
Enter password:******

建/删除表:
如果要建一个和已知表相同的表

show create table table_name;
#复制粘贴就行了(和下面一样)
CREATE TABLE IF NOT EXISTS `table_name`(
   `data_1` INT UNSIGNED AUTO_INCREMENT,
   `data_2` VARCHAR(100) NOT NULL,
   `data_3` VARCHAR(40) NOT NULL,
   `data_4` DATE,
   PRIMARY KEY ( `data_1` )
)ENGINE=InnoDB DEFAULT CHARSET=utf8;

删除

#删除表中全部或者部分数据
DELETE FROM table_name WHERE data_1 = '123';
#删除表
DROP TABLE table_name;

连接数据库:

mycli -hHOST -uUSER -pPSW 

查看/选择数据库

show databases;
use database_name;

查看数据表

show tables;

查找:

SELECT * FROM table_name;
SELECT * FROM table_name LIMIT 5\G;
SELECT data1,data2 FROM table_name WHERE data = '123';
SELECT DISTINCT data1 FROM table_name ;  #无重复查找
#查找id重复数大于1的所有数据
SELECT id,COUNT(id) AS s_count FROM table_name WHERE source=sr GROUP BY id HAVING s_count>1

一个表的数据插入另一个表中

#[input table]
INSERT INTO target SELECT * FROM source;
INSERT IGNORE INTO target SELECT * FROM source; #忽略键值重复的
REPLACE INTO target SELECT * FROM source; #替换键值重复的

导出数据本地:

$ mysqldump -hHOST -uUSER -pPSW database_name table_name > tmp.sql

从本地导入数据:

$ mysqlimport -hHOST -uUSER -pPSW --local database_name tmp.sql

写在最后

关于linux/unix下mysql的命令设置

编辑~/.bashrc文件,加入下面语句
alias mysql=/usr/local/mysql/bin/mysql
alias mysqladmin=/usr/local/mysql/bin/mysqladmin
编辑~/.bash_profile文件,加入下面语句
source ~/.bashrc

完成后mysql命令便会永久生效
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值