• MySQL 1、初识数据库


    一、什么是数据库?

    以特定的格式保存好的文件,我们就叫做数据库。

    提供较为便捷的数据的存取服务的软件集合、解决方案,我们就叫它数据库。

    存储数据用文件就可以了,为什么还要弄个数据库。

    文件或数据库都可以存储数据,但是如果用文件,对于其内数据内容的管理工作就需要程序员自己做,如果用数据库,只需要几条语句就可以了。

    相比较于数据库,文件的缺点在于

    1.文件的安全性

    2.文件不利于数据查询和管理

    3.文件不利于存储海量数据

    4.文件在程序中控制不方便

    数据库的存储介质:磁盘和内存

    在Linux中,安装包一般是.rpm格式的。

    rpm -qa查看系统中之前安装过的安装包

    数据库可以更有效的管理数据。

    指令:

    启动:systemctl start mysqld

    MySQL的登录:mysql -uroot -p

    连接数据库:mysql -h 127.0.0.1 -p 3306 -u

    127.0.0.1为指定主机ip(这里是本地ip,如果支持远端,也可以输入远端ip)

    3306是mysql的默认端口号(数据库是建议改端口号的)

    -u表示想以哪个用户登录

    -p选项后面跟密码

    mysql实际上是一套网络服务

    mysql是数据库的客户端

    mysqld是数据库的服务端

    我们目录下的mysql实际上是MySQL的客户端,mysqld是MySQL的服务端,也叫数据库服务,实际是一个应用程序,启动之后变成进程。

    如果数据库被卸载,其内的数据仍然会保留下来

    数据库的本质:对文件的内容提供基本的内容操作,不需要用户、程序员手动进行数据管理,可直接通过mysql软件来操作文件。mysqld是一个软件层,能够帮助用户进行数据管理。

    什么是数据库?

    mysql实际上是一个数据库服务,以mysqld的形式呈现,最终在磁盘上会有大量的文件保存数据库内部的数据,我们把服务端和这些数据统称为数据库。

    实际mysql的服务端就是一个网络服务器,也就是说它采用TCP协议,mysql处于应用层,就是一个应用层服务。在网络的视角,mysqld它就是一个应用层服务,在系统的视角,它就是一个用户层的一个进程

     :::3306和LISTEN是TCP协议,是mysqld应用层

    它是一个网络服务,内部一定有自己的协议(我们不学mysql的协议规范等等)

    要重启的是服务端

    d开头的这个表示未来我们建库或者建表以及数据、数据库,都会放在这个目录

    s开头的这个主要是用来进行管道通信的。

    最重要的就是datadir。第一节1:12:00-1:16:00改mysql路径

    改端口号:第一节1:58:45

    二、创建一个数据库

    mysql是一个关系型数据库(数据和数据之间、数据的行列之间、表与表之间有较大的联系、关系,数据间耦合度较高)。像Nosql(not only sql)这种,它的数据和字段之间没有关系。

    创建一个数据库,本质是在做什么?建表本质在Linux上是做什么?

    本质是在系统里创建了一个目录,建表本质是创建文件。

    在MySQL中建立一个表本质是在Linux上创建对应的文件。

    建表的行为在数据库里对应着两个文件。

    数据库命令:

    show databases;//显示当前数据库支持的数据库列表

    creat database +名称;//创建数据库

    在MySQL中,建立一个数据库本质是在Linux下建立了一个目录。这个目录就叫数据库。我们操作的是客户端,也就是说实际上本质是客户端构建一个sql,通过网络或本地进程间通信,交给服务端进程,服务端进程收到sql指令,在它的进程内部,一定有对应的系统调用,帮我们创建目录

    use +库名称;//使用该库、进入该库

    select database();//可以查一下现在用的是哪个库

    system clear//执行系统的清屏命令,因为mysql没有清屏命令

    create table user(//建表

    name varchar(20),

    age int

    );

    show tables;//查看表

    desc user;//查看表的具体结构

    insert into 表名 () values ();//插入数据

    select * from user;

    mysql有自己的缓存,不是每个操作都反映在磁盘上

    上图是Linux环境下的。

    Mysql本质就是一个命令行的client,未来我们知道的图形化界面的访问数据库的软件,也是client,(mysql的生态中,也会提供第三方库,让语言也能直接访问MySQL,这种也叫client(客户端))(Linux中的mysql是一个客户端,mysqld是一个数据库服务端)

    服务器、数据库、表关系

    MySQL实际是以二进制形式存数据的,只是呈现出来的不一样,MySQL为我们做了相关转换(呈现出来的是逻辑结构)mysql的逻辑结构是行和列的

    第一节最后二十分钟,了解就行

    mysql架构

    mysql在不同环境下都有编好的,我们可以直接拿来用,现在的它在大部分平台都是可以跑的。所以mysql的底层源码在不同平台的底层源码是不一样的,但是上层的sql语句基本都是一样的。而C/C++这样的语言在不同平台上,底层的源码也是不一样的。

    Mysql分为三层,第一层叫链接层,主要作链接管理、安全管理、鉴权(例如检测密码是否正确等等)。第二层主要作词法语法分析、系统调优、编译处理等等。第三层是存储引擎层,且支持插件。每一个存储引擎其实都是一个类。

    sshd:远程登录协议,如果这个不启动,我们就无法在windows用xshell登录mysql

  • 相关阅读:
    Linux 终端 Ctrl + C 无法终止当前程序(详细解决步骤)
    我在winform项目里使用“Windows I/O完成端口”的经验分享
    现网常见问题及解决思路
    java计算机毕业设计科院垃圾分类系统源码+数据库+系统+lw文档+mybatis+运行部署
    Java预习43
    maven archetype 项目原型
    lenovo联想笔记本ThinkPad系列T15p或P15v Gen3(21DA,21DB,21D8,21D9)原厂Win11系统镜像
    Apache shiro RegExPatternMatcher 权限绕过漏洞 (CVE-2022-32532)
    C语言银行综合业务系统
    微信小程序连接数据库与WXS的使用
  • 原文地址:https://blog.csdn.net/weixin_60320290/article/details/131960666