MySQL

MySQL

目录

  • 数据库的演变
  • 数据库的本质
  • 数据库的分类
  • MySQL数据库
  • MySQL的基本使用
  • 系统服务制作
  • 基本的sql语句

数据库的演变

  • 数据存取的演变

    演变历程 逐步优化
    文本文件 储存的文件路径不一致
    存取的数据格式不一致
    软件开发目录规范 规定了数据文件的大致存储位置
    针对数据格式还是没有完全统一
    数据库服务 统一了存取位置 也统一了数据格式(完全统一)
  • 数据库软件应用史

    类型 数据库功能
    单机游戏 不同计算机上的相同程序 数据无法共享
    数据库服务全部在本地完成
    网络游戏 不同计算机上的相同程序 数据可以共享
    数据库服务单独在网络架设(远程数据库服务)
    • 远程数据库服务

      数据库集群

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

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

数据库的本质

在不同层面数据库的认识

层面 认识 作用
底层原理 数据库指的是专用用于操作数据的进程 运行在内存中的代码
现实应用 数据库指的是拥有操作界面的应用程序 用于操作进程的界面

数据库的本质就是一款 cs 架构的应用程序

数据库的分类

数据库分为关系型数据库和非关系型数据库

  • 关系型数据库

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

      id name password

      关系型数据库存取数据的方式可以看成是表格

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

      用户表 房屋表

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

    3. 关系型数据库的软件

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

    1. 数据的组织方式没有明确的表结构 是以k:v键值对的形式组织的

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

    3. 非关系型数据库的软件

      软件 当前状态
      redis 目前最火 使用频率最高的缓存型数据库
      mongoDB 稳定型数据库 最像关系型的非关系型 主要用于爬虫、大数据
      memcache 已经被redis淘汰

数据库的重要概念

类别 含义 举例
存放数据的总体单位 文件夹
在存放数据的库中分别存放不同的数据类型 文件夹里面的文件
记录 在存放不同数据类型的表中的一个个数据 文件里一行行的数据

MySQL 简介

在数据库软件中底层操作几乎一致,而MySQL最为普遍更易接受,学了MySQL基本就可以快速上手所有的关系型数据库甚至非关系型数据库

  • MySQL的版本

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

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

  • 下载与安装

    1. 访问MySQL的官网
    2. 点击DOWNLOADS
    3. 点击GPL
    4. 点击community server
    5. 点击archives
    6. 点击download下周压缩包

    下载的压缩包里含有服务端和客户端 支持本地操作

  • MySQL中的主要文件

    主要文件 主要功能
    bin文件夹 mysqld.exe服务端
    mysql.exe客户端
    data文件夹 存取数据
    my-default.ini 默认配置文件
  • MySQL的基本使用

    命令 功能
    启动服务端
    查找mysqld文件位置 mysqld cmd窗口就是服务端 不要关闭
    .再次开启新的cmd窗口 mysql 直接回车会以游客模式进入 功能很少
    用户名密码登录 mysql -u用户名 -p密码 mysql默认管理员账号 用户名是root 密码是空
    退出 exit
    quit
    返回上一层
    退出
  • 用cmd查看数据库中的数据

    命令 作用
    show databases; 查看所有的数据库
    show tables; 查看所有的表
    select * from mysql.user 查看user表里面所有的记录

系统服务制作

  • 如何解决每次都需要切换路径查找文件的缺陷

    ​ 添加环境变量

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

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

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

    3. 启动服务端

      1. 右键直接点击启动

      2. 命令启动
        net start mysql

    • 查看开机自启动服务系统
      1. 查看系统服务的命令
        services.msc
      2. 关闭mysql服务端(在管理员身份的cmd窗口下)
        net stop mysql
      3. 移除系统服务
        1. 先确保服务已经关闭
        2. 执行移除命令
        mysqld --remove

密码相关操作

  • 修改密码

    mysqladmin命令
    通用方式: # 直接在cmd中写
    mysqladmin -u用户名 -p原密码 password 新密码
    第一次修改
    mysqladmin -uroot -p password 123
    第二次修改
    mysqladmin -uroot -p123 password 321
    偏门方式(有些版本无法使用): # 需要先登录
    set password=PASSWORD(新密码);

  • 忘记密码

    1. 直接重装\拷贝对应文件
      先关闭服务端 然后以不需要校验用户身份的方式启动 再修改 最后再安装正常方式启动

    2. 在cmd中操作

      1. net stop mysql

      2. 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为例 : MySQL客户端、python代码编写的客户端、java代码编写的客户端

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

    1. 服务端兼容

      ​ 不合理 消耗数据库服务端资源!!!

    2. 制定统一标准

      ​ SQL语句、NoSQL语句

  • SQL与NoSQL

    语句 含义
    SQL 操作关系型数据库的语法
    NoSQL 操作非关系型数据库的语法

    SQL有时候也用来表示关系型数据库 NoSQL也用来表示非关系型数据库

SQL语句

  • SQL语句结束与取消

    符号 含义
    SQL语句结束符是分号
    \c 取消SQL语句的执行
  • 基本的SQL语句

    1. 针对库中的SQL语句

      功能 语句 作用
      create database 库名; 创建一个库
      drop database 库名; 删除库
      alter database 库名 charset='gbk'; 修改字符编码
      show databases;
      show create database 库名;
      查看所有库的名称
      指定查看某个库的信息
    2. 针对表中的sql语句

      查看当前所在的库名: select database();

      如果没有切换指定的库 那么默认是NULL

      切换或进入库:use 库名;

      功能 语句 作用
      create table 表名(字段名 字段类型,
      字段名 字段类型,字段名 字段类型);
      创建一个表,表里含有字段1和2
      drop table 表名; 删除表
      alter table 旧表名 rename 新表名; 修改表名
      show tables;
      show create table 表名;
      describe 表名;
      desc 表名;
      查看当前库下所有的表的名称
      指定查看某个表的信息
      指定查看表的字段信息
      describe 表名;的简写
    3. 针对记录中的SQL语句

      前提:要想操作记录,必须得先有库和表。

      功能 语句 作用
      insert into 表名 values(数据,数据);
      insert into 表名 values(数据,数据),(数据,数据);
      增加单条数据
      增加多条数据
      delete from 表名;
      delete from 表名 where 筛选条件
      删除表里所有数据
      根据条件删除数据
      update 表名 set 字段名=新数据 where 筛选条件; 根据条件筛选数据并修改
      select * from 表名;
      select 字段1,字段2 from 表名;
      查看表里所有的数据
      查看表里指定的字段

posted @   Nirvana*  阅读(23)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示