【MySQL】第1回 基础入门
目录
1. 数据存取的演变史
1.1 文本文件
- 文件路径不一致:C:\A.txt D:\A.txt
- 数据格式不一致:jason|122 tony$112
1.2 软件开发目录规范
- 规定了数据文件的大致存储位置:db文件夹
- 针对数据格式还是没有完全统一:比如统一json文件但是内部键值对不同
1.3 数据库服务
- 统一了存取位置,也统一了数据格式(完全统一)
2. 数据库软件的应用史
2.1 理解
- 单机游戏:不同计算机上的想同程序,数据无法共享,数据库服务全部在本体完成
- 网络游戏:不同计算机上的相同程序,数据可以共享,数据库服务单独在网络架设(远程数据库服务)
2.2 远程数据库服务
- 数据库集群,让多台服务器运行相同的数据库服务
数据安全性问题
服务器负载问题
3.数据库的本质
3.1 数据库在不同角度下描述的意思不一样
- 站在底层原理的角度,数据库指的专用用于操作数据的进程,eg:运行在内存中的代码
- 站在现实应用的角度,数据库指的是拥有操作界面的应用程序,eg:用于操作进程的界面
3.2 理解
- 我们不做特殊说明的下提数据库其实都是在指数据库软件,我们也称数据库软件本质是一款cs架构的应用程序,言外之意所有的程序员理论上都可以编写:市面上已经有很多数据库软件
4. 数据库分类
4.1 关系数据库
4.1.1 数据的组织方式有明确的表结构
- 表里面有一些表的基本信息,关系型数据库存取数据的方式可以看成是表格
4.1.2 表与表之间可以建立数据库层面的关系
- eg: 用户表,房屋表,ps:只要获取到用户表的一条数据,就可以获取到与之相关的其他表数据
4.1.3 数据库软件
- MySQL,PostgreSQL,MariaDB,Oracle,sqlite,db2,sql server
- MySQL:开源,使用最为广泛,数据库学习必学
- PostgreSQL:开源 支持二次开发
- MariaDB:开源 与MySQL是同一个作者,用法也极其相似
- Oracle:收费,安全性极高,主要用于银行及各大重要机关
- sqlite:小型数据库,主要用于本地测试(django框架自带该数据库)
4.2 非关系型数据库
4.1 数据的组织方式没有明确的表结构
- 是以K:V健值对的形式组织的,{'name':'jason'},
4.2 数据之间无法直接建立数据库层面的关系
4.3 数据库软件
- redis,mongoDB,memcache
- redis:目前最火,使用频率最高的缓存型数据库
- mongoDB:稳定型数据库,最像关系型的非关系型,主要用于爬出,大数据memcache:已经被radis淘汰
5.MySQL简介
5.1 MySQL版本问题
- 5.6X:前几年使用频率最高的版本
- 5.7X:最近尝试迁移的版本(频率+)
- 8.0X:最新版,功能很强大,但是线上环境几乎不用(本地自己用非常好用)
- 虽然版本有区别,但是操作上几乎没有区别,主要体现在底层运作
5.2 下载与安装
- 访问官网
- 点击DOWNLOADS
- 点击GPL
- 点击communtiy server
- 点击archives
- 点击download
5.3 解压安装
- 上述方式下载的压缩包里含有服务端,支持本地操作
5.4 主要文件介绍
- bin文件夹 mysqld.exe服务端 mysql.exe客户端
- data文件夹 存取数据
- my-defult.ini 默认配置文件

6. 基本使用
6.1 先启动服务端
- 可能会报错:拷贝关键信息去百度,两种报错
6.2 查找mysqld文件位置
- mysqld cmd窗口就是服务端,不用关闭

6.3 再次开启新的cmd窗口
- mysql 直接回车会以游客模式进入,功能很少


6.4 用户名密码登录
- mysql - u用户名 -p密码
- mysql默认管理员账户,用户名是root,密码是空


6.5 游客模式和账户密码模式下的 show databases;

6.6 退出
- exit

- quit

7. 系统服务制作
7.1 如何解决每次都需要切换路径查找文件的缺陷
- 添加环境变量

7.2 将mysql服务端作成系统服务
- 随着计算机的开启而启动,关闭而结束
- 以管理员身份打开cmd窗口

- 执行系统服务命令:mysqld --install


- 启动服务端
- 右键直接点击启动

- 命令启动 net start mysql


- 右键直接点击启动
- 查看系统服务的命令:services.msc

- 关闭mysql服务端 net stop mysql
- 移除系统服务
- 先确保服务已经关闭
- 执行移除命令 mysqld --remove
8. 密码相关操作
8.1 修改密码
- mysqladmin命令 通用方式: 直接载cmd中写

- mysqladmin -u用户名 -p原密码 password 新密码

- 第一次修改:mysqladmin -uroot -p password 123

- 第二次修改:mysqladmin -uroot -p123 password 321
- 偏门方式(有些版本无法使用):# 需要先登录 set password = PASSWORD('新密码');

8.2 忘记密码
- 直接重装\拷贝对应文件
- 先关闭服务端,然后以不需要校验用户身份的方式启动,在修改,最后再安装正常方式启动
- net stop mysql
- mysql --skip-grant-tables
- mysql -uroot -p
- update mysql.user set password=password(123) where Host='localhost' and User='root';
- net stop mysql
- ney start mysql
9. SQL与NoSQL
9.1 数据库的服务端支持各种语言充当客户端
- 以MySQL服务为例,MySQL客户端,python代码编写的客户端,java代码编写的客户端,为了能够兼容所有类型的客户端,有两种策略
- 服务端兼容 :不合理,消耗数据库服务端资源
- 制定统一标准:SQL语句,NoSQL语句
9.2 SQL与NoSQL
- SQL语句的意思是操作关系数据库的语法
- NoSQL语句的意思操作非关系型数据库的语法
- SQL有时候也用来表示关系型数据库,NoSQL也用来表示非关系型数据库
10. 数据库重要概念
| 库 | 文件夹 |
|---|---|
| 表 | 文件夹里面的文件 |
| 记录 | 文件里一行行数据 |
| 查看所有的数据库 | show databases; |
| 查看所有的表 | show tables; |
| 查看user表里面所有的记录 | select * from mysql.user; |
| SQL语句结束符是分号 | ; |
| 取消SQL语句的执行 | \c |
| 如果表中字段较多出现了错乱 可以结尾写\G | 可以结尾写\G |



11. 针对库的基本SQL语句
| 操作 | 语法 |
|---|---|
| 增 | create database 库名; |
| 查 | show databases; show creat database 库名; |
| 改 | alter database 库名 charset='gbk'; |
| 删 | drop database 库名; |

12. 针对表的基本SQL语句
| 操作 | 语法 |
|---|---|
| 查看当前所在库名 | select database(); |
| 使用当前库 | use 库名; |
| 增 | create table 表名(字段名 字段类型,字段名 字段类型,); |
| 查 | show tables; show create table 表名; describe 表名; desc 表名; |
| 改 | alter table 旧表名 rename 新表名; |
| 删 | drop table 表名; |

13 针对记录的基本SQL语句
| 操作 | 语法 |
|---|---|
| 增 | insert into 表名 values(数据,数据); insert into 表名 values(数据,数据),(数据,数据); |
| 查 | select * from 表名; # 查看所有字段 select 字段1,字段2 from 表名; 表中字段较多出现了错乱可以结尾写\G |
| 改 | update 表名 set 字段名 = 新数据 where 筛选条件; |
| 删 | delete from 表名; # 删除表中所有的数据 delete from 表名 where 筛选条件; # 按照条件删除数据 |



浙公网安备 33010602011771号