mysql pymysql_MySQL与pymysql

本文介绍了MySQL的Windows安装步骤,包括下载、解压、初始化、启动服务、配置环境变量和注册服务。同时,讲解了数据库的基础知识,如用户与权限管理、SQL语句。最后,详细阐述了Python的pymysql模块如何进行数据库连接、数据插入和查询。

一、概述

MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中。Python操作MySQL主要使用pymsql模块和ORM框架 SQLAchemy。

二、MySQL安装

MySQL官方下载地址:点这里

windows安装:

1、下载

MySQL Community Server 5.7.23

2、解压

解压至D:\mysql-5.7.23-winx64目录中

3、初始化(默认不给root用户设置密码)

D:\>cd mysql-5.7.23-winx64

D:\mysql-5.7.23-winx64>cd bin

D:\mysql-5.7.23-winx64\bin>mysqld --initialize-insecure

4、启动服务

D:\mysql-5.7.23-winx64\bin>mysqld.exe

5、客户端连接服务器端

d:\mysql-5.7.23-winx64\bin>mysql.exe -u root -p

Enter password:

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connection id is 2

Server version: 5.7.23 MySQL Community Server (GPL)

Copyright (c) 2000, 2018, 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、添加环境变量

【右键此电脑】--》【属性】--》【高级系统设置】--》【高级】--》【环境变量】--》【在第二个内容框中找到 变量名为Path 的一行,双击】 --> 【新建】-->【将MySQL的bin目录路径复制进去】

7、注册windows服务

D:\mysql-5.7.23-winx64\bin>mysqld.exe --install

Service successfully installed.

如想移除服务可跟参数--remove

8、使用net管理mysql服务

# 启动MySQL服务

net start mysql

# 关闭MySQL服务

net stop mysql

Linux安装:

安装:

yum install mariadb-server -y

yum install mariadb -y

服务端启动

systemctl start mariadb-server

三、数据库基础知识

1、mysql用户与权限管理

1、显示数据库

mysql> SHOW DATABASES;

+--------------------+

| Database |

+--------------------+

| information_schema |

| mysql |

| performance_schema |

| sys |

+--------------------+

4 rows in set (0.00 sec)

2、用户管理

如果你需要添加 MySQL 用户,你只需要在 mysql 数据库中的 user 表添加新用户即可。

创建用户

create user '用户名'@'IP地址' identified by '密码';

删除用户

drop user '用户名'@'IP地址';

修改用户

rename user '用户名'@'IP地址'; to '新用户名'@'IP地址';;

修改密码

set password for '用户名'@'IP地址' = Password('新密码')

重载:在注意需要执行 FLUSH PRIVILEGES 语句。 这个命令执行后会重新载入授权表。

FLUSH PRIVILEGES

用户名@IP地址 表示用户只能在该IP下才能访问

用户名@192.168.1.% 表示用户只能在该IP段下才能访问(通配符%表示任意)

用户名@% 表示用户可以再任意IP下访问(默认IP地址为%)

3、授权管理

授权jym用户用于所有数据库的所有权限

grant all privileges on *.* to 'jym'@'192.168.%.%';

查看权限

show grants for 'jym'@'192.168.%.%';

权限列表

all privileges :除grant外的所有权限

select :仅查权限

select,insert :查和插入权限

...

对于目标数据库

数据库名.* 数据库中的所有

数据库名.表 指定数据库中的某张表

数据库名.存储过程 指定数据库中的存储过程

*.* 所有数据库

2、基本SQL语句

1、创建数据库

mysql> CREATE DATABASE pydb;

2、删除数据库

mysql> DROP DATABASE pydb;

3、使用数据库

mysql> use pydb;

4、创建表

mysql> CREATE TABLE IF NOT EXISTS `py_tbl`(

-> `py_id` INT UNSIGNED AUTO_INCREMENT,

-> `py_title` VARCHAR(100) NOT NULL,

-> `py_author` VARCHAR(40) NOT NULL,

-> `submission_date` DATE,

-> PRIMARY KEY ( `py_id` )

-> )ENGINE=InnoDB DEFAULT CHARSET=utf8;

Query OK, 0 rows affected (0.02 sec)

解析:

1.null表示空,非字符串,not null表示不可空。

2.AUTO_INCREMENT定义列为自增的属性,一般用于主键,数值会自动加1。

3.PRIMARY KEY关键字用于定义列为主键。主键是一种特殊的唯一索引,不允许有空值,如果主键使用单个列,则它的值必须唯一,如果是多列,则其组合必须唯一。

4.ENGINE 设置存储引擎,CHARSET 设置编码。

5、删除表

mysql> DROP TABLE py_tb1;

6、增

mysql> CREATE TABLE py_tb1(nid INT,name VARCHAR(20),password VARCHAR(64));

mysql> INSERT INTO py_tb1(nid,name,password) VALUES(1,'aaa','123');

mysql> INSERT INTO py_tb1(nid,name,password) VALUES(2,'bbb','123');

7、查

mysql> SELECT * FROM py_tb1;

+------+------+----------+

| nid | name | password |

+------+------+----------+

| 1 | aaa | 123 |

| 2 | bbb | 123 |

+------+------+----------+

2 rows in set (0.00 sec)

8、删

mysql> delete from py_tb1 where nid=2 and name='bbb';

9、改

mysql> update py_tb1 set name='newaaa' where nid=1;

四、pymysql

pymysql是python中操作mysql的模块。

1、安装

pip3 install pymysql

2、插入数据

import pymysql

# 创建连接

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

# 创建游标

cursor = conn.cursor()

# 执行SQL,并返回受影响行数

ret = cursor.execute("INSERT INTO py_tbl (py_title, py_author, submission_date) VALUES ('python', 'admin', NOW());")

# 提交,不然无法保存新建或者修改的数据

conn.commit()

# 关闭游标

cursor.close()

# 关闭连接

conn.close()

3、查询数据

import pymysql.cursors

# 创建连接

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

# 创建游标

cursor = conn.cursor()

sql = "SELECT * FROM py_tbl;"

# 执行SQL

cursor.execute(sql)

# 查询数据库单条数据

#ret = cursor.fetchone()

#print(ret)

# 查询数据库多条数据

ret = cursor.fetchall()

for data in ret:

print(data)

# 关闭数据连接

conn.close()

查询结果

(1, 'MySQL', 'root', datetime.date(2018, 8, 3))

(2, 'python', 'admin', datetime.date(2018, 8, 3))

4、pymysql主要方法

cursor():创建数据库游标。

execute():执行SQL语句。

commit():将数据库的操作真正的提交到数据。

fetchone() :查询单条数据。

fetchall() :查询多条数据。

close() :关闭数据连接。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值