MySQL数据库学习笔记

今日内容概要

  • 数据存取演变史
  • 数据库软件应用史
  • 数据库的本质
  • 数据库的分类
  • MySQL数据库
  • 基本SQL语句

今日内容详细

数据存取演变史

1.文本文件

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

2.软件开发目录规范

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

3.数据库服务

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

数据库软件应用史

1.单机游戏

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

2.网络游戏

不同计算机上的相同程序,数据可以共享
  数据库服务单独在网络架设(远程数据库服务)
"""
远程数据库服务
数据库集群
  1.数据安全性问题
  2.服务器负载问题
让多台服务器运行相同的数据库服务
"""

数据库的本质

1.数据库站在底层原理的角度:数据库指的是专门用于操作数据的进程。

eg:运行在内存中的代码

2.数据库站在现实应用的角度:数据库指的是拥有操作界面的应用程序。

eg:用于操作进程的界面

我们平时在说数据库的时候大部分指的是操作数据库的应用软件

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

言外之意所有的程序员理论上都可以编写!!!>>>:市面上已经有很多数据库软件

数据库的分类

关系型数据库

1.数据的组织方式有明确的表结构(最主要的特征)
eg:  id  name  password
ps:关系型数据库存取数据的方式可以看成是表格

2.表与表之间可以建立数据库层面的关系
eg:  用户表  房屋表
ps:只要获取到用户表的一条数据,就可以获取到与之相关的其他数据

常见关系型数据库名称

名称 说明
MySQL 开源免费,使用最广泛,数据库学习必学
postgreSQL 开源免费,支持二次开发
MariaDB 开源免费,与MySQL是同一个作者,用法也极其相似
Oracle 收费,安全性极高,但是使用成本高,主要用于银行及各大重要机关
sqlite 小型数据库,主要用于本地测试(django框架自带该数据库)
db2 IBM开发的一种大型关系型数据库平台
sql server 老牌数据库软件,目前主流不用

非关系型数据库

1.数据的组织方式没有明确的表结构,是以k:v键值对的形式组织的(最主要特征)
2.数据之间无法直接建立数据库层面的关系

常见的非关系型数据库名称

名称 说明
redis 目前最火,使用频率最高的缓存型数据库
mongoDB 稳定型数据库,最像关系型的非关系型,主要用于爬虫,大数据
memcache 已经被redis淘汰

SQL与NoSQL

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

SQL语句的意思是操作关系型数据库的语法

NoSQL语句的意思是操作非关系型数据库的语法

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

MySQL数据库

MySQL简介

版本问题

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

下载

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

1.下载步骤:

1.访问官网>>>2.点击DOWNLOADS>>>3.点击MySQL Community(GPL) Downloads>>>4.点击MySQL Community Server>>>5.点击archives>>>6.选择版本和系统>>>7.点击download

讲解以windows为基准,mac和linux参考下列博客.
linux:https://www.cnblogs.com/Dominic-Ji/p/15124625.html  
mac:https://www.cnblogs.com/Dominic-Ji/articles/15402755.html

image

2.解压处理

建议压缩到D或者E、F盘的根目录方便查找。mysql-5.6.44-winx64.zip >>> mysql-5.6.44-winx64。

目录结构

bin文件夹
    mysqld.exe		服务端
    mysql.exe		客户端
'''学习阶段服务端在本地启动即可'''
data文件夹
  	存放数据
my-default.ini文件
  	默认配置文件
README文件
    说明书

image

基本使用

1.先启动服务端

可能会报错:拷贝关键信息去百度

2.查找mysql文件位置

输入mysqld,启动服务端
cmd窗口就是服务器,不要关闭

image

3.再次开启新的cmd窗口

输入mysql,充当客户端
直接回车会以游客模式进入,功能很少

4.用户名密码登录

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

image

5.退出

exit
quit

系统服务制作

我们可以直接添加mysql的bin目录到环境变量中,就可以直接输入mysql等命令。

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

1.以管理员身份打开cmd窗口
2.执行系统服务命令
  mysqld --install
3.启动服务端
  1.右键直接点击启动
  2.命令启动
    net start mysql
命令 说明
services.msc 查看系统服务的命令
net start mysql 启动mysql服务端
net stop mysql 关闭mysql服务端
mysqld --remove 移除系统服务(先确保服务已经关闭)

密码相关操作

直接输入mysql登入的是默认的游客模式,没有太多的操作权限,我们可以使用用户名和密码的方式登录。

1.修改密码

通用方式:在cmd窗口下直接修改(不要登录进去)

mysqladmin命令
mysqladmin -u用户名 -p原密码 password 新密码
第一次修改
  MySQLadmin -uroot -p password 123
第二次修改
  mysqladmin -uroot -p123 password 321

偏门方式:登录状态下修改当前用户密码(先登录)

set password=PASSWORD('新密码');

2.忘记密码

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

数据库重要概念

名称 相当于
文件夹
文件夹里面的文件
记录 文件里面一行行数据

查看库,表,记录的命令

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

补充

符号 作用
; SQL语句结束符
\c 取消SQL语句的执行

基本SQL语句

针对库的基本SQL语句

语句和类型 说明
create database 库名; 创建一个库
show databases; 查看所有库的名称
show create database 库名; 指定查看某个库的信息
alter database 库名 charset='gbk'; 修改字符编码
drop database 库名; 删除库

针对表的基本SQL语句

查看当前所在的库名: select database(); 如果没有切换指定的库 那么默认是NULL

切换或进入库:use 库名;
语句和类型 说明
create table 表名(字段名1 字段类型1,字段名2 字段类型2); 创建一个表,表里含有字段1和2
show tables; 查看当前库下所有的表的名称
show create table 表名; 指定查看某个表的信息
describe 表名; 指定查看表的字段信息
desc 表名; describe 表名;的简写
alter table 旧表名 rename 新表名; 修改表名
drop table 表名; 删除表

针对记录的基本SQL语句

前提:要想操作记录,那么肯定得先有库和表。

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

ps:如果查看表的时候表中字段较多出现了错乱,可以结尾写\G

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