• MySQL入门


    Day43 Mysql

    1、数据存取演变史

    文本文件
    文件路径不一致:C:\a.txt D:\aaa\b.txt
    数据格式不一致 :jason|123 tony$123 kevin@123

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

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

    2、数据库软件应用史

    单机游戏
    不同计算机上的相同程序 数据无法共享
    数据库服务全部再本地完成

    网络游戏
    不同计算机上的相同程序 数据可以共享
    数据库服务单独在网络架设(远程数据库服务)

    远程数据库服务

    数据库集群

    • 数据安全性问题
    • 服务器负载问题

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

    3、数据库的本质

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

    1. 站在底层原理角度
      数据库指的是专用用于操作数据的进程
      ​ 运行在捏村中的代码
    2. 站在现实应用的角度
      数据库指的是拥有操作界面的应用程序
      ​ 用于操作进程的界面

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

    4、数据库的分类

    4.1、关系型数据库

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

      id name password

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

    2. 表与表之间可以建立数据库层面的关系
      eg:用户表 房屋表

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

    3. MySQL、PostgreSQL、MariaDB、Oracle、sqlite、db2、sql、server

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

    4.2、非关系型数据库

    1. 数据的组织方式没有明确的表结构 是以k:v键值对的形式组织的
      {'name':'jason'}
      {'username':'kevin','pwd':'123'}
    2. 数据之间无法直接建立数据库层面关系
    3. redis、mongoDB、memcache
      1. redis: 目前最火 使用频率最高的缓存型数据库
      2. mongoDB: 稳定型数据库 最像关系型的非关系型 主要用于爬虫、大数据
      3. memcache:已经被redis淘汰

    5、MySQL简介

    虽然数据库软件很多 但是底层操作几乎一致 学会一个其他都可以快速上手

    学了MySQL基本就可以快速上手所有的关系型数据库甚至非关系型数据库

    1. MySQL版本问题

      5.6X: 前几年使用频率最高的版本

      5.7X: 最近尝试迁移的版本(频率+)

      8.0X: 最新版本 功能很强大 但是线上环节几乎不用(本地自己用非常好用)

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

    2. 下载与安装

      1. 访问官网
      2. 点击DOWNLOADS
      3. 点击 GPL
      4. 点击 community server
      5. 点击 archives
      6. 点击 down load
    3. 解压安装

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

    4. 主要文件介绍

      1. bin文件夹

        mysqld.exe 服务端 mysql.exe客户端

      2. data 文件夹

        存取数据

      3. my-default.ini

        默认配置文件

    6、基本使用

    先启动服务器
    可能会报错;拷贝关键信息去百度
    两种报错

    查找mysqld文件位置
    mysqld
    cmd 窗口就是服务端 不要关闭

    再次开启新的cmd窗口
    mysql
    查找回车 会以游客模式进入 功能很少

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

    退出
    exit
    quit

    7、系统服务制作

    如何解决每次都需要切换路径查找文件的缺陷
    添加环境变量

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

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

    2. 执行系统服务命令

      mysqld–install

    3. 启动服务端

      1. 右键直接点击启动

      2. 命令启动

        net start mysql

    查看系统服务的命令
    servoces.msc

    关闭mysql服务器
    net stop mysql

    移除系统服务
    先确保服务已经关闭
    执行移除命令
    mysqld ==remove

    8、密码相关操作

    8.1、修改密码

    mysql admin命令

    1. 通用方式:直接在cmd中写命令
      mysqladmin -uroot -p原密码 password 新密码

      第一次修 原密码直接不输

      第二次修改

      mysqladmin -uroot =p123 password 321

    2. 偏门方式(有些版本无法使用):#需要先登录

      set(password=PASSword(新密码)

    8.2、忘记密码

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

    1. net stop mysql
    2. mysqld --skip-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

    9、SQL与NoSQL

    数据库的服务端支持各种语言当客户端
    以MySQL服务端为例
    MySQL客户端 python代码编写的客户端 java 代码编写的客户端
    为了能够兼容 所有类型的客户端 有两种策略

    1. 服务端兼容
      不合理 消耗数据库服务端资源
    2. 指定统一标准
      SQL语句、NoSQL语句

    SQL与NoSQL
    SQL 语句的意思是操作关系型数据库的语法
    NoSQL语句的意思操作非关系型数据库的语法
    SQL有时候也用来表示关系型数据库、NoSQL也用来表示非关系型数据库

    10、数据库重要概念

    下述概念 缺乏仅仅为了更快的理解 缺乏严谨性

    库 文件夹

    表 文件夹里面的文件

    记录 文件里一行行的数据

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

    SQL语句结束是英文分号 ;

    取消SQL 语句的执行 \C

    11、基本SQL语句

    11.1、针对库的基本SQL语句

    create database 库名;  #船舰库
    
    • 1

    show databases; #查看 所有库
    show create database 库名; #查看指定库信息
    
    • 1
    • 2

    alter database jp01 charset='gbk' #改库下的编码
    
    • 1

    drop database 库名; #删除指定库
    
    • 1

    11.2、针对表的基本SQL语句

    查看当前所在的库名

    select database();
    	#如果没有切换指定的库 那么默认是NULL
    use 库名; #进入到某库下
    
    • 1
    • 2
    • 3

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

    show tables; #查看所有表
    
    show create table 表名; #查看指定表信息
    describe 表名;  # 查 表数据类型信息
    #简写 desc 表名;
    
    • 1
    • 2
    • 3
    • 4
    • 5

    alter table 旧表名; 改表名
    
    • 1

    drop table 表名;
    
    • 1

    11.3、针对记录的基本SQL语句

    既然想操作记录 那么肯定的先有库和表

    insert into 表名 values(数据,数据);
    
    insert into 表名 values(数据,数据),(数据,数据),(数据,数据);
    
    • 1
    • 2
    • 3

    select * from 表名; # * 表示查看所有字段
    
    select 字段1,字段2 from 表名; #查看表中数据
    #如果 表中字段 出现错乱 可以结尾写 \G
    
    • 1
    • 2
    • 3
    • 4

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

    delete from 表名; #删除 表中所有数据
    
    delete from 表名 where 筛选条件; 按照筛选条件 删除数据
    
    • 1
    • 2
    • 3
  • 相关阅读:
    java数据结构与算法刷题-----LeetCode1109:航班预订统计
    【MATLAB教程案例46】三维数据的插值和滤波处理matlab仿真
    基于PHP企业公司网站系统设计与实现 开题报告
    转置卷积详解(原理+实验)
    MySQL 迁移 Oracle 场景中自增主键的实践
    猿创征文|手把手教你微服务分布式事务与Seata框架源码分析
    湖仓一体电商项目(八):业务实现之编写写入ODS层业务代码
    Vue.js实现浅析_前端培训
    Go笔记20221124
    Spring Boot面试题
  • 原文地址:https://blog.csdn.net/weixin_71967396/article/details/126310707