Python学习_16 DB-API
1、re模块复习
import re
reg = re.compile()
reg.findall() 扫描整个字符串并返回所有匹配成功的值
reg.split() 将匹配到的结果以列表形式展示出来
reg.match() 尝试从字符串起始位置匹配
reg.search() 扫描整个字符串并返回第一个成功的匹配
reg.groups(s) 按照()来分组,s代表下标,从0开始
zh正则表达式[^]和^[]的区别:
用来表示一组字符,单独列出:[amk] 匹配'a','m'或'k'
[^...] : 不在[]中的字符:[^abc] 匹配除了a,b,c之外的字符
2、Python的DB-API
为大多数数据库实现了接口,使用它连接各数据库后,就可以用相同的方式操作各种数据库了
Python DB-API使用流程:
1.引入API模块;
2.获取与数据库的连接;
3.执行sql语句和存储过程;
4.关闭数据库连接。
3、pymysql
Python3版本中用于连接MySQL服务器的一个库,可以用命令pip install PyMySQL直接安装
4、MySQL的事物
数据库操作一个批次的数据就是一个事物,当这个批次所有数据均完成操作之后才可以提交成功,否则全部失败,这就是一个事物
一般来说,事务是必须满足4个条件(ACID):Atomicity(原子性)、Consistency(稳定性)、Isolation(隔离性)、Durability(可靠性)
•1、事务的原子性:一组事务,要么成功;要么撤回。
•2、稳定性 : 有非法数据(外键约束之类),事务撤回。
•3、隔离性:事务独立运行。一个事务处理后的结果,影响了其他事务,那么其他事务会撤回。事务的100%隔离,需要牺牲速度。
•4、可靠性:软、硬件崩溃后,InnoDB数据表驱动会利用日志文件重构修改。可靠性和高速度不可兼得, innodb_flush_log_at_trx_commit选项 决定什么时候吧事务保存到日志里Mysql的事物
4、MySQL的安装
linux用yum安装:
yum install mysql
yum install mysql-server
yum install mysql-devel
启动mysql:
service mysqld start
如果启动失败,cd /etc/rc.d/init.d目录,看下mysqld文件的权限
5、MySQL root用户设置密码
[root@VM_0_6_centos ~]# mysqladmin -u root password "new_password";
再次登录MySQL的时候就要提示输入密码:
[root@VM_0_6_centos ~]# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 5
Server version: 5.1.73 Source distribution
Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
6、MySQL常用操作
授权超级用户:
•grant all privileges on *.* to 'tangnanbing'@'%' identified by '1qa z@W SX' with grant option;
•查看都有哪些库 show databases;
•查看某个库的表 use db; show tables \G ;
•查看表的字段desc tb;
•查看建表语句 show create table tb;
•当前是哪个用户select user() ;
•当前库 select database() ;
•创建库 create database db1;
•创建表
create table t1 (id int, name char(40 ) adress varchar
7、云主机创建一个库,然后创建用户,创建密码并用navicat登录
1.安装完库之后,root默认没有密码,登录之后设置密码:
mysqladmin -u root password "password"
再次登录需输入密码
[root@VM_0_6_centos ~]# mysql -u root -p
Enter password:
2.创建一个库
mysql> create database yanzi;
3.创建一个用户
mysql> CREATE USER 'yanzi'@'%' IDENTIFIED BY 'yanzi';
4.授权新用户权限:
grant all privileges on *.* to 'yanzi'@'%' identified by 'password' with grant option;
注:*.*是所有用户所有库,属于超级管理员权限,一般授权格式:GRANT privileges ON databasename.tablename TO 'username'@'host'
如果想让该用户可以授权,可以用:GRANT privileges ON databasename.tablename TO 'username'@'host' WITH GRANT OPTION;
8、MySQL的连接
写一个连接数据库的类,只要连数据库,直接调用类
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2018\5\6 0006 21:09
# @Author : xiexiaolong
# @File : demon1.py
import pymysql
class ConnectMySQL(object):
def __init__(self):
self.dbConfig = {
'host':'193.112.207.252',
'port':3306,
'user':'yanzi',
'password':'password',
'db':'yanzi',
'charset':'utf-8'
}
conn = pymysql.connect(**self.dbConfig)
self.a = conn
if __name__ == '__main__':
connectMySQL = ConnectMySQL()
sql = '''inset into test (id,name) values (2,yanzi) '''