安装Mysql
下载地址:https://dev.mysql.com/downloads/installer/
安装教程:https://zhuanlan.zhihu.com/p/37152572
注意点:按照提示点击Next和Execute即可
1.Chooseing a Setup Type:选择Server Only即可
2.Group Replication:默认选择Stardalone MySQL/Classic MySQL Replication
3.TCP/IP 默认端口3306
4.Authentication Method:密码验证方式默认第一个是强密码校验,很可能会导致Navicat等客户端连接不上,所以选第二个(Use Leagcy Authentication Method(retain MySQL 5.x Compatibility))
5.Accounts and Roles:用户名默认为root,设置密码,必须牢记,后面需要用户名和密码连接数据库
6.Windows Services:添加MySQL服务,设置服务名,默认MySQL80,后面可以在服务中直接启动或关闭MySQL
验证安装:
1.在应用列表中找到并运行MySQL 8.0 Command Line Client - Unicode
2.输入密码,出现如下界面即成功
相关配置:修改character set为utf8
MySQL 8.0 Command Line Client - Unicode–> 右键属性 --> 目标地址
“C:\Program Files\MySQL\MySQL Server 8.0\bin\mysql.exe” “–defaults-file=C:\ProgramData\MySQL\MySQL Server 8.0\my.ini” “-uroot” “-p” “–default-character-set=utf8mb4”
找到配置文件为 C:\ProgramData\MySQL\MySQL Server 8.0\my.ini
[mysql] 客户端
default-character-set=utf8
[mysqld] 服务器
character-set-server=utf8
重启服务即可
使用DataGrip连接MySQL
1.新建项目,New --> Data Source --> MySQL,连接信息配置:Host、Port、User、Password
2.驱动配置:缺少驱动会提示下载,在Drivers目录下的MySQL选项中选择驱动文件的地址,也可以选择dataGrip默认的下载
3.测试连通性:Test Connection
4.选择显示的数据库:点击1 of 6
展开后选择要显示数据库即可
5.手动向Tables中添加删除数据:+
-
可以添加删除数据项,绿色箭头是Submit到数据库中
6.导出功能:选中数据库或表右键即可
- Export Data to File
- Export with ‘mysqldump’
常用导出文件为SQL Inserts和CSV
7.导入功能:选中数据库或表右键即可,或者直接运行sql语句
- Import Data from File
- 运行sql语句
8.关于Excel打开CSV文件乱码问题
因为excel打开文件时默认使用unicode的编码方式,在Unicode基本多文种平面定义的字符(无论是拉丁字母、汉字或其他文字或符号),一律使用2字节储存,恰恰utf-8是1字节的存储方式,所以excel直接打开时会出现乱码
解决方案:
使用记事本打开CSV文件,“文件”->“另存为”,编码方式选择ANSI,保存完毕后,用EXCEL打开这个文件就不会出现乱码的情况。
MySQL命令行使用
连接数据库
mysql -u root -p
查看character
mysql> show variables like "%char%";
查看数据库保存位置
mysql> show global variables like "%datadir%" ;
# my.ini:Path to the database root
datadir=C:/ProgramData/MySQL/MySQL Server 8.0\Data
如果想对数据库进行搬迁,只需要复制”data“这个文件夹,覆盖新环境下的”data“文件就可以了
看你的mysql当前默认的存储引擎:
mysql> show variables like '%storage_engine%';
# my.ini:The default storage engine that will be used when create new tables when
default-storage-engine=INNODB
导入数据库world
mysql> SOURCE C:/temp/world.sql;
常用命令
mysql> create database student;
mysql> show database;
mysql> use student
mysql> CREATE TABLE IF NOT EXISTS `stu_subject`(
-> `sub_id` INT UNSIGNED AUTO_INCREMENT,
-> `sub_name` VARCHAR(100) NOT NULL,
-> `sub_math` integer NOT NULL,
-> `sub_chinese` integer NOT NULL,
-> `sub_english` integer NOT NULL,
-> PRIMARY KEY ( `sub_id` )
-> );
mysql> show tables;
mysql> insert into stu_subject(sub_id, sub_name, sub_math, sub_chinese, sub_engl
ish) VALUES (1,'小米',90,90,90);
mysql> select * from stu_subject;
MySQL官方示例数据库
https://dev.mysql.com/doc/index-other.html
使用world database,DB Download可以下载数据库,HTML Setup Guide可以查看使用说明
使用Python连接MySQL数据库
先上结论:数据量大用MySQLdb(mysqlclient),数据量小(1w行以下)用pymysql
MySQLdb只只支持到python3.4,Python2中则使用mysqldb。
PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,PyMySQL 遵循 Python 数据库 API v2.0 规范,并包含了 pure-Python MySQL 客户端库。
python自带的轻量级数据库模块-sqlite3
由于我的电脑安装的是python3.6.5,这里仅演示使用pymysql库和sqlite3
-
PyMySQL
Github:https://github.com/PyMySQL/PyMySQL
指导文档:https://pymysql.readthedocs.io/en/latest/
# 首先导入PyMySQL库
import pymysql
# 连接数据库,创建连接对象connection
# 连接对象作用是:连接数据库、发送数据库信息、处理回滚操作(查询中断时,数据库回到最初状态)、创建新的光标对象
connection = pymysql.connect(
host='localhost', # host属性
user='root', # 用户名
password='123456', # 此处填登录数据库的密码
db='student', # 数据库名
)
cursor = connection.cursor()
sql = "SELECT * FROM stu_basic"
cursor.execute(sql)
results = cursor.fetchall()
for row in results:
ID = row[0]
Name = row[1]
SEX = row[2]
# 打印结果
print("ID: %d, Name: %s, Grade: %s" %
(ID, Name, SEX))
# 关闭连接对象,否则会导致连接泄漏,消耗数据库资源
connection.close()
# 关闭光标
cursor.close()
- Sqlite3
https://www.runoob.com/sqlite/sqlite-python.html
import sqlite3
conn = sqlite3.connect('test.db')
print("Opened database successfully")
c = conn.cursor()
c.execute('''CREATE TABLE COMPANY
(ID INT PRIMARY KEY NOT NULL,
NAME TEXT NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR(50),
SALARY REAL);''')
print("Table created successfully")
conn.commit()
conn.close()