mysql基础概念

文章目录

  • 登录mysql
  • mysql和mysqld
  • 数据库操作
  • 主流数据库
  • MYSQL架构
  • SQL分类


登录mysql

登录mysql连接服务器,mysql连接时可以指明主机用-h选项,然后就可以指定主机Ip地址,-P可以指定端口号 -u指定登录用户 -P指定登录密码
查看系统中有无mysql,就是查看mysql进程
在这里插入图片描述
连接登录mysql
在这里插入图片描述
设置免密码按两次回车键,连接mysql后出现这个就是连接成功
在这里插入图片描述

mysql和mysqld

mysqld和mysql它们两个有何区别
mysql是数据客户端
mysqld为数据库服务端,服务器后端一直守护进程运行着。
它们存储在不同路径下
在这里插入图片描述
mysql的本质是:基于C(mysql)和S(server)模式的一种网络服务,mysql是一套给我提供数据存取的服务的网络程序。而在口头上说的数据库一般指在磁盘或者内存中存储的特定结构组织的数据就是在磁盘上存储的一套数据库方案!
而数据库的服务端是mysqld
mysql为数据库客户端
数据库能存储但是存储的话文件就已经能够存储了又为何要有数据库用来对数据做存取,因为一般文件只是提供了对数据做存储的功能,但是文件没有提供对数据做更好的管理方案,就是对存储的数据做增删查改,所以对于数据的管理能力需要我们用户自己来,因此也就衍生了数据库,数据库能够对数据存储的同时能将存储的数据做更好的管理,能做增删查改。
数据库的本质:对数据内容存储的一套解决方案,你给我的字段或要求,然后数据库我(mysqld)给你一个结果,它在给结果之前要对数据进行分析,然后返回结果给用户,数据库整体对外提供存储解决方案。
在这里插入图片描述

程序员发送需求给客户端,然后mysql根据需求给服务器mysqld服务端,然后mysqld拿到请求对磁盘中的数据库文件做管理操作,然后将结果返回给mysqld,再返回给mysql最后返回给用户,数据库对存储的数据做管理。
数据库提供存储能力的文件数据库在存储介质下保存,数据库模式是数据在磁盘中结构化数据库。

数据库操作

查看数据库
show databases;
在这里插入图片描述
首先建立一个数据库,数据库数据都是存放在一个路径下
在/etc/my.cnf配置文件中,数据路径
在这里插入图片描述
进入到这个路径下/var/lib/mysql
在这里插入图片描述
查看可以发现他有很多文件有目录文件和普通文件
然后创建一个数据库create database 数据库名;由于是在命令行上操作的所以要以分号结尾
在这里插入图片描述
创建数据库成功
查看数据库会有多出自己创建的数据库
在这里插入图片描述
然后在/var/lib/mysql路径下查看会多出一个目录文件
在这里插入图片描述
所以Linux下建立一个数据库就是在系统下建立一个目录文件,下达指令时会在磁盘上创建一个目录文件,而创建数据库之后再在这个数据库之下创建一张表,要先进入这个数据库,进入数据库就是使用数据库
use 数据库名,然后create table 表名
在这里插入图片描述
设置表中各种字段,列名,大小,类型;
创建好表之后在数据库目录下会存在许多文件,这是创建表之后出来的
在这里插入图片描述
而在数据库中建表就是在Linux下创建一个文件,表系统会默认给它分配字节大小,当有表之后就可以向表中插入数据了,insert into 表名(表中字段信息)values(设置对应值);
在这里插入图片描述
然后查看表
在这里插入图片描述
请求建数据库和建表这个工作是由mysqld完成。
在linux下,数据库路径下一个目录就是一个数据库,数据库本质也是文件,只不过这些文件不由程序员直接操作而是由数据库服务端操作。

主流数据库

SQL Sever: 微软的产品,.Net程序员的最爱,中大型项目。
Oracle: 甲骨文产品,适合大型项目,复杂的业务逻辑,并发一 般来说不如MySQL。
MySQL: 世界上最受欢迎的数据库,属于甲骨文,并发性好,不适合做复杂的业务。主要用在电商,SNS,论坛。对简单的SQL处理效果好。
PostgreSQL :加州大学伯克利分校计算机系开发的关系型数据库,不管是私用,商用,还是学术研究使用,可以免费使用,修改和分发。
SQLite: 是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。
H2:是一个用Java开发的嵌入式数据库,它本身只是一个类库,可以直接嵌入到应用项目中。
其中最主流的数据库为MYSQL关系型数据库,当选择数据库时要考虑它的生态是否成熟,生态(开源,然后它暴露的问题得到解决暴露出来,然后有活跃的社区,官方匹配的文档…等等),大部分互联网公司都是使用的mysql数据库。
而服务器,数据库表的关系是什么?
安装数据库服务器就只是在机器上安装了一个数据库管理系统程序,这个管理程序可以管理多个数据库,一般开发人员会针对每一 个应用创建一 个数据库。
为保存应用中实体的数据,一般会在数据库中创建多个表,以保存程序中实体的数据。
数据库服务器、数据库和表的关系如下:
在这里插入图片描述
在这里插入图片描述
数据库它是一种行列式的存储结构,以表结构呈现出来
在这里插入图片描述

学生表,一行就代表一个人,然后一列代表一种属性集合,按照行列式存储方式。

MYSQL架构

MySQL是一一个可移植的数据库,几乎能在当前所有的操作系统上运行,如Unix/Linux、Windows.Mac和Solaris。各种系统在底层实现方面各有不同,但是MySQL基本上能保证在各个平台上的物理体系结构的一致性。
在这里插入图片描述
客户交互
第一层连接然后进行安全管理,第二层为词法分析,第三层为数据存储方案,存储引擎

SQL分类

DDL [data definition language] 数据定义语言,用来维护存储数据的结构
代表指令: create, drop, alter;建表,修改表结构,维护存储数据的结构
DML [data mani pulation language] 数据操纵语言,用来对数据进行操作
代表指令:insert, delete, update;增删改对表数据结构内操作语言;
DML中又单独分了一一个DQL,数据查询语言,代表指令: select
DCL [Data Contro1 Language] 数据控制语言,主要负责权限管理和事务
代表指令: grant, revoke, commit

存储引擎
存储引擎是数据库管理系统如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法。
MySQL的核心就是插件式存储引擎,支持多种存储引擎。
查看存储引擎show engines;
在这里插入图片描述
其中最常用的存储引擎是InnoDB和MyISAM
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/9975.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【退役之重学Java】Redis 的过期策略

Redis 的过期策略 一、假设设置一个key 只能存活1h,那么1h之后,Redis 是怎么对这批 key 进行删除的? 回答: 定期删除 惰性删除 所谓定期删除,指的是 Redis 默认每隔100ms 就随机抽取一些设置了过期时间的 key&…

解决离线服务器无法加载HuggingFaceEmbeddings向量化模型的问题

由于服务器是离线的,因此我先在本地到huggingface官网下载模型text2vec,然后上传到服务器上运行,报错: (MaxRetryError(HTTPSConnectionPool(host\huggingface.co\, port443): Max retries exceeded with url: /api/models/senten…

代码随想录——二叉树的层序遍历Ⅱ(Leetcode107)

题目链接 层序遍历(队列) /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val val; }* TreeNode(int val, Tre…

### 【数据结构】线性表--顺序表(二)

文章目录 1、什么是线性表2、线性表的基本操作3、顺序表3.1、顺序表的定义3.2、顺序表的实现方式:静态分配3.3、顺序表的实现方式:动态分配3.4、顺序表的特点3.5、顺序表的初始化与插入操作3.6、顺序表的删除与查询 1、什么是线性表 ​ 线性表是具有相同…

常用的 Ansible 模块

以下是一些常用的 Ansible 模块: - ping 模块:用于检测目标主机是否可达。 - file 模块:可以管理文件和目录,如创建、删除、修改权限等。 - copy 模块:用于将本地文件复制到远程主机。 - service 模块:管…

【配置】IT-Tools部署

github地址 docker运行如下,记得打卡端口 docker run -d --name it-tools --restart unless-stopped -p 9090:80 corentinth/it-tools:latestip:9090查看,很香大部分工具都有

【神经网络】矩阵乘法的应用详解

文章目录 一、多维数组使用NumPy创建和操作多维数组 二、矩阵乘法矩阵乘法的基本定义计算 2x2 矩阵的乘积矩阵形状的要求特殊情况:矩阵与向量的乘积 三、神经网络中的矩阵乘法神经网络的结构简介矩阵乘法在神经网络中的应用计算细节和NumPy的实现 一、多维数组 多维…

一键追爆款,GPT一键改文‌‍‬⁣⁡​⁤⁢​⁢⁡⁣‬‍‌​​‬ ​‍⁤‬ ‬⁡⁡⁡‍‌‬⁡⁡⁢‬⁤⁢⁢⁤​‍‌​​‬ ​⁣‌,绘唐3,绘唐工具

ai画影满足你的制作要求 一键追爆款,GPT一键改文 AI推文小说&漫画解说&解压混剪 人物定义,角色定义,lora转换,模型转换,可视化参考满足 一键追爆款 一键挂机生成,效果更精彩,使用更方…

mysql 其他类型转换为BIT

看官网说明,BIT没什么特殊之处。但实际操作却不能将任何其他类型字段转为BIT,下面两个都报语法错误 CAST(column AS BIT(1)) AS aa , CAST(column AS BIT) AS bb, BIT value则模式是VARBINARY b1 as cc, -- cc为VARBINARY类型 下面是《高性能MySQL(第四版)》中关于BIT类型的…

C++随手写一个打字练习软件TL(TypeLetters)附原码

C随手写一个打字练习软件TL(TypeLetters)附原码 说明 软件名称:TL(TypeLetters) 开发语言:C 适合人群:零基础小白或C学习者 软件功能:打字练习软件TL(TypeLetters&#…

解双曲型非线性方程的Harden-Yee算法(TVD格式)

解双曲型非线性方程的Harden-Yee算法 先贴代码,教程后面有空再写 import matplotlib import math matplotlib.use(TkAgg) import numpy as np import matplotlib.pyplot as plt def Phiy(yy,epsi):#phi(y)if abs(yy) > epsi:phiyy abs(yy)else:phiyy (yy*yy…

国外在线教育系统源码,知识付费课程录制流程是什么样?

无论是从信息内容优化,还是知识产权保护的角度来看,“内容付费”都是一个有力的抓手,并且也一定是未来互联网发展的一个重要方向。与此同时,互联网技术的不断进步降低了“内容付费”的使用门槛,越来越多的人企图搭上这…

2024年华为OD机试真题-螺旋数字矩阵-Java-OD统一考试(C卷D卷)

题目描述: 疫情期间,小明隔离在家,百无聊赖,在纸上写数字玩。他发明了一种写法: 给出数字个数n和行数m(0 < n ≤ 999,0 < m ≤ 999),从左上角的1开始,按照顺时针螺旋向内写方式,依次写出2,3...n,最终形成一个m行矩阵。 小明对这个矩阵有些要求: 1.每行数字的…

2024年记录

kong docker 安装: kong docker 安装

C++ VScode: launch: program ...... dose not exist

VScode: launch: program … dose not exist 介绍 参考VS Code 配置 C/C 编程运行环境&#xff08;保姆级教程&#xff09;教程配置了VSCode。在配置launch.json适用多个.c 文件编译时&#xff0c;弹出下面错误。 原因和解决方法 是task.json 默认配置的问题。 默认的 cwd参…

【深度学习Labelme】使用Segment Anything Model (SAM)快速打标,labelme多边形转yolo txt框看看对不对

文章目录 windows安装环境打开labelme自动保存勾选上&#xff0c;保存图片数据不要勾选选SAM精准模型&#xff0c;然后打开图片路径&#xff0c;然后点击创建AI多边形&#xff1a;鼠标点击确认物体控制点&#xff0c;确认完成后&#xff0c;双击鼠标完成选取&#xff0c;并给上…

利用OpenShift的ImageStream部署临时版本

公司是港企&#xff0c;项目都部署在OpenShift上统一管理&#xff0c;因为运行环境为香港网络(外网)&#xff0c;配置、中间件等大陆无法直接访问联通。因此在大陆开发时&#xff0c;测试是个很大的问题。为了避免往Git上频繁提交未确定可用的版本&#xff0c;选择用利用OpenSh…

知识付费系统方面的源码,如何提高培训成果转化的可能性?重心应放在哪?

培训成果转化对于一个教育机构来说是非常关键的&#xff0c;因为不管是学员的成果还是员工的培训&#xff0c;它的目的性都非常的关键&#xff0c;但是如何提高成果转化的可能性?这个在很大程度上来说&#xff0c;可能大家还存有疑问。 一、提高培训成果转化的可能性 成人学习…

嵌入式学习70-复习(wireshark使用和http协议)

--------------------------------------------------------------------------------------------------------------------------------- wireshark 1.sudo wireshark 2.选择 any &#xff0c; 3.搜索 http/tcp 54 为 发送的数据包 58 回复的数据包 请求报文 请求报文…

【NLP练习】使用seq2seq实现文本翻译

使用seq2seq实现文本翻译 &#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 from __future__ import unicode_literals, print_function, division from io import open import unicodedata import string impo…