python安装mysql数据库和实现增删查改操作
来源:互联网 发布:淘宝 投诉未生产扣分吗 编辑:程序博客网 时间:2024/05/20 06:51
主要记录一下在ubuntu 16.04下安装mysql 数据库,和Python MySQL开发的环境安装以及常见的mysql指令。
python版本是2.7
环境安装
安装mysql:
sudo apt-get updatesudo apt-get install mysql-server #安装mysql服务器sudo apt install mysql-clientsudo apt install libmysqlclient-dev
安装过程会让输入密码,跟着步骤来就行。
测试是否安装成功,出现下面数据则成功。
xuna@xuna-virtual-machine:~$ sudo netstat -tap | grep mysqltcp 0 0 localhost:mysql *:* LISTEN 1068/mysqld
启动mysql
sudo service mysql start
安装python库的MySQLdb模块
sudo apt-get install python-pip sudo apt-get install python-dev sudo pip install mysql-python
测试下模块是否安装成功,新建一个test.py,编写如下代码:
import MySQLdbprint MySQLdb
运行之后,打印出来MySQLdb模块的信息则安装成功:
xuna@xuna-virtual-machine:~/桌面$ python test.py<module 'MySQLdb' from '/usr/local/lib/python2.7/dist-packages/MySQLdb/__init__.pyc'>
创建数据库和表结构
为了下面演示python操作数据库,需要创建一个数据库和一个表(这是我用的都是在命令行下执行的),同时也记录mysql数据几个常见的命令
进入数据库
mysql -u root -p
root是创建mysql时的用户名,执行输入命令,进入数据库
xuna@xuna-virtual-machine:~/桌面$ mysql -u root -pEnter password: Welcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 4Server version: 5.7.19-0ubuntu0.16.04.1 (Ubuntu)Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql>
下面我们看一下mysql现在有哪些数据库,初次显示只有前四个,test数据库是我自己建立的。
mysql> show databases;+--------------------+| Database |+--------------------+| information_schema || mysql || performance_schema || sys || test |+--------------------+5 rows in set (0.01 sec)
创建数据库test1:
mysql> create database test1;Query OK, 1 row affected (0.00 sec)
查看创建的数据库(多出来一行我们刚才创建的数据库)
mysql> show databases;+--------------------+| Database |+--------------------+| information_schema || mysql || performance_schema || sys || test || test1 |+--------------------+6 rows in set (0.00 sec)
创建数据库表,首先我们要进入数据库使用use命令
mysql> use test1;Database changed
查看test1数据库中的表(因为我还没有创建表,所以显示的是empty)
mysql> show tables;Empty set (0.00 sec)
现在创建一个名为account的表,有字段id和name两项,且字段id为主键
mysql> create table account( -> id int(4) primary key auto_increment, -> name char(20) not null);Query OK, 0 rows affected (0.03 sec)
现在查看一下数据库表(可以看到刚刚创建的数据库)
mysql> show tables;+-----------------+| Tables_in_test1 |+-----------------+| account |+-----------------+1 row in set (0.00 sec)
也可以使用下面的命令看表的结构
mysql> describe account;+-------+----------+------+-----+---------+----------------+| Field | Type | Null | Key | Default | Extra |+-------+----------+------+-----+---------+----------------+| id | int(4) | NO | PRI | NULL | auto_increment || name | char(20) | NO | | NULL | |+-------+----------+------+-----+---------+----------------+2 rows in set (0.03 sec)
现在向表里添加几组数据
mysql> insert into account values ( '1','name1');Query OK, 1 row affected (0.02 sec)
使用selec查看添加的数据
mysql> select * from account;+----+-------+| id | name |+----+-------+| 1 | name1 || 2 | name1 || 3 | name3 || 4 | name4 || 5 | name5 || 6 | name6 |+----+-------+6 rows in set (0.00 sec)
Python操作数据库(重点)
这里主要通过一个小例子演示一下,注释很详细,就不多说啦。
介绍#connection对象支持下面4个方法#cursor() 游标对象用于执行查询和获取结果,它支持下面六个方法 # execute(op[,args]) 执行一个数据库查询和命令 # fetchone 取的结果集的下一行 # fetchmany (size) 获取结果集的下几行 # fetchall() 获取剩余的全部 # rowcount 最近一次执行execute返回数据的行数或影响行数 # close() 关闭游标对象#commit() 提交当前事务#rollback() 回滚当前事务#close() 关闭连接
链接代码
# -*- coding:utf-8 -*-import MySQLdb"""建立连接"""conn = MySQLdb.Connect( host = '127.0.0.1', port = 3306, #注意端口号为数字类型,其余都为字符串 user = 'root', passwd = 'root', db = 'test1', charset = 'utf8' )cursor = conn.cursor()"""查询操作"""sql = "select * from account"cursor.execute(sql)print cursor.rowcount#单行查询rs = cursor.fetchone()print rs#多行查询rs = cursor.fetchmany(2)print rs#全部查询rs = cursor.fetchall()print rs"""插入操作"""sql_insert = "insert into account values(%d,%s)"cursor.execute(sql_insert,(7,name7))print cursor.rowcount"""更新操作"""sql_update = "update account set name = 'xuna' where id =4"cursor.execute(sql_update)print cursor.rowcount"""删除操作"""sql_delete = "delete from account where id<3"cursor.execute(sql_delete)print cursor.rowcountconn.commit() #如果没有commit则上述命令对数据库不会改变cursor.close()conn.close()
运行结果
6(1L, u'name1')((2L, u'name1'), (3L, u'name3'))((4L, u'name4'), (5L, u'name5'), (6L, u'name6'))112
此时查看数据的变化
mysql> select * from account;+----+-------+| id | name |+----+-------+| 3 | name3 || 4 | xuna || 5 | name5 || 6 | name6 || 7 | name7 |+----+-------+5 rows in set (0.00 sec)
看到运行结果和数据库表的变化,对于python操作mysql数据库的流程也很清晰啦。
更新:
有时候你想一下子添加多组数据可以这样写:
mysql> insert into account values ( '1','name1'), ( '2','name2'), ( '3','name3'), ( '4','name4');
或者
sql_insert = "insert into account values(%d,%s)"cursor.executemany(sql_insert,[(1,name1),(7,name7),(2,name2),(3,name3)])print cursor.rowcount
阅读全文
1 0
- python安装mysql数据库和实现增删查改操作
- python操作MySQL数据库增删改查
- Java操作MySQL数据库实现增删查改操作
- python 连接mysql数据库 进行增删改查操作
- python操作mysql数据库(增删查改)
- python操作MySQL数据库增删改查使用MySQLdb
- python操作MySQL数据库(增删改查)
- Python之MySQL数据库增删改查操作
- Windows下安装MySQLdb, Python操作MySQL数据库的增删改查
- java jdbc连接mysql数据库实现增删改查操作
- shell脚本实现mysql数据库的增删改查操作
- 新手实现Python mysql数据库增删改查
- python 结合mysql数据库,在win7上安装和简单的增删改查
- Ubantu中mysql的安装和增删改查操作
- python3操作mysql数据库增删改查
- mySql数据库操作 增删改查
- MySQL 增删改查 数据库操作
- mysql数据库增删查改操作命令
- kendoGrid选中行信息
- final finally finalizable的区别
- ubuntu16搭建php7+phpredis拓展+nginx+mysql脚本(aws)
- 浅析三种特殊进程:孤儿进程,僵尸进程和守护进程.
- 《马云给年轻人的77条忠告》读书笔记2
- python安装mysql数据库和实现增删查改操作
- AppStore审核、排名规则及常用优化方法。
- zookeeper基础命令
- HDU5410(01背包+完全背包)
- java定时器的几种用法
- 线程的概念A
- 6.1 Tensorflow笔记(基础篇):队列与线程
- javascript(三)
- 未能加载文件或程序集“Oracle.DataAccess