• 开发工程师必备————【Day09】数据库基础知识与基本SQL语句


    今日内容概要

    • 数据存取演变史
    • 数据库软件应用史
    • 数据库的本质
    • 数据库的分类
    • MySQL数据库
    • 基本使用
    • 系统服务制作
    • MyAQL之密码相关操作
    • SQL与NoSQL
    • 数据库重要概念
    • 基本SQL语句

    数据存储演变史

    1.文本文件
    缺点:
    (1)文件路径不一致:
    C:\a.txt
    D:\aaa\b.txt
    E:\ccc.txt
    (2)数据格式不一致:
    jason|123
    tony$123
    kevin@123
    上述两种格式的不同导致了程序的兼容性比较差。

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

    3.数据库服务
    统一存储位置;也统一了数据格式(完全统一)

    数据库软件应用史

    1.单级游戏
    特点:数据库服务全部在本地完成
    不同计算机上的相同程序,缺点是数据无法做到共享;

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

    3.数据库集群
    需要考虑到的问题:
    数据安全性问题;
    服务器负载问题。
    解决办法:让多台服务器运行相同的数据库服务。

    数据库的本质

    1.不同角度描述数据库
    (1)站在底层原理的角度
    数据库指的是专用用于操作数据的进程;
    eg:运行在内存中的代码。
    (2)站在现实应用的角度
    数据库指的是拥有操作界面的应用程序
    eg:用于操作进程的界面。

    2.数据库本质描述
    在非特殊情况下提数据库就是在指数据库软件;
    我们也称数据库软件本质是一款cs架构的应用程序;
    所有的程序员理论上都可以编写的。

    数据库的分类(理论重点)

    1.关系型数据库
    (1)数据的组织方式有明确的表结构:
    eg表里面有固定的字段:id;name;password
    关系型数据库存取数据的方式可以看成是表格。
    (2)表与表之间可以建立数据库层面的关系:
    eg用户表中某条数据与房屋表某条数据有绑定:用户表;房屋表
    只要获取到用户表的一条数据,就可以获取到与之相关的其他表数据。
    (3)关系型数据库软件:
    MySQL、PostgreSQL、MariaDB、Oracle、sqlite、db2、sql server
    MySQL:开源,使用最为广泛,数据库学习阶段必须要学的。
    PostgreSQL:开源,支持二次开发(支持在原基础上更改功能)。
    MariaDB:开源,与MySQL是同一个作者,用法也极其相似。
    Oracle:收费,但是安全性极高,主要用与银行及各大重要机关。
    sqlite:小型数据库,主要用于本地测试(django框架自带该数据库)

    2.非关系型数据库
    (1)数据的组织形式没有明确的表结构,是以k:v键值对的形式组织的,并且没有固定键值对。
    eg:第一次存:{‘name’:‘jason’}
    那么第二次存可以换成{‘username’:‘kevin’,‘pwd’:123}
    (2)数据之间无法直接建立数据库层面的关系;
    但是可以间接建立(例如用代码实现)。
    (3)非关系型数据库软件:
    redis、mongoDB、memcache
    redis:目前最火的软件,使用频率最高的缓存型数据库。
    mongoDB:稳定型数据库,最像关系型的非关系型数据库,主要用于爬虫以及大数据。
    memcache:已经被redis淘汰。

    MySQL简介

    前戏:
    虽然数据库很多,但是其底层操作几乎一致,学会一个其他的都可以快速上手。
    学了MySQL基本就可以快速上手所有的关系型数据库甚至非关系型数据库。

    1.MySQL版本问题
    虽然在版本上又区别,但是在操作上几乎没有区别,主要体现在底层运作。
    5.6X:前几年使用频率最高的版本
    5.7X:最近尝试迁移的版本(频率+)
    8.0X:最新版 功能很强大 但是线上环境几乎不用(本地自己用非常好用)

    2.下载与安装
    (1)访问官网:
    https://www.mysql.com/
    (2)点击DOWNLOADS
    请添加图片描述
    (3)点击GPL
    请添加图片描述
    (4)点击community server
    请添加图片描述
    (5)点击archives
    请添加图片描述
    (6)点击download
    请添加图片描述

    3.解压安装
    上述方式下载的压缩包里含有服务端和客户端,支持本地操作。

    4.主要文件介绍
    请添加图片描述
    (1)bin文件夹
    mysqld.exe服务端
    mysql.exe客户端
    (2)data文件夹
    存取数据
    (3)my-default.ini
    默认配置文件

    基本使用

    1.先启动服务端
    可能会报错:拷贝关键信息去百度

    2.查找mysqld文件位置
    mysqld
    cmd窗口就是服务端,一定不要关闭!!!
    请添加图片描述

    3.再次开启新的cmd窗口
    mysql
    直接回车会以游客模式进入,功能很少。
    请添加图片描述

    4.用户名密码登录
    mysql -u用户名 -p密码
    mysql默认管理员账号,用户名是root ,密码是空。
    请添加图片描述

    5.退出
    exit
    请添加图片描述
    quit
    请添加图片描述

    系统服务制作

    1.如何解决每次都需要切换路径查找文件的缺陷:
    添加环境变量:
    将D:\mysql-5.6.44-winx64\bin(mysql下bin文件路径)添加到环境变量path中。

    2.将mysql服务端制作成系统服务(随着计算机的开启而启动,关闭而结束)
    (1)以管理员身份打开cmd窗口
    (2)执行系统服务命令:mysqld --install

    (3)启动服务端(两种方式)
    方式一:右键直接点启动
    方式二:命令启动: net start mysql
    请添加图片描述

    (4)服务端配置完成请添加图片描述

    3.补充命令
    (1)查看系统服务的命令:services.msc
    (2)关闭mysql服务端:net stop mysql
    (3)移除系统服务(首先确保服务已经关闭,其次执行移除命令):mysqld --remove

    MyAQL之密码相关操作

    1.修改密码
    方式一(通用的修改方式):
    mysqladmin命令:
    mysqladmin -u用户名 -p原密码 password 新密码
    第一次修改密码:mysqladmin -uroot -p password 123
    第二次修改密码:mysqladmin -uroot -p123 password 000000
    方式二(偏门方式):
    需要先登录,并且有些版本无法使用!!!
    命令:set password=PASSWORD(新密码);

    2.忘记密码
    方式一:
    直接重装MySQL
    方式二:
    拷贝对应文件
    先关闭服务端,然后以不需要校验用户身份的方式启动。再修改,最后再安装正常方式启动。
    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

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

    2.SQL与NoSQL
    SQL语句的意思是操作关系型数据库的语法
    NoSQL语句的意思操作非关系型数据库的语法
    需要强调:SQL有时候也用来表示关系型数据库,NoSQL也用来表示非关系型数据库.

    数据库重要概念

    1.一些概念
    库————>文件夹
    表————>文件夹里面的文件
    记录————>文件里一行行的数据
    一些命令:
    show databases; 查看所有的数据库
    show tables; 查看所有的表
    select * from mysql.user; 查看user表里面所有的记录

    2.补充
    (1)SQL语句结束符是分号
    ;
    (2)取消SQL语句的执行
    \c

    基本SQL语句

    1.针对库的基本SQL语句
    (1)增

    creat database 库名;
    
    • 1

    (2)查

    show databases;
    show creat database 库名;
    
    • 1
    • 2

    (3)改

    # 改编码(采用gbk编码)
    alter database 库名 charset='gbk';
    
    • 1
    • 2

    (4)删

    drop database 库名;
    
    • 1

    2.针对表的基本SQL语句
    前提条件:首先了解自己当前在哪个库里面操作表!!!
    命令一(查看当前所在的库名):select database();
    如果没有切换指定的库 那么默认是NULL,如图所示.
    请添加图片描述
    命令二(切换库名):use 库名;
    请添加图片描述
    (1)增

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

    (2)查

    show tables;
    show create table 表名;
    describe 表名;  
    desc 表名;
    
    • 1
    • 2
    • 3
    • 4

    (3)改

    # 改表名
    alter table 旧表名 rename 新表名; 
    
    • 1
    • 2

    (4)删

    drop table 表名;
    
    • 1

    3.针对记录的基本SQL语句
    前提条件:既然想操作记录,那么肯定的先有库和表!!!
    (1)增

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

    (2)查

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

    (3)改

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

    (4)删

    delete from 表名;  # 删除表中所有的数据
    delete from 表名 where 筛选条件  # 按照条件删除数据
    
    • 1
    • 2
  • 相关阅读:
    怎么压缩pdf文件?分享缩小pdf文件的简单方法
    分享:中兴 远航 30 pro root 解锁BL magisk ZTE 7532N 8040N 9041N 刷机 刷面具原厂刷机包 root方法下载
    Mybatis从零开始创建
    mybatis笔记 映射配置文件
    Python:Tornado框架之获取get和post的传参
    某大厂软件测试岗一面笔试题+二面问答题面试经验分享
    【Dockerfile镜像实战】构建LNMP环境并运行Wordpress网站平台
    【python学习】基础篇-常用模块-shutil文件和目录操作
    天馈 频谱 场强 +定位,手持式信号综合分析仪---AMT950C
    听GPT 讲Istio源代码--pilot
  • 原文地址:https://blog.csdn.net/DiligentGG/article/details/126310956