下面一起来了解下Python自动化管理Mysql数据库教程,相信大家看完肯定会受益匪浅,文字在精不在多,希望Python自动化管理Mysql数据库教程这篇短内容是你想要的。

1.MYSQL 语言的分类

(1) DDL 数据库定义

(2) DQL 数据库查询

(3) DML 数据库操作

(4) DCL 数据库权限

2.MYSQL 操作

(1) 创建数据库

mysql>createdatabasecmdbdefaultcharsetutf8;

(2)查看所有的数据库

mysql>showdatabases;+--------------------+|Database|+--------------------+|information_schema||cmdb||mysql||performance_schema||sys|+--------------------+5rowsinset(0.00sec)

(3) 使用cmdb数据库

mysql>usecmdb;

(4) 查看数据库的创建语法

mysql>showcreatedatabasecmdb;

(5) 删除数据库

mysql>dropdatabasecmdb;

(6) 查看所有的表

mysql>showtables;

(7) 创建用户表

mysql>createtableuser(idint,namevarchar(64),ageint,sexboolean,telphonevarchar(32),addrvarchar(512))engine=innodbdefaultcharsetutf8;

(8) 查看创建表的过程

mysql>showcreatetableuser;

(9) 删除表

mysql>droptableuser;

(10) 查看表结构

mysql>descuser;

(11) 插入数据

mysql>insertintouser(id,name,age,sex,telphone,addr)values(1,'李宽',25,1,'18829787559','陕西省西安市');

(12) 查看数据

mysql>select*fromuser;

(13) 只查询指定的列

mysql>selectname,addrfromuser;

(14) 条件查询

where

逻辑关联词 and or

关系表达式 > < = >= <= !=

like表达式

(1) % 占多位 'abc%' '%abc'

(2) _ 占一位 ‘abc_’ '_abc'

in 的使用 colname in (a,b)

not in 的使用 colname not in (a,b)

selectname,age,addrfromuserwhereaddr='陕西省西安市'andage=25;

mysql>selectname,age,addrfromuserwhereaddr='陕西省西安市'orage=25;

selectname,age,addrfromuserwhereaddr='陕西省西安市'orage>25;

mysql>selectname,age,addrfromuserwhereage>=25;

mysql>selectname,age,addrfromuserwhereage!=25;

selectname,age,addrfromuserwhereage<25;

mysql>selectname,age,addrfromuserwhereaddrlike'陕西省%';

mysql>selectname,age,addrfromuserwhereaddrlike'%市';

mysql>selectname,age,addrfromuserwherenot(addrlike'临汾市');

mysql>selectname,age,addrfromuserwhereagein(23,25);

mysql>selectname,sex,age,addrfromuserwhereagenotin(15,25);

(15) 查询总数

mysql>selectcount(*)fromuser;

3.创建CMDB的用户表

建表的sql,性别在数据库中存储的时候,男存1,女存0

CREATETABLEuser(idintprimarykeyauto_increment,namevarchar(32)uniquenotnulldefault'',passwordvarchar(512)notnulldefault'',ageintnotnulldefault18,sexbooleannotnulldefault1,telvarchar(16)notnulldefault'',addrtext,add_timedatetime)ENGINE=INNODBDEFAULTCHARSETutf8mb4;

批量插入测试数据

insertintouser(name,password,age,sex,tel,addr,add_time)values('kk',md5('kk'),30,1,'15200000000','西安市',now()),\('woniu',md5('woniu'),30,1,'15200000001','北京市',now()),('zhangzhengguang',md5('zhangzhengguang'),30,1,'15200000003','杭州市',now()),\('likuan',md5('likuan'),30,1,'15200000002','西安市',now())

查看用户登录的用户名和密码

mysql>selectname,passwordfromuserwherename='likuan'andpassword=md5('likuan');

查找所有的数据

mysql>selectid,name,password,age,sex,tel,addrfromuser;

限制查询的数据 (limit可以用来做分页)

mysql>selectid,name,password,age,sex,tel,addrfromuserlimit1;

Limit和offset结合使用

mysql>selectid,name,password,age,sex,tel,addrfromuserlimit2offset2;

排序 (降序和升序)

降序(desc)

Mysql>selectid,name,password,age,sex,tel,addrfromuserorderbyagedesc;

升序(asc)

mysql>selectid,name,password,age,sex,tel,addrfromuserorderbyageasc;

更新操作

mysql>updateusersetage=15whereid=3;mysql>updateusersetname='kk',tel='152',sex=1,addr='西安市'whereid=1;

删除操作

mysql>deletefromuserwhereid=1;mysql>deletefromuser;

聚合函数

mysql>selectmax(age),min(age),avg(age),count(age),sum(age)fromuser;

分类统计

mysql>selectaddr,count(*)fromusergroupbyaddr;

mysql>selectaddr,age,count(*)fromusergroupbyaddr,age;

4.Python代码里操作mysql

首先需要安装mysql的开发包 mysql-devel

其次pip安装 mysqlclient

使用是导入包 MysqlSQLdb

Python操作mysql的七步

(1)导入模块

importMySQLdb

(2)创建连接

conn=MySQLdb.connect(host='127.0.0.1',port=3306,user='root',passwd='passwd',db='cmdb')

(3)获取游标

cursor=conn.cursor()

(4)执行sql(DQL 和 DML)

DQL

返回符合条件的个数

cursor.execute("selectid,namefromuserwherename='likuan'andpassword=md5('likuan');")

DML

cursor.execute("updateusersetage=35whereid=1")

(5)DQL获取结果 、DML提交执行

DQL(元组)

cursor.fetchall()cursor.fetchone()>>>cursor.fetchall()(('kk',),('likuan',),('woniu',),('zhangzhengguang',))

DML 提交

conn.commit()

(6)关闭游标

cursor.close()

(7)关闭连接

conn.close()

5.提交sql采用预处理的方式(预防sql注入)

(1)将操作和数据分开

(2)两个变量,一个是sql操作,一个是对应的数据

(3)只有数据才可以占位,操作不能占位

看完Python自动化管理Mysql数据库教程这篇文章后,很多读者朋友肯定会想要了解更多的相关内容,如需获取更多的行业信息,可以关注我们的行业资讯栏目。