MySQL基础

MySQL

 

数据演变史

# 1.单独的文本文件 
    没有固定的存放位置和格式
        文件名:user.txt userinfo.txt data.txt
        数据格式:jason|123 tony~123 kevin$123
"""程序彼此之间无法兼容"""

# 2.软件开发目录规范 规定了文件名和存储位置
"""文件的查找变得简单了 并没有解决核心问题"""

# 3.数据库阶段 规定了文件的存储位置和数据格式
"""目前正在使用的阶段 解决了核心问题"""

 

数据存储发展史

# 1.单机游戏阶段
    数据各自保存在各自的计算机上 无法实现共享

# 2.多机游戏阶段
    数据统一保存在某个固定的服务器上(计算机)  实现数据共享
    前提:必须有网络
'''为了数据的安全 还会采用集群策略来分担风险'''

 

数据库的本质

  本质也是一款cs架构的软件

    既然数据库本质是一款cs架构的软件 也就意味着我们每个人都可以编写一个数据库软件
    在目前地球上有很多牛逼的程序员 他们都具备编写数据库软件的能力 并且目前市面上真的有很多款数据库软件

  数据库在狭义层面上来说
    指的是处理数据的底层程序

  数据库在广义层面上来说
    指的是操作这些底层程序的便捷应用软件

  其实学习数据库很多时候学习的是配套的数据库软件

 

数据库的分类(重点)

  市面上有很多数据库软件 但是大致就分为两类:

    1.关系型数据库

      MySQL、Oracle、PostgreSQL、MariaDB、sqlite、sql server、db2

      MySQL:    开源免费 使用非常规范
      Oracle:   收费 维护成本高 大型公司可能会使用
      PostgreSQL:  支持二次开发
      MariaDB:     MySQL的替代产品(并且有自己的特性)
      sqlite:     小型数据库(django框架自带该数据库)

    2.非关系型数据库

      Redis、mongoDB、memcache

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

    3.两类数据库的区别

      关系型数据库
        拥有固定的表结构 并且表与表之间可以建立代码层面的关系

      非关系型数据库
        没有固定的表结构 数据存储采用的是K:V键值对的形式

    4.这么多数据库如何学习

      两大类数据库操作逻辑基本一致
      每一类学习一个基本就可以掌握所有

      关系型学MySQL
      非关系型学redis、mongodb

 

SQL与NoSQL的由来

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

  注意: NoSQL有时候也表示 非关系型数据库

 

MySQL下载安装

  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用户没有密码 直接连续回车即可

 

MySQL系统服务

  # 将MySQL的服务端制作成系统服务 开机自启动 关机自关闭

 

  1.先关闭之前的服务端

  2.查看当前计算机系统服务列表
    services.msc

  3.以管理员身份运行cmd并制作系统服务
    mysqld --install # 仅仅是添加到了系统服务 第一次需要手动启动

  4.启动服务
    方式1:鼠标右键选择启动即可
    方式2:命令行方式启动
      net start mysql

  5.停止服务
    net stop mysql

  6.移除系统服务
    mysqld --remove

MySQL密码相关

  针对管理员用户需要设置密码

    方式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.使用修改之后的密码登录

 

重要概念介绍

  库   文件夹

  表   文件夹里面的文件

  记录     文件夹里面的文件里面的一行行内容

 

MySQL的注释语法

  #  注释
  --  注释

 

基本SQL语句

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

 

针对库的SQL语句

"""辛辛苦苦一个月 换来的就是一条SQL语句"""
#
    create database 数据库名;
#
    show databases;  # 查看所有的库名
    show create database 数据库名;  # 定向查看某个库
#
    alter database 数据库名 charset='gbk';
#
    drop database 数据库名;

 

针对表的SQL语句

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

 

操作表的SQL语句补充

1. 修改表名  
      alter table 表名 rename 新表名;
2. 增加字段
      alter table 表名 add 字段名  数据类型 [完整性约束条件…],
      alter table 表名 add 字段名  数据类型 [完整性约束条件…]  first;
      alter table 表名 add 字段名  数据类型 [完整性约束条件…]  after 字段名;                       
3. 删除字段
      alter table 表名 drop 字段名;
4. 修改字段  # modify只能改字段数据类型完整约束,不能改字段名,但是change可以!
      alter table 表名 modify 字段名 数据类型 [完整性约束条件…];
      alter table 表名 change 旧字段名 新字段名 旧数据类型 [完整性约束条件…];

 

针对记录的SQL语句

"""
肯定得先确定库和表
"""
#
    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服务端

 

END

posted @ 2022-02-17 16:14  Snails蜗牛  阅读(46)  评论(0编辑  收藏  举报