初见mysql

数据演变史

        # 1.单独的文本文件
            没有固定的存放位置和格式
                文件名:user.txt  data.txt
                 数据格式:jason|123  tony~123
             """只能在自己电脑上使用,程序彼此之间无法兼容"""
        # 2.软件开发目录规范
            规定了文件的命名规则和存储位置
            """文件的查找变得更加简单  但是并没有解决核心问题"""
        # 3.数据库阶段
            规定了文件的存储位置和数据的格式
            """目前正在使用的阶段  解决了核心问题"""

数据存储发展史

        # 1.单机游戏阶段
            数据各自保存在各自的计算机上,无法实现各方共享
        # 2.多机游戏阶段
            数据统一保存在一个固定的服务器上,再通过网络以此实现数据共享(必须要有网络)
            """为了数据的安全,还会采用集群架构来分担风险"""

数据库的分类(重头戏)

        # 市面上有很多款数据库软件,但是大致分为两类
        1.关系型数据库
            MySQL:开源免费,使用规范
            Oracle:收费,维护成本高,些许大型公司会使用
            PostgreSQL:支持二次开发
            MariaDB:MySQL的替代产品(并且有属于自己的特性)
            sqlite:小型数据库(django框架自带该数据库)

        2.非关系型数据库
            Redis:目前最火的缓存数据库,具有很多大数据结构,功能强大
            mongoDB:文档型数据库,可以用在大数据和爬虫领域
            memcache:已经被redis淘汰


        """
        1.两类数据库的区别
            关系型数据库:
                拥有固定的表结构,并且表与表之间可以建立代码层面的关系
            非关系型数据库:
                没有固定的表结构,数据储存采用的是类似于字典的K:V键值对的形式

        2.这么多数据库该如何学习呢
            这两大类数据库类型的操作逻辑基本一致
                每个种类的数据库学习一种即可
                关系型学MySQL
                非关系型学redis、mongodb
        """

SQL与NoSQL的由来

        数据库的服务端为了能够兼容不同类型的客户端实现数据交互
        统一规定了交互方式
            关系型数据库:SQL语句
            非关系型数据库:NOSQL语句

MySQL

        1.主要版本
            5.6版本使用频率较高
            5.7版本目前正处于过渡阶段
            8.0版本是目前最新的版本
        """不同的版本主要区别在于其底层的逻辑,SQL语句基本一致"""
        学习时使用5.6版本足以

        2.软件下载
            mac:https://www.cnblogs.com/Dominic-Ji/articles/15402755.html
            linux:https://www.cnblogs.com/Dominic-Ji/articles/15429428.html
            Windows:
                1.访问官网:https://www.mysql.com/
                2.具体步骤:
                    DOWNLOADS
                    MySQL Community (GPL) Downloads
                    MySQL Community Server
                    Archives
                    选择版本下载压缩包(客服端 服务端)

        3.目录介绍
            bin文件夹:mysqld.exe   服务端
                      mysql.exe    客户端
            data文件夹:存储使用过程中需要保存的数据
            my-default.ini:配置文件
            redadme:说明文件

        4.基本使用
            # 一定要首先启动服务端再启动客户端
            """前期在操作的时候最好使用管理员cmd操作"""
            1.配置环境变量
                将下载的文件路径加入环境变量中(右键我的电脑-属性-高级系统设置-环境变量-双击path-添加路径保存)
            2.直接输入mysqld启动服务端(当前cmd窗口不要关闭!!)
            3.开设一个新的cmd窗口操作客户端
                mysql  # 游客登录模式
                mysql -u用户名 -p密码  # 账号登录
                mysql -hIP地址 -P端口号 -u用户名 -p密码  # 完整版账号登录
                """第一次登陆,root没有密码,直接连续回车进入"""

系统服务

        # 将MySQL的服务端制作成系统开机自启动,关机自关闭
        1.将之前的服务端关闭
        2.查看当前计算机系统服务列表(win+r输入services.msc回车)
        3.以管理员身份运行cmd并制作系统服务
            mysqld --install  # 将mysql添加到系统服务,第一次需要手动启动
        4.启动服务
            方式一:命令行方式启动(net start mysql)
            方式二:在添加到系统服务的窗口中,选中直接右键启动
        5.停止服务(net stop mysql)
        6.移除系统服务(mysqld --remove)

密码相关

        # 针对管理员用户需要设置密码
            方式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语句

        # 在编写sql语句时,结束时必须使用分号结尾
        1.如何查看所有数据库的名称
            show databases;  # 会有一个临时产生在内存的库:in...sc
        2.如何查看所有的表名称
            use 库名;  # 切换库,类似于双击文件夹的操作
            show tables;
        3.如何查看所有的记录
            select * from 表名;
            如果内容较多,展示不全出现错乱的情况,可以在语句后加 \G

针对库的SQL语句

        # 增
            create database 数据库名;
        # 查
            show databases;  # 查看所有库的名字
            show create database 数据库名; # 定向查看某个库
        # 改
            alter database 数据库名 charset='gbk';
        # 删
            drop database 数据库名;

针对表的SQL语句

        """
        要想操作表必须得先有库
            1.先创建库
                create database db1;
            2.查看当前所在的库名
                select database();
            3.切换库
                use db1;
        """
        # 增
            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 表名;

针对记录的操作

        """肯定得先确定库和表"""
        # 增
            insert into 表名 values(数据,数据,数据);  '''单条数据'''
            insert into 表名 values(),(),();  '''多条数据'''
        # 查
            select * from 表名;  '''查询表中所有的数据'''
        # 改
            update 表名 set 字段名='新数据' where 筛选条件;
        # 删
            delete from 表名 where 筛选条件;

字符编码问题

        # 查看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服务端
posted @ 2022-02-18 08:51  丶祈安  阅读(29)  评论(0编辑  收藏  举报