数据库

存取数据的演变史

复制代码
# 1.文本文件
  没有规定文件路径与数据格式,所以文件路径与数据格式都不一致,不统一
      -1.文件可能存到任何盘任何文件夹              C:\a.txt
      -2.数据之间的分割符也可以是多种特殊符号       jason|123

# 2.软件开发目录规范
  -1.规定了数据文件的大致存储位置    db文件夹下
  -2.但是数据格式也是没有统一        json文件内部的键值对

# 3.数据库服务
  -1.统一了存取位置 也统一了数据格式(完全统一)
复制代码

数据库软件应用史

复制代码
# 1.单机数据
    每个计算机上的应用就如同没有互联网一样,不能完成数据共享,数据库的服务都在本地完

# 2.联网数据
    不同计算机上的相同程序之间可以数据共享,单独在网络上架设远程数据库服务

"""
关于远程数据库服务:
      1.数据安全性问题
      2.服务器负载问题
      通过数据库集群解决,就是让多台服务器运行相同的数据库服务
"""
复制代码

数据库的本质

复制代码
# 站在不同角度下的的理解
  -1.站在底层原理的角度
      * 数据库指的是专门用于操作数据进程的
            运行内存中的代码
  -2.站在现实应用的角度
      * 数据库指的是拥有操作界面的应用程序
            操作进程的界面

# 一般数据库默认指的是数据库软件
     数据库的本质也是cs架构的应用程序(所有程序员都可以参与编写)
复制代码

数据库的分类

复制代码
# 关系型数据库 
   1.指的是是数据组织方式有明确的表结构
   * 关系型数据库存取数据的方式可以看成是表格
        id   |  name  |   pwd
   2.表与表之间可以建立数据库层面的关系
   * 只要获取到用户表的一条数据,就可以获取到与之相关的其他表数据
        用户表   >>> 房屋表
   3.软件:
        MySQL           开源          使用最为广泛,数据库学习必学
        PostgreSQL      开源          支持二次开发
        MariaDB         开源          与mysql用法相似
        Oracle          收费          安全性极高,主要用于银行及各大重要机关
        sqlite          小型数据库     主要用于本地测试(django框架自带该数据库)
        db2、sql server               一些用的比较少的数据库

# 非关系型数据库
   1.数据的组织方式是以k:v键值对的形式组织的
        {'username':'kevin','pwd':123}
   2.数据之间无法直接建立数据库层面的关系
可以自己编写代码建立逻辑层面的关系
3.软件:
        redis             缓存型数据库       主流的热度很高
        mongoDB:          稳定型数据库       主要用于爬虫、大数据   最像关系型
        memcache:         缓存型数据库       已经被redis淘汰
复制代码

MySQL简介

复制代码
# 1.版本问题
    8.0:最新版
    5.7:使用频率较高
    5.6:学习推荐使用
  ps:站在开发的角度使用哪个版本学习都没有关系
    
# 2.下载流程
    1.访问官网
    2.点击DOWNLOADS并点击GPL
    3.点击community server
    4.点击Archives
    5.选择对应系统的对应版本下载即可(zip压缩包)
 
# 3.主要目录介绍
    bin目录  : 存放启动文件
       mysqld.exe(服务端)        mysql.exe(客户端)
    data目录 : 存放核心数据
       my-default.ini(默认的配置文件)
       readme(软件说明)
复制代码

MySQL基本使用

复制代码
# 建议使用管理员身份打开cmd
-1.切换到mysql的bin目录下先启动服务端      mysqld
-2.保持窗口不关闭 重新打开一个新的cmd窗口
-3.切换到mysql的bin目录下启动客户端         mysql

"""
1. 直接使用mysql命令默认是游客模式 权限和功能都很少
    mysql -u用户名 -p密码
2. 管理员默认没有密码 连续回车即可
    mysql -uroot -p
"""

# 在启动服务端的时候就报错
    * 拷贝报错信息,百度或mysql启动报错粘贴错误信息
复制代码

系统服务的制作

复制代码
# 1.先把bin目录添加到环境变量
    清空之前打开的cmd窗口,要把之前用cmd启动的服务端关闭
# 2.将mysql添加到系统服务中
    -1.如何查看系统服务
           鼠标右键任务栏选择服务
            cmd输入services.msc回车    
    -2.以管理员身份打开cmd窗口
           mysqld --install
# 3.首次添加不会自动启动 需要人为操作一下
    -1.鼠标右键点击启动
    -2.命令行启动
           net start mysql
"""
如果想卸载重新按照
    1.先关闭服务端      net stop mysql    
    2.移除系统服务      mysqld --remove
"""
复制代码

密码相关操作

复制代码
# 1.修改密码    
   * 方式1:mysqladmin 
       mysqladmin -u用户名 -p原密码 password 新密码
   * 方式2:直接修改存储用户数据的表
   * 方式3:冷门操作 部分版本不支持 
       set password=password('新密码')  # 修改当前登录用户的密码    
# 2.忘记密码
   * 方式1:卸载重装
   * 方式2:把data目录删除 拷贝一份别人的目录
   * 方式3:非正常操作
    -1.关闭正常的服务端
    -2.以跳过授权表的方式重启服务端(不校验密码)
    -3.以管理员身份进入然后修改mysql.user表数据即可
         net stop mysql
         mysqld --skip-grant-table
         mysql -uroot -p
         update mysql.user set password=password('123') where Host='localhost' and User='root';
    -4.关闭服务端 然后以正常方式启动即可
复制代码

 

SQL与NoSQL

复制代码
# 数据库的服务端支持各种语言充当客户端
    以mysql为例:为了能够兼容所有类型的客户端,有两种策略
       1.服务端兼容             不合理,消耗数据库服务端资源
       2.制定统一标准            SQL语句、NoSQL语句

# SQL与NoSQL
    SQL语句的意思是操作关系型数据库的语法
    NoSQL语句的意思操作非关系型数据库的语法
 ps:SQL有时候也用来表示关系型数据库 NoSQL也用来表示非关系型数据库
复制代码

数据库相关概念

库            文件夹
表            文件夹里面的文件
记录            文件里一行行的数据

常见基本SQL语句

复制代码
# 1.针对库的基本SQL语局
   增          create database 库名;
   删          drop database 库名;
   改          alter database 库名 charset='gbk';
   查          show databases;
                show create database 库名;
# 2.针对表的基本SQL语句
  查看当前所在的库名             
              select database();
  如果没有切换指定的库 那么默认是NULL
              use 库名;
  增          create table 表名(字段名 字段类型,字段名 字段类型);
  删          drop table 表名;
  改          alter table 旧表名 rename 新表名;    
  查          show tables;
              show create table 表名;
              describe 表名;
              desc 表名;

# 3.针对记录的基本SQL语句
  操作数据前,必须要先有库和表
  增           insert into 表名 values(数据,数据),(数据,数据);
  删           delete from 表名;                 # 删除表中所有的数据
               delete from 表名 where 筛选条件;   # 按条件删除
  改           update 表名 set 字段名=新数据 where 筛选条件; 
  查           select * from 表名;              # 查所有字段
               select 字段1,字段2 from 表名;     # 如果表中字段较多出现了错乱 可以结尾写\G                                

# 补充
   1.SQL语句结束符是分号                 ;
   2.取消SQL语句的执行                   \c
   3.查看所有的数据库                    show databases; 
   4.查看所有的表                       show tables;  
   5.查看user表里面所有的记录            select * from mysql.user;  
复制代码

MYSQL安装

https://juejin.cn/post/7130908861040427021

 

posted @   橘子菌菌n  阅读(287)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示