MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。
MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司。MySQL 是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
下载地址:
https://dev.mysql.com/downloads/mysql/
搜狐的MYSQL镜像的下载地址:
http://mirrors.sohu.com/mysql/MySQL-8.0/
阿里云开源镜像:
http://mirrors.aliyun.com/mysql/MySQL-8.0
搜狐的MYSQL镜像的下载地址:
http://mirrors.sohu.com/mysql/MySQL-5.7/
阿里云开源镜像:
https://mirrors.aliyun.com/mysql/MySQL-5.7/
下载完后,我们将 zip 包解压到相应的目录,这里我将解压后的文件夹放在 D:\mysql-8.0.26-winx64 下。
新建my.ini如下:
[mysqld]
# 设置3306端口
port=3306
# 设置mysql的安装目录
basedir=D:\mysql-8.0.26-winx64
# 设置mysql数据库的数据的存放目录
datadir=D:\mysql-8.0.26-winx64\Data
# 允许最大连接数
max_connections=200
# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10
# 服务端使用的字符集默认为UTF8
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
default_authentication_plugin=mysql_native_password
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8mb4
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8
以管理员身份打开命令行,切换到安装MySQL的目录下,再切换到bin目录下
cd D:\mysql-8.0.26-winx64\bin
执行MySQL初始化命令:
mysqld --initialize --console
记录初始化完成后生成的临时密码,后面登陆要用到。
安装MySQL的服务mysqld,mysqld --install 服务名(不写的话默认服务名是mysql)
mysqld --install
# or
mysqld --install mysql80
启动MySQL服务:
net start mysql
停止服务:net stop mysql
卸载服务:sc delete mysql
登录MySQL:
mysql -u root -p
更改密码:
alter user root@'localhost' identified by '123456';
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码';
下载完后,我们将 zip 包解压到相应的目录,这里我将解压后的文件夹放在 D:\mysql-5.7.35-winx64 下。
解压后的mysql根目录下没有my.ini文件,.ini文件会在初始化mysql中用到。
新建my.ini如下:
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html
# *** DO NOT EDIT THIS FILE. It's a template which will be copied to the
# *** default location during install, and will be replaced if you
# *** upgrade to a newer version of MySQL.
[client]
port = 3306
default-character-set = utf8mb4
[mysql]
default-character-set = utf8mb4
[mysqld]
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_bin
init_connect='SET NAMES utf8mb4'
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
# These are commonly set, remove the # and set as required.
basedir = D:\mysql-5.7.35-winx64
datadir = D:\mysql-5.7.35-winx64\data
port = 3306
# server_id = .....
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 16M
# read_rnd_buffer_size = 16M
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
另一个例子:
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8mb4
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8mb4
[mysqld]
# 设置3306端口
port=3306
# 设置mysql的安装目录 ----------是你的文件路径-------------
basedir=D:\mysql-5.7.35-winx64
# 设置mysql数据库的数据的存放目录 ---------是你的文件路径data文件夹自行创建
datadir=D:\mysql-5.7.35-winx64\data
# 允许最大连接数
max_connections=200
# 允许连接失败的次数。
max_connect_errors=10
# 服务端使用的字符集默认为utf8mb4
character-set-server=utf8mb4
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
#mysql_native_password
default_authentication_plugin=mysql_native_password
打开命令提示符以管理员的身份打开,打开以后进入到你的MySQL的bin目录下:
安装mysql服务:
mysqld --install
初始化mysql数据库,记下你的数据库初始密码后面登录更改密码所用。
mysqld --initialize --console
启动mysql服务:
# 启动服务
net start mysql
# 停止服务
net stop mysql
mysqld --remove
在任务管理器里面也可以看见mysql的服务在运行了。
登录mysql服务:
mysql -u root -p
登录成功后进行密码修改,这里将管理员用户root的新密码修改为123456。
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
最后需要配置MySQL的环境变量,不然在其他目录下,命令行无法访问mysql命令,进行相关操作。
新建变量MYSQL_HOME:
MYSQL_HOME=D:\mysql-5.7.35-winx64
修改变量PATH,在它的值的最后面添加mysql的安装目录,如下:
PATH=*****;%MYSQL_HOME%\bin
查看数据库:
show databases;
实践证明:MySQL5和MySQL8的安装方式基本相同。
PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,Python2 中则使用 mysqldb。
PyMySQL 遵循 Python 数据库 API v2.0 规范,并包含了 pure-Python MySQL 客户端库。
安装PyMySQL库:
pip install pymysql
使用数据库的第一步就是连接数据库,接下来我们看看如何使用PyMysql连接数据库。
#!/usr/bin/python3
import pymysql
# 打开数据库连接
try:
db = pymysql.connect(host='localhost', user='root', passwd1='123456', port=3306)
print('连接成功!')
except:
print('连接失败!!')
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
# 使用 execute() 方法执行 SQL 查询
cursor.execute("SELECT VERSION()")
# 使用 fetchone() 方法获取单条数据.
data = cursor.fetchone()
print("Database version : %s " % data)
# 关闭数据库连接
db.close()
#!/usr/bin/python3
import pymysql
# 打开数据库连接
try:
db = pymysql.connect(host='localhost', user='root', passwd1='123456', port=3306, db='employees')
print('连接成功!')
except:
print('连接失败!')
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
# 使用 execute() 方法执行 SQL,如果表存在则删除
cursor.execute("DROP TABLE IF EXISTS EMPLOYEE")
# 使用预处理语句创建表
sql = """CREATE TABLE EMPLOYEE (
FIRST_NAME CHAR(20) NOT NULL,
LAST_NAME CHAR(20),
AGE INT,
SEX CHAR(1),
INCOME FLOAT )"""
cursor.execute(sql)
print('建表成功!')
# 关闭数据库连接
db.close()
使用INSERT语句向表 EMPLOYEE 插入数据。
#!/usr/bin/python3
import pymysql
# 打开数据库连接
try:
db = pymysql.connect(host='localhost', user='root', passwd1='123456', port=3306, db='employees')
print('连接成功!')
except:
print('连接失败!')
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
# SQL 插入语句
sql = """INSERT INTO EMPLOYEE(FIRST_NAME,
LAST_NAME, AGE, SEX, INCOME)
VALUES ('Tom', 'Kiki', 22, 'M', 1990)"""
try:
# 执行sql语句
cursor.execute(sql)
# 提交到数据库执行
db.commit()
print('数据插入成功!')
except:
# 如果发生错误则回滚
db.rollback()
print('数据插入错误!')
# 关闭数据库连接
db.close()
查询EMPLOYEE表中INCOME字段大于1000的所有数据:
#!/usr/bin/python3
import pymysql
# 打开数据库连接
try:
db = pymysql.connect(host='localhost', user='root', passwd1='123456', port=3306, db='employees')
print('连接成功!')
except:
print('连接失败!')
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
# SQL 查询语句
sql = "SELECT * FROM EMPLOYEE \
WHERE INCOME > %s" % (1000)
try:
# 执行SQL语句
cursor.execute(sql)
# 获取所有记录列表
results = cursor.fetchall()
for row in results:
fname = row[0]
lname = row[1]
age = row[2]
sex = row[3]
income = row[4]
# 打印结果
print('数据查询成功!')
print("fname=%s,lname=%s,age=%s,sex=%s,income=%s" % \
(fname, lname, age, sex, income))
except:
print("Error: unable to fetch data")
# 关闭数据库连接
db.close()
将 TESTDB 表中 SEX 为 ‘M’ 的 INCOME 字段增加500.
#!/usr/bin/python3
import pymysql
# 打开数据库连接
try:
db = pymysql.connect(host='localhost', user='root', passwd1='123456', port=3306, db='employees')
print('连接成功!')
except:
print('连接失败!')
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
# SQL 更新语句
sql = "UPDATE EMPLOYEE SET INCOME = INCOME + 500 WHERE SEX = '%c'" % ('M')
try:
# 执行SQL语句
cursor.execute(sql)
# 提交到数据库执行
db.commit()
print('数据更新成功!')
except:
# 发生错误时回滚
db.rollback()
# 关闭数据库连接
db.close()
删除数据表 EMPLOYEE 中 AGE 大于 20 的所有数据。
#!/usr/bin/python3
import pymysql
# 打开数据库连接
try:
db = pymysql.connect(host='localhost', user='root', passwd1='123456', port=3306, db='employees')
print('连接成功!')
except:
print('连接失败!')
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
# SQL 删除语句
sql = "DELETE FROM EMPLOYEE WHERE AGE > %s" % (20)
try:
# 执行SQL语句
cursor.execute(sql)
# 提交修改
db.commit()
print('数据删除成功')
except:
# 发生错误时回滚
db.rollback()
# 关闭连接
db.close()
MySQL官方自带的测试数据集。
下载地址:https://github.com/datacharmer/test_db
下载后解压文件夹如下:
该测试数据主要通过employees.sql来完成数据录入。employees.sql中包含建表、构建视图、导入资源文件(*.dump文件)等操作。
输入命令,将数据文件夹设置为当前目录:
cd C:\Users\tomcat\Desktop\test_db-master
输入命令 mysql -t -uroot -p mysql -t -uroot -p <employees.sql
结语
如果您觉得该方法或代码有一点点用处,可以给作者点个赞,或打赏杯咖啡;
╮( ̄▽ ̄)╭
如果您感觉方法或代码不咋地
//(ㄒoㄒ)//,就在评论处留言,作者继续改进;
o_O???
如果您需要相关功能的代码定制化开发,可以留言私信作者;
(✿◡‿◡)
感谢各位大佬童鞋们的支持!
( ´ ▽´ )ノ ( ´ ▽´)っ!!!