MySQL 安装、密码设置、"库 、表、记录"的增删改查、字符编码设置
概要
1 数据演变史
2 数据存储发展史
3 数据库的本质
4 数据库的分类(重点)
5 SQL于NoSQL的由来
6 MySQL数据库
7 系统服务(即设置MySQL服务端开机自启)
8 密码相关
9 重要概念介绍
10 如何查"数据库名"、"表名"、"所有的记录"
11 库的"增、删、改、查"
12 表的"增、删、改、查"
13 记录的"增、删、改、查"
14 字符编码相关
详细
1 数据演变史
# 1.单独的文本文件
没有固定的存放位置和格式
文件名:user.txt userinfo.txt data.txt
数据格式:jason|123 tony~123 kevin$123
"""程序彼此之间无法兼容"""
# 2.软件开发目录规范
规定了文件名和存储位置
"""文件的查找变得简单了 并没有解决核心问题"""
# 3.数据库阶段
规定了文件的存储位置和数据格式
"""目前正在使用的阶段 解决了核心问题"""
2 数据存储发展史
# 1.单机游戏阶段
数据各自保存在各自的计算机上 无法实现共享
# 2.多机游戏阶段
数据统一保存在某个固定的服务器上(计算机) 实现数据共享
前提:必须有网络
'''为了数据的安全 还会采用集群策略来分担风险'''
3 数据库的本质
# 本质也是一款cs架构的软件 (一款基于网络通信<收发消息>的应用程序)
且任何基于网络通信的应用程序其底层都是socket.
既然数据库本质是一款cs架构的软件 也就意味着我们每个人都可以编写一个数据库软件
在目前地球上有很多牛逼的程序员 他们都具备编写数据库软件的能力 并且目前市面上真的有很多款数据库软件
"""
数据库在狭义层面上来说
指的是处理数据的底层程序
数据库在广义层面上来说
指的是操作这些底层程序的便捷应用软件
其实学习数据库很多时候学习的是配套的数据库软件
"""
图示
所有客户端都通过网络socket传输数据与数据库服务端做交互
数据库服务端就是统一帮你管理数据.

MySQL不但支持自己的客户端app,还支持其他编程语言来作为自己的客户端
python书写代码的客户端,即支持变成语言作为MySQL的客户端,用代码操作mysql

SQL语句的由来

现在你是将客户端和服务端都在本地启动
工作后你的Mysql是客户端, 公司有一台服务端MySQL,你去连接它
4 数据库的分类(重点-要能默写出来)
# 市面上有很多数据库软件 但是大致就分为两类
1.关系型数据库
MySQL、Oracle、PostgreSQL、MariaDB、sqlite、sql server、db2
MySQL:开源免费 使用非常规范
Oracle:收费 维护成本高 大型公司可能会使用
PostgreSQL:支持二次开发
MariaDB:MySQL的替代产品(并且有自己的特性)
sqlite:小型数据库(django框架自带该数据库)
2.非关系型数据库
Redis、mongoDB、memcache
Redis:目前最火的缓存数据库 具有很多数据结构 功能强大
mongoDB:文档型数据库 可以用在大数据和爬虫领域
memcache:已经被redis淘汰
"""
1.两类数据库的区别
关系型数据库
拥有固定的表结构 并且表与表之间可以建立代码层面的关系
非关系型数据库
没有固定的表结构 数据存储采用的是K:V键值对的形式
2.这么多数据库如何学习
两大类数据库操作逻辑基本一致
每一类学习一个基本就可以掌握所有
关系型学MySQL
非关系型学redis、mongodb
"""
5 SQL于NoSQL的由来
数据库的服务端为了能够兼容不同类型的客户端实现数据交互
所以规定了统一的交互方式
关系型数据库>>>:SQL语句
非关系型数据库>>>:NoSQL语句
# NoSQL有时候也表示 非关系型数据库
关系型与非关系型数据库

6 MySQL数据库
若想重新安装怎么操作:
-
step1 退出mysql客户端
-
退出客户端-命令: exit; 回车
-
关闭当前cmd窗口
-
step2 移除服务
-
以管理员身份重新打开cmd窗口
-
停止服务-命令: net stop mysql
-
移除服务端-命令: mysqld --remove
-
step3 重新安装
6-1 安装
step1 浏览器输入mysql,找见并进入官网

step2 点击下载

step3 找见社区版,点击进入

step4 点击如下框

step5

step6 版本选择和位数选择
版本:
"""不同的版本主要区别在于底层的逻辑 SQL语句几乎是一模一样的"""
5.6:使用频率较高的版本(√)
5.7:目前正在过渡的版本
8.0:目前最新的版本

详细

step7 解压
说明:

6-2 关于解压后内相关文件夹介绍
1) bin文件夹
-
mysqld.exe 服务端可执行文件
-
mysql.exe 客户端可执行文件
2) data 文件夹
-
保存数据的文件夹
6-3 基本使用
step1 先启动服务端(第7部分会将服务端设置成开机自启动,然后本步就不需要了)
以管理员运行cmd,环境变量配置好后,直接输入mysqld启动服务端(当前cmd窗口不要关闭)

step2 客户端启动并链接服务端
只输入mysql也能链接,不过是以游客身份进去的
mysql -u用户名 -p密码 # 账号登录(本地使用)
mysql -hIP地址 -P端口号 -u用户名 -p密码 # 完整命令
"""第一次登录 root用户没有密码 直接连续回车即可"""
演示参考(未配置环境变量时)

补充:
输入错误命令后如何取消: \c
退出客户端: quit 或 exit
6-4 设置 配置
kan 本节14
7 将mysql服务端设置成系统服务(开机自启动)
"""前期在配置MySQl时候最好使用管理员cmd操作,防止以普通用户运行一些命令无法生效"""
step1
环境变量配置:
背景: 每次启动mysqld(服务端)需要先切到对应文件路径下才能操作,太繁琐
方法: 将mysqld.exe(在bin文件夹下)的路径添加到环境变量path.
step2 停止服务(若之前开启的话)
step2.1
方式1-cmd窗口输入
-
如何查看当前具体进程
-
tasklist
-
tasklist | findstr mysqld
-
如何杀死进程
-
taskkill /F /PID PID号
~注: 若没有,以管理员身份新打开一个cmd窗口
方式2-任务管理器->服务>中的mysql选择停止
step2.2
最后关闭服务端和客户端cmd窗口,若之前打开的话
step3 制作系统服务
命令
mysqld --install # 仅仅是添加到了系统服务 第一次需要手动启动

step4 启动服务
方式1-命令行方式重启服务端(mysqld)
以管理员身份新打开一个cmd窗口
net start mysql <末尾没有分号>
方式2-任务管理器中服务栏中的mysql选择启动
补充:
补充#1
查看当前及计算机系统服务
方式1:
cmd命令: services.msc 回车
方式2:
任务管理器->服务 中可以看到
补充#2
移除mysqld服务端服务
cmd命令: mysqld --remove

补充#3 停止服务
命令: net stop mysql
8 密码相关
8.1 处于未登陆状态时
命令:
mysqladmin -uroot -p password

8.2 处于登陆状态时
命令:
set password=PASSWORD('密码')

8.3 连接权限设置 --- 可参考luffy02_007
1)创建数据库
>: create database luffy default charset=utf8;
2)设置权限账号密码:账号密码要与项目中配置的一致(上面是允许远程访问,下面是允许本地访问,最后是刷新权限)
>: grant all privileges on luffy.* to 'user_luffy'@'%' identified by '1';
>: grant all privileges on luffy.* to 'user_luffy'@'localhost' identified by '1';
>: flush privileges;
其它理解参考:
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
-
连接Navicat -> 找见mysql库 -> 找见user表
这里可以更改连接用户的ip,即指定ip后只有改ip才可以连接MySQl服务.
-
需要cmd中连接mysql
执行 >: flush privileges;
后指定ip连接才能生效.
5)退出mysql
>: exit;
8.4 忘记密码怎么办?
step1 先关闭MySQL服务端

step2 命令行以跳过授权表的方式重新启动服务端
命令: mysqld --skip-grant-tables

step3 打开一个新cmd窗口,客户端登陆,发现无密码即可登陆

step4 修改当前用户密码
命令:
update mysql.user set password=password(123) where user="root" and host="localhost";

step5 关闭服务端
关闭cmd窗口服务端及客户端
step6 重新启动MySQL服务端
方式1-命令行方式重启
新打开一个cmd窗口
net stop mysql
net start mysql
方式2-任务管理器中服务栏中的mysql选择启动
step7 以校验密码的方式登陆
以用户名和新设定密码登陆成功

9 重要概念介绍
9-1 什么是"库"
即 文件夹
以下是一一对应的

9-2 什么是表: 文件夹里的文件
9-3 什么是记录: 文件夹的文件里的内容
10 如何查"数据库名"、"表名"、"所有的记录"以及"切换库"
~注: SQL语句的结束必须用分号
10-1.如何查看所有的数据库名称
cmd命令: show databases; '''会有一个临时产生在内存的库:in...sc'''
10-2.如何查看所有的表名称
cmd命令:
use 库名; '''切换库(类似于双击了文件夹)'''
show tables;
10-3.如何查看所有的记录
cmd命令:
select * from 表名;
如果内容较多展示补全出现错乱的情况 可以在语句后面加\G
11 库的"增、删、改、查"
cmd命令:
11.1 增 create database 数据库名;
11.2 查 1) show databases; # 查看所有的库名 2) show create database 数据库名; # 定向查看某个库
演示

注意:以下三个是默认库,不要对其做任何增删改查操作,否则会出问题.

11.3 改 alter database 数据库名 charset='gbk';
11.4 删 drop database 数据库名;
演示

12 表的"增、删、改、查"
"""
要想操作表必须得先有库
1.没有则先创建库
2.有,则查看当前所在的库名
select database();
3.切换库到库名对应的库
use bd1;
"""
演示

cmd命令:
12-1 增: create table 表名(字段名1 字段类型1,字段2 字段类型2);
12-2 查:
describe 表名; # 查看表的具体信息(常用) 简写 desc 表名;
其他查
show tables; # 查看当前库下面所有的表名
show create table 表名; # 查看指定的表信息
演示

12-3 改
1)修改表名

2)修改字段名和字段类型
如 id改为nid; int 改为char(4)
格式:
alter table ttt change id nid int; # 修改字段名
alter table ttt modify nid char(4); # 修改字段类型
演示

12-4 删:
格式: drop table 表名;
演示

13 针对"记录"的"增、删、改、查"
"""
肯定得先确定库和表
"""
13-1增
cmd命令:
insert into 表名 values(数据,数据,数据); '''单条数据'''
insert into 表名 values(),(),(); '''多条数据'''
13-2查
cmd命令:
select * from 表名; '''查询表中所有的数据'''
13-3改
cmd命令:
update 表名 set 字段名='新数据' where 筛选条件;
演示

13-4 删
cmd命令:
delete from 表名 where 筛选条件;
delete from 表名 ; # 不加条件,删除所有.
演示

14 字符编码设置- 防止中文不显示 --- 配置文件设置
14-1 不识别中文现象

原因: 字符编码问题
14-2 查看当前字符编码
命令: \s

14-3 修改成统一的字符编码: utf-8 [属于新安装MySQL后要设置内容]
"""MySQL默认的配置文件>>>:mydefault.ini"""
步骤
14-31 拷贝默认配置文件到当前文件夹,且重命名为my.ini
"""
ini结尾的一般都是配置文件
-程序启动会先加载配置文件中的配置才真正启动
[mysqld] # 服务端启动,加载下面的文件
character-set-server=utf8
collation-server=utf8_general_ci
[client] # 其他语言(python、java等)写的客户端启动,加载下面的文件
default-character-set=utf8
[mysql] # mysql自己客户端启动,加载下面的文件
default-character-set=utf8
"""
演示
新建文件,并改后缀.

14-32 拷贝固定信息到my.ini
"""
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
sql_mode=strict_trans_tables
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
"""
14-33 重启MySQL服务端
step1
关闭windows系统的服务端cmd窗口
step2
以管理员打开cmd

step3
重启mysql服务

step4
登陆mysql
本次为root用户无密码,若已设置密码,要输入新密码

step5
查看字符编码是否更改生效-发现已生效
~注意: 原来的库的"Db characterset"对应的字符编码还是原来的,即输入汉字原来的库可能会因为字符编码问题无法继续无法展示,若要显示则需手动更改为utf8;

step6
新建一个库: create database xxx;
step7
进入该库: use xxx;
step8
新建一个表,新建一个有汉字的记录,查看发现汉字正常显示

补充:
退出命令


浙公网安备 33010602011771号