python+mysql

一、数据库配置

1.安装数据库

[root@localhost ~]# yum install mariadb-server -y        #安装mariadb
[root@localhost ~]# systemctl start mariadb              #开启mariadb服务

2.mysql初始化

[root@localhost ~]# mysql_secure_installation            #设置密码,其余全部回车

3.数据库的网页管理工具

[root@localhost ~]# yum install http php -y         #下载http 和 php服务器
[root@localhost ~]#systemctl start httpd            #开启http服务
[root@localhost ~]# systemctl stop firewalld        #关闭火墙
根据php、mariadb的版本,选择phpmyadmin版本
[root@localhost ~]# cd /var/www/html/
[root@localhost html]# ls
phpMyAdmin-3.4.0-all-languages.tar.bz2
[root@localhost html]# tar jxf phpMyAdmin-3.4.0-all-languages.tar.bz2   #解压
[root@localhost html]# mv phpMyAdmin-3.4.0-all-languages mysqladmin     #修改文件名
[root@localhost html]# cd mysqladmin
[root@localhost mysqladmin]# cp config.sample.inc.php config.inc.php
[root@localhost mysqladmin]# yum install php-mysql.x86_64 -y   #安装php支持的mysql软件
[root@localhost mysqladmin]# systemctl restart httpd

浏览器测试:
http://172.25.254.8/mysqladmin/
这里写图片描述

4.安装python-mysql软件

[kiosk@foundation8 ~]$ yum install gcc -y
[kiosk@foundation8 ~]$ yum install MySQL-python.x86_64 -y
[kiosk@foundation8 ~]$ pip install MySQL-python -y         #联网下载安装

完成后,在pycharm中调用数据库时输入M会提示MySQLdb
这里写图片描述
5.在数据库中建立一个表

[kiosk@foundation8 ~]$ mysql -uroot -p
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 15
Server version: 5.5.52-MariaDB MariaDB Server

Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
+--------------------+
3 rows in set (0.00 sec)

MariaDB [(none)]> create database python;
Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| python             |
+--------------------+
4 rows in set (0.00 sec)

MariaDB [(none)]> use python;
Database changed
MariaDB [python]> create table userInfo(id int,name varchar(10));
Query OK, 0 rows affected (0.10 sec)

MariaDB [python]> show tables;
+------------------+
| Tables_in_python |
+------------------+
| userInfo         |
+------------------+
1 row in set (0.00 sec)

MariaDB [python]> select * from userInfo;
Empty set (0.00 sec)

MariaDB [python]> insert into userInfo(id,name)value(1,'tom');
Query OK, 1 row affected (0.32 sec)

MariaDB [python]> select * from userInfo;
+------+------+
| id   | name |
+------+------+
|    1 | tom  |
+------+------+
1 row in set (0.00 sec)

MariaDB [python]> update userInfo set name = 'zmy';
Query OK, 1 row affected (0.07 sec)
Rows matched: 1  Changed: 1  Warnings: 0

MariaDB [python]> select * from userInfo;
+------+------+
| id   | name |
+------+------+
|    1 | zmy  |
+------+------+
1 row in set (0.00 sec)

MariaDB [python]> update userInfo set name = 'wwy' where id = 1;
Query OK, 1 row affected (0.10 sec)
Rows matched: 1  Changed: 1  Warnings: 0

MariaDB [python]> select name from userInfo;
+------+
| name |
+------+
| wwy  |
+------+
1 row in set (0.00 sec)

数据库详细操作请点击:linux系统mariadb数据库管理

二、python数据库

查找

查_1.py

# _*_ coding:utf-8 _*_
"""
file:查_1.py
date:2018-07-25 10:20 AM
author:wwy
desc:

"""


import MySQLdb
# 打开门
conn = MySQLdb.connect(host='127.0.0.1',user='root',passwd='123',db='python')

# 伸出手
cur = conn.cursor()

# 拿东西
recont = cur.execute('select * from userInfo')

# 把手伸回来
cur.close()

# 把门关上
conn.close()

print recont

运行结果:
这里写图片描述
显示内容只有一行

查_2.py

# _*_ coding:utf-8 _*_
"""
file:查_2.py
date:2018-07-25 10:27 AM
author:wwy
desc:

"""


import MySQLdb
# 打开门(连接数据库)
conn = MySQLdb.connect(host='127.0.0.1',user='root',passwd='123',db='python')

# 伸出手(创建可以执行查询的指针,指针指向数据库)
#cur = conn.cursor()     #创建一个手(指针)

# 拿东西(执行)这个东西影响了多少行
recont = cur.execute('select * from userInfo')
# 指针指向数据
data = cur.fetchall()

# 把手伸回来(关闭指针)
cur.close()

# 把门关上(关闭链接)
conn.close()

print recont
print data

运行结果:
这里写图片描述

# 伸出手(创建可以执行查询的指针,指针指向数据库)
#cur = conn.cursor()     #创建一个手(指针)
# 以字典的方式显示
cur = conn.cursor(cursorclass = MySQLdb.cursors.DictCursor)

运行结果:
这里写图片描述
在python数据库中添加一个表,命名为usermg(可任意命名)
这里写图片描述

增添

增.py

# _*_ coding:utf-8 _*_
"""
file:增.py
date:2018-07-25 11:02 AM
author:wwy
desc:

"""


import MySQLdb

# 打开门
conn = MySQLdb.connect(host='127.0.0.1',user='root',passwd='123',db='python')

# 伸出手
cur = conn.cursor()

# 操作数据
sql = 'insert into usermg(id,name,address) values(%s,%s,%s)'
params = ('1','zmy','usa')
recount = cur.execute(sql,params)

# 提交请求
conn.commit()

# 把手伸回来
cur.close()

# 把门关上
conn.close()
print recount

运行结果:
这里写图片描述
显示操作了一行
打开网页数据库查看
这里写图片描述

修改

改.py

# _*_ coding:utf-8 _*_
"""
file:改.py
date:2018-07-25 11:23 AM
author:wwy
desc:

"""


import MySQLdb

# 打开门
conn = MySQLdb.connect(host='127.0.0.1',user='root',passwd='123',db='python')

# 伸出手
cur = conn.cursor()

# 操作数据
sql = 'update usermg set name = %s where id = %s'
params = ('xmm','1',)
recount = cur.execute(sql,params)

# 提交请求
conn.commit()

# 把手伸回来
cur.close()

# 把门关上
conn.close()
print recount

运行结果:
这里写图片描述
已更改一行内容
网页数据库管理器
这里写图片描述
name已改为xmm

删除

删.py

# _*_ coding:utf-8 _*_
"""
file:删.py
date:2018-07-25 11:18 AM
author:wwy
desc:

"""


import MySQLdb

# 打开门
conn = MySQLdb.connect(host='127.0.0.1',user='root',passwd='123',db='python')

# 伸出手
cur = conn.cursor()

# 操作数据
sql = 'delete from usermg where id = %s'
params = (1,)         #这里params是一个元组,如果不加后面那个逗号会默认params为int型
recount = cur.execute(sql,params)

# 提交请求
conn.commit()

# 把手伸回来
cur.close()

# 把门关上
conn.close()
print recount

运行结果:
这里写图片描述
网页数据库:
这里写图片描述
表中已经没有内容

插入多条数据

插入多条数据.py

# _*_ coding:utf-8 _*_
"""
file:插入多条数据.py
date:2018-07-25 11:38 AM
author:wwy
desc:

"""


import MySQLdb

# 打开门
conn = MySQLdb.connect(host='127.0.0.1',user='root',passwd='123',db='python')

# 伸出手
cur = conn.cursor()

# 操作数据
recount = 'insert into usermg(id,name,address) values(%s,%s,%s)'
li =[
    ('2','xls','china'),
    ('3','jcl','china'),
]
recount = cur.executemany(recount,li)

# 提交请求
conn.commit()

# 把手伸回来
cur.close()

# 把门关上
conn.close()
print recount

运行结果:
这里写图片描述
网页数据库管理器:
这里写图片描述
已插入两行

练习
需求:去超市买东西,向收银员支付100元
首先在python库中创建一张表
这里写图片描述
利用插入多条数据,顾客有100元,收银员还没有收到钱

# _*_ coding:utf-8 _*_
"""
file:插入多条数据.py
date:2018-07-25 11:38 AM
author:wwy
desc:

"""


import MySQLdb

# 打开门
conn = MySQLdb.connect(host='127.0.0.1',user='root',passwd='123',db='python')

# 伸出手
cur = conn.cursor()

# 操作数据
recount = 'insert into money(id,money) values(%s,%s)'
li =[
    ('1','100'),
    ('2','0'),
]
recount = cur.executemany(recount,li)

# 提交请求
conn.commit()

# 把手伸回来
cur.close()

# 把门关上
conn.close()
print recount

运行结果:
这里写图片描述
这里写图片描述
commit.py

# _*_ coding:utf-8 _*_
"""
file:commit.py
date:2018-07-25 1:52 PM
author:wwy
desc:
提交和回滚    在数据库李叫事务操作
"""

import MySQLdb
conn = MySQLdb.connect(host='127.0.0.1',user='root',passwd='123',db='python')
cur = conn.cursor()

sql = 'update money set money = %s where id =1'
params = ('0',)
recount = cur.execute(sql,params)

sql = 'update money set money = %s where id =2'
params = ('100',)
recount = cur.execute(sql,params)
conn.commit()

运行结果:
这里写图片描述
这里写图片描述

猜你喜欢

转载自blog.csdn.net/wwy0324/article/details/81223252