全方位介绍使用MySQL

安装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()
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值