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