MySQL数据库

一,数据演变史

1
2
3
4
5
6
7
8
9
10
11
12
13
14
1,单独的文本文件
    没有固定的存放位置和格式
        文件名:user.txt  userinfo.txt  data.txt
        数据格式:jason|123  tony~123  kevin$123 
          """程序之间无法兼容"""
 
 
2,软件开发目录规范
    规定文件名和存储位置
    """文件查找变的简单了  并没有解决和核心问题"""
 
3,数据阶段
    规定文件名和存储位置和数据格式
    """目前正在使用的阶段  解决了核心问题"""

 

 

 

 

二,数据存储发展史

1
2
3
4
5
6
7
8
1,单级游戏阶段
    数据各自保存在各自的计算机上  无法实现共享
 
2,多机游戏阶段
    数据统一保存在某个固定的服务器(计算机) 实现共享
    前提:必须有网络
 
"""为了数据安全  还会采用集群策略来分担风险"""

  

 

 

三,数据库的本质

1
2
3
4
5
6
7
8
9
10
11
本质也是一款cs架构的软件
    既然数据库本质是一款cs架构的软件 也就意味着我们每个人都可以编写一个数据库软件
    在目前地球上很多牛逼的程序员 他们都具备编写数据库软件的能力 并且目前市面上真的有很多款数据库软件
 
"""
    数据库在狭义层面上来说
        指的是处理数据的底层程序
    数据库在广义层面来说
        指的是操作这些底层程序的便携应用软件
    其实学习数据库很多时候学习的是配套的数据库软件
"""

  

 

 

四,数据库的分类

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
市面有很多数据库软件 但是大致就分为两类
1,关系型数据库
    MySQL,Oracle, PostgreSQL, MariaDB, sqlite、sql server、db2
        MySQL:开源免费 使用非常规范
        Oracle:收费 维护成本高 大型公司可能会使用
        PostgreSQL:支持二次开发
        MariaDB:MySQL的替代产品(并且有自己的特性)
        sqlite:小型数据库(django框架自带该数据库)
         
             
2.非关系型数据库
    Redis、mongoDB、memcache
        Redis:目前最火的缓存数据库 具有很多数据结构 功能强大
        mongoDB:文档型数据库 可以用在大数据和爬虫领域
        memcache:已经被redis淘汰
 
"""
1,两类数据库的区别
    关系型数据库
        拥有固定的表结构 并且表与表之间可以建立代码层面的关系
    非关系型数据库
        没有固定的表结构 数据存储采用的是k:v键值对的形式
 
2,这么多数据库如何学习、
    两大类数据库操作逻辑基本一致
        每一类学习一个基本就可以掌握所有
            关系型学MySQL
            非关系型学 redis, mongodb

  

 

 

五,SQL与NOSQL的由来

1
2
3
4
5
数据库的服务端为了能够兼容不同类型的客户端实现数据交互
所以规定了统一的交互方式
    关系型数据库>>>:SQL语句
     非关系型数据库>>>:NoSQL语句
# NoSQL有时候也表示 非关系型数据库

  

六,MySQL

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
1.主要版本
    5.6:使用频率较高的版本
    5.7:目前正在过渡的版本
    8.0:目前最新的版本
"""不同的版本主要区别在于底层的逻辑 SQL语句几乎是一模一样的"""
# 学习阶段可以使用5.6的版本(如果已经下载了其他版本也没问题)
 
2.软件下载
    mac:https://www.cnblogs.com/Dominic-Ji/articles/15402755.html
    linux:博客置顶文章
    windows:瞪大眼睛看
        访问官网:https://www.mysql.com/
        具体步骤:
            DOWNLOADS
                MySQL Community (GPL) Downloads
                    MySQL Community Server
                        Archives
                            选择版本下载压缩包(客服端 服务端)
                   
3.目录介绍
    bin文件夹
        mysqld.exe      服务端
        mysql.exe       客服端
    data文件夹
        存储使用过程中需要保存的数据
    my-default.ini
        配置文件
    redadme
        说明文件
  
4.基本使用
    # 一定要先启动服务端再启动客户端
    """前期在操作的时候最好使用管理员cmd操作"""
    1.环境变量的配置
    2.直接输入mysqld启动服务端(当前cmd窗口不要关闭)
    3.开设一个新的cmd窗口操作客户端
        mysql   # 游客模式登陆
        mysql -u用户名 -p密码  # 账号登录(本地使用)
        mysql -hIP地址 -P端口号 -u用户名 -p密码  # 完整命令
        """第一次登录 root用户没有密码 直接连续回车即可"""

  

 

 

七,系统服务

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 将MySQL的服务端制作成系统服务 开机自启动 关机自关闭
     
1,先关闭之前的服务器
2,查看当前计算机系统服务列表
        services.msc
3,以管理员身份运行cmd并制作系统服务
        mysqld --install  # 仅仅是添加到了系统服务 第一次需要手动启动
4,启动服务
        方式一:鼠标右键选择启动即可
        方式二:命令行方式启动
            net start mysql
 
"""
停止服务
        net stop mysql
移除系统服务
        mysql --remove
"""

  

 

 

八,密码相关

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# 针对管理员用户需要设置密码
    方式1:直接在cmd窗口内使用mysqladmin命令
        mysqladmin -uroot -p原密码 password 新密码
            eg:
                mysqladmin -uroot -p password 123
                mysqladmin -uroot -p123 password 666
    方式2:直接在登录状态下修改当前登录用户的密码
        set password=PASSWORD('密码')
             
# 忘记密码如何解决(了解)
    方式1:前期数据库里面也没有数据 干脆重来!!!
    方式2:稍作了解
        1.关闭服务端
        2.以跳过授权表的方式重新启动服务端
            只需要提供用户名就可以登录
            mysqld --skip-grant-tables
        3.以管理员身份登录
            mysql -uroot -p
        4.修改管理员用户密码
            update mysql.user set password=password(123) where user="root" and host="localhost";
        5.关闭服务端再正常启动
            ctrl  + C
            net start mysql
         6.使用修改之后的密码登录     

  

 

 

基本SQL语句

1
2
3
4
5
6
7
8
9
10
“SQL语句的结束必须使用分号”
1,如何查看所有的数据库名称
    show databases;
2,如何查看所有的表名称
    use 库名      # 切换库
    show tables;
3,如何查看所有的记录
    select * from 表明;
     
如果内容较多展示补全出现错乱的情况  可以在语句后面加   /G

  

 

 

针对库的SQL语句

1
2
3
4
5
6
7
8
9
增:
    create database 数据库名;
查:
    show databases;    # 查看所有库名
    show create database 数据库名;  # 定向查看某个库
改(改的字符编码)
    alter database 数据库名 charset=‘gbk’;
    drop database 数据库名;

  

 

 

针对表的SQL语句

1
2
3
4
5
6
7
8
9
10
11
12
    create table 表明(字段名1 字段类型1,字段名2 字段类型2
    show tables
    show create table 表名;     # 指定表的信息
    describe 表名; 查看表的具体信息, 常用简写 desc 表名;
    alter table t1 rename ttt;     # 修改表名
    alter table ttt change id nid int# 修改字段名和类型
    alter table ttt modify nid char(4);  # 修改字段类型
    drop table 表名;

 

 

 

 

正对记录的操作

1
2
3
4
5
6
7
8
9
    insert into 表名 values(数据,数据,数据);   # 单条数据
    insert into 表名 values (),(),();      # 多条数据
    select * from 表名; “查询表中所有的数据”
    updata 表名 set 字段名='新数据' where 筛选条件;
    dalete from 表名 where 筛选条件;

  

 

 

字符编码问题

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
查看MySQL内部默认的编码情况
    /s
 
"""MySQL默认的配置文件》》》:mydefault.ini"""
1,拷贝默认的配置文件并且重新命名为 my.ini
2,拷贝固定的配置信息
    [mysqld]
    character-set-server=utf8
    collation-server=utf8_general_ci
    [client]
    default-character-set=utf8
    [mysql]
    default-character-set=utf8
3,重启MySQL服务器
# 在管理员模式下
net stop mysql
net start mysql

  

 

posted @   殷国敏  阅读(39)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示