MySql教程

MySQL

本文主要是介绍MySQL,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

目录
  • MySQL数据库
    • 一、数据存取演变史
      • 1.文本文件
      • 2.软件开发目录规范
      • 3.数据库服务
    • 二、数据库软件应用史
    • 三、数据库本质
      • 1.站在底层原理的角度
      • 2.站在现实应用的角度
      • 3.注意
    • 四、数据库分类
      • 1.关系型数据库
        • 1.1.数据的组织方式有明确的表结构
        • 1.2.表与表之间可以建立数据库层面的关系
        • 1.3.主要的关系数据库
      • 2.非关系型数据库
        • 1.1.数据的组织方式没有明确的表结构
        • 1.2.数据之间无法直接建立数据库层面的关系
        • 1.3.主要的非关系数据库
    • 五、MySQL
      • 1.简介
        • 1.1.MySQL版本问题
        • 1.2.下载安装
          • 1.2.1.访问官网
          • 1.2.2.点击DOWNLOADS
          • 1.2.3.点击GPL
          • 1.2.4.点击community server
          • 1.2.5.点击archives
          • 1.2.6.点击download
        • 1.3.解压安装
        • 1.4.主要文件介绍
      • 2.MySQL基本使用
        • 2.1.启动服务端
        • 2.2.开启新的cmd窗口启动MySQL
        • 2.3.用户名密码登录
        • 2.4.退出命令
      • 3.系统服务制作
        • 3.1.解决每次切换路径查找文件的缺陷的办法
        • 3.2.将mysql服务端制作成系统服务(随着计算机的开启而启动,关闭而结束)
      • 4.密码相关操作
        • 4.1.修改密码
        • 4.2.忘记密码
    • 六、SQL与NoSQL
    • 七、数据库重要概念
    • 八、SQL语句
      • 1.针对库的基本SQL语句
        • 1.1.查看当前所在库名
        • 1.2.增
        • 1.3.查
        • 1.4.改
        • 1.5.删
      • 2.针对表的基本SQL语句
        • 2.1.增
        • 2.2.查
        • 2.3.改
        • 2.4.删
      • 3.针对记录的基本SQL语句
        • 3.1.增
        • 3.2.查
        • 3.3.改
        • 3.4.删

MySQL数据库

一、数据存取演变史

1.文本文件

  • 文件路径不一致:C:\a.txt D:\aaa\b.txt E:\ccc.txt
  • 数据格式不一致:jason|123 tony$123 [email protected]

2.软件开发目录规范

  • 规定了数据文件的大致存储位置:db文件夹
  • 针对数据格式还是没有完全统一:比如统一json文件但是内部键值对不同

3.数据库服务

统一了存取位置,也统一了数据格式(完全统一)

二、数据库软件应用史

软件应用分类 描述
单机游戏 不同计算机上的相同程序,数据无法共享,数据库服务全部在本地完成
网络游戏 不同计算机上的相同程序,数据可以共享,数据库服务单独在网络架设(远程数据库服务)

远程数据库服务/数据库集群:

  1. 数据安全性问题
  2. 服务器负载问题

让多台服务器运行相同的数据库服务

三、数据库本质

数据库三字在不同角度下描述的意思不一样

1.站在底层原理的角度

数据库本质:指的是专用于操作数据的进程(运行在内存中的代码)

2.站在现实应用的角度

数据库本质:指的是拥有操作界面的应用程序(用于操作进程的界面)

3.注意

不做特殊说明下,数据库其实都是在指数据库软件,我们也称数据库软件本质是一款cs架构的应用程序(所有程序员理论上都可以编写,市面上已经有很多的数据库软件)

四、数据库分类

1.关系型数据库

1.1.数据的组织方式有明确的表结构

id  name  password

关系数据库存取数据可以看成是表格

1.2.表与表之间可以建立数据库层面的关系

只要获取到用户表的一条数据,就可以获取到与之相关的其他表数据

  • 用户表、房屋表

1.3.主要的关系数据库

MySQL、PostgreSQL、MariaDB、Oracle、sqlite、db2、SQL Server

关系数据库 功能
MySQL 开源,使用最为广泛,数据库学习必学
PostgreSQL 开源,支持二次开发
MariaDB 与MySQL是同一个作者,用法也及其相似
Oracle 收费,安全性极高,主要用于银行及各大重要机关
sqlite 小型数据库,主要用于本地测试(Django框架自带该数据库)

2.非关系型数据库

1.1.数据的组织方式没有明确的表结构

是以k:v键值对的形式组织的

{'name': 'jason'}
{'username': 'kevin', 'pwd': 123}

1.2.数据之间无法直接建立数据库层面的关系

1.3.主要的非关系数据库

Redis、MongoDB、memcache

非关系数据库 功能
Redis 目前最火,使用频率最高的缓存型数据库
MongoDB 稳定性数据库,最像关系型的非关系型数据库,主要用于爬虫、大数据
memcache 已经被Redis淘汰

五、MySQL

虽然数据库软件很多,但是底层操作几乎一致,学了MySQL基本就可以快速上手所有的关系型数据库甚至非关系型数据库

1.简介

1.1.MySQL版本问题

虽然版本有区别,但是操作上几乎没区别,主要体现在底层运作

  • 5.6X:前几年使用频率最高的版本
  • 5.7X:最近尝试迁移的版本(频率+)
  • 8.0X:最新版,功能很强大,但是线上环境几乎不用(本地自己用非常好用)

1.2.下载安装

1.2.1.访问官网

官网链接:https://www.mysql.com/

1.2.2.点击DOWNLOADS

image

1.2.3.点击GPL

image

1.2.4.点击community server

image

1.2.5.点击archives

image

1.2.6.点击download

image

1.3.解压安装

将下载好的安装包解压到除C盘以外的容易找的路径下,下载的压缩包里含有服务端和客户端,支持本地操作

1.4.主要文件介绍

文件夹 介绍
bin文件夹 服务端:mysqld.exe
客户端:mysql.exe
data文件夹 存取数据
my-default.ini 默认配置文件

2.MySQL基本使用

2.1.启动服务端

  1. 打开cmd窗口
  2. 切换到mysqld.exe所在的路径
  3. 输入mysqld回车,启动服务端

注意:cmd窗口就是服务端,不要关闭

image

可能会报错,拷贝关键信息百度解决

2.2.开启新的cmd窗口启动MySQL

  1. 打开一个新的cmd窗口
  2. 切换到mysql.exe所在的路径
  3. 输入mysql回车,启动MySQL

image

注意:直接回车会以游客模式进入,功能很少

2.3.用户名密码登录

mysql -u用户名 -p密码

# mysql默认管理员账号 用户名是root 密码是空
mysql -uroot -p

2.4.退出命令

exit 或 quit 

3.系统服务制作

3.1.解决每次切换路径查找文件的缺陷的办法

添加环境变量:

  1. 拷贝mysqld.exe所在的文件路径
  2. 将拷贝好的路径添加到环境变量中

image

3.2.将mysql服务端制作成系统服务(随着计算机的开启而启动,关闭而结束)

  1. 以管理员身份打开cmd窗口

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

  3. 启动服务端

    • 方式1:任务管理器→服务→MySQL右键直接点击启动

    • 方式2:命令启动

      net start mysql
      

image

相关命令:

services.msc  # 查看系统服务命令
net start mysql  # 启动mysql服务端
net stop mysql  # 关闭mysql服务端

# 移除系统服务
# 1.先确保服务已经关闭
# 2.执行移除命令
mysqld --remove

4.密码相关操作

4.1.修改密码

mysqladmin命令

  1. 通用方式:直接在cmd中写

    mysqladmin -u用户名 -p原密码 password 新密码
    
    # 第一次修改:
    mysqladmin -u用户名 -p password 123
    # 第二次修改:
    mysqladmin -u用户名 -p123 password 321
    
  2. 偏门方式(有些版本无法使用):需要先登录

    set password=PASSWORD(新密码);
    

4.2.忘记密码

直接重装/拷贝对应的文件

先关闭服务端,然后以不需要校验用户身份的方式启动,再修改,最后再安装正常方式启动

# 1.关闭服务端
net stop mysql
# 2.mysql启动参数
mysqld --skip-grant-tables
# 3.
mysql -uroot -p
# 4.修改管理员密码
update mysql.user set password=password(123) where Host='localhost' and User='root';
# 5.关闭服务端
net stop mysql
# 6.重新启动服务端
net start mysql

六、SQL与NoSQL

数据库的服务端支持各种语言充当客户端:MySQL客户端、python代码编写的客户端、java代码编写的客户端

为了能够兼容所有类型的客户端,有两种策略:

  1. 服务端兼容:不合理,消耗数据库服务端资源
  2. 制定统一标准:SQL语句、NoSQL语句
SQL语句/NoSQL语句 描述
SQL语句 操作关系型数据库的语法
NoSQL语句 操作非关系型数据库的语法

七、数据库重要概念

简单理解,不完全准确

名词 简单概念
文件夹
文件夹里的文件
记录 文件里一行行的数据

查看库、表、记录的SQL语句

show databases;  # 查看所有的数据库
show tables;  # 查看所有的表
select * from mysql.user;  # 查看user表里的所有记录

八、SQL语句

1.针对库的基本SQL语句

1.1.查看当前所在库名

select database();  # 如果没有切换到指定的库,那么默认是NULL
use 库名;

1.2.增

create database 库名;

1.3.查

show databases;
show create database 库名;

1.4.改

alter database 库名 charset='gbk';

1.5.删

drop database 库名;

2.针对表的基本SQL语句

2.1.增

create table 表名(字段名 字段类型,字段名 字段类型,字段名 字段类型);

2.2.查

show tables;
show create table 表名;
describe 表名;
desc 表名;

2.3.改

alter table 旧表名 rename 新表名;  # 改表名

2.4.删

drop table 表名;

3.针对记录的基本SQL语句

操作记录,肯定得先有库和表

3.1.增

insert into 表名 values(数据,数据);
insert into 表名 values(数据,数据),(数据,数据),(数据,数据);

3.2.查

如果表中字段较多出现了错乱 可以结尾写\G

select * from 表名;  # *表示查看所有字段
select 字段1,字段2 from 表名;

3.3.改

update 表名 set 字段名=新数据 where 筛选条件;

3.4.删

delete from 表名;  # 删除表中所有的数据
delete from 表名 where 筛选条件  # 按照条件删除数据
这篇关于MySQL的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!