当前位置: 首页 > news >正文

数据库(MySQL)基础

一、登录数据库

在linux系统中登录数据库的指令

mysql -h 127.48.0.236 -P 3306 -u root -p
  • -h:填写IP地址,指明要连接的主机。如果不加该字段表示本地主机
  • -P:填写端口号,指明进程。 如果不加该字段会使用默认的端口号。
  • -u:指明要以什么用户的身份登录。
  • -p:表示密码,可在后面直接加密码,也可以不加,回车后会弹出密码的填写。

quit指令退出数据库。

免密码配置

vim打开配置文件/etc/my.cnf,加入以下选项:

skip-grant-tables

然后重启服务器才能生效,即:

systemctl restart mysqld

虽然做了免密码配置,但在登录时依旧会弹出密码填写框,我们直接回车就行。 

二、数据库的理解

数据库服务分为客户端和服务端,分别是mysql和mysqld。

  • mysql本质:基于CS(client,server)模式的网络服务,是一种提供数据存取功能的网络服务。

        数据库一般指在磁盘或者内存中特定结构组织的数据库方案。文件也是用来存储数据,为什么不用文件呢?

主要在于这几点:

  • 文件存在安全性问题。
  • 文件不利于数据查询和管理。
  • 文件不利于存储海量数据。
  • 文件在程序中控制不方便。

        而数据库提供一些管理方案,对数据处理时我们直接调用对应的接口就行,不用程序员逐一去处理。

三、MySQL的表现形式

1.登录数据库

2.展示库

show databases;

 3.建库

create databases 库名; 

打开配置文件/etc/my.cnf可以查看数据被保存在那个目录下:

如:datadir=/var/lib/mysql 选项。我们查找/var/lib/mysql目录下的文件:

可以发现多了一个test目录,所以可以知道

  • 库的本质:目录。

接下来我们创建表结构:

查看/var/lib/mysql/test的变化: 

我们发现新增了一些文件。

  • 表的本质:对应库目录下的一个普通文件。 

数据库本质就是文件,只不过由数据库服务帮我们管理。

主流的数据库

  • SQL Sever: 微软的产品,.Net程序员的最爱,中大型项目。
  • Oracle: 甲骨文产品,适合大型项目,复杂的业务逻辑,并发一般来说不如MySQL。
  • MySQL:世界上最受欢迎的数据库,属于甲骨文,并发性好,不适合做复杂的业务。主要用在电商,SNS,论坛。对简单的SQL处理效果好。
  • PostgreSQL :加州大学伯克利分校计算机系开发的关系型数据库,不管是私用,商用,还是学术研究使用,可以免费使用,修改和分发。
  • SQLite: 是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。
  • H2: 是一个用Java开发的嵌入式数据库,它本身只是一个类库,可以直接嵌入到应用项目中。

服务器、数据库、表之间的关系:

四、MySQL架构

MySQL构架分为三层:

  • 第一层:连接池。主要做连接管理,权限管理,安全管理等。
  • 第二层:主要做client指令分析,即解析器、优化器、缓存等。
  • 第三层:存储引擎(类似操作系统的驱动程序),直接与操作系统打交道。使用show engines指令可查看,如下:

五、语句分类

  • DDL【data definition language】 数据定义语言,用来维护存储数据的结构,代表指令: create, drop, alter。
  • DML【data manipulation language】 数据操纵语言,用来对数据进行操作,代表指令: insert,delete,update。
  • DML中又单独分了一个DQL,数据查询语言,代表指令: select。
  • DCL【Data Control Language】 数据控制语言,主要负责权限管理和事务,代表指令: grant,revoke,commit。

 

 

相关文章:

  • 【AI提示词】费曼学习法导师
  • 【时时三省】(C语言基础)怎样定义和引用二维数组
  • 开平机:卷材高效成板的核心装备
  • 无需标记点,精准面部捕捉!无线面捕头盔赋予自由表演空间
  • Java大师成长计划之第15天:Java线程基础
  • 3.5/Q1,GBD数据库最新文章解读
  • ubuntu24.04安装anaconda
  • Spring Boot + Vue 实现在线视频教育平台
  • Spring Boot 3 + Undertow 服务器优化配置
  • modbus 帧信息格式
  • Linux/AndroidOS中进程间的通信线程间的同步 - 消息队列
  • [数据库之十一] 数据库索引之联合索引
  • 主备Smart Link + Monitor Link组网技术详细配置
  • java实战(第六篇):统计投票信息
  • C++ STL 入门:map 键值对容器
  • 手写Promise的静态方法
  • 2024年 AI大模型我该买一张什么显卡?
  • 【行业深度解析】什么是马甲包?
  • 责任链设计模式
  • vue3的深入组件-组件 v-model
  • 美众议院通过法案将“墨西哥湾”更名为“美国湾”
  • 保证断电、碰撞等事故中车门系统能够开启!汽车车门把手将迎来强制性国家标准
  • 追光|铁皮房、土操场,这有一座“筑梦”摔跤馆
  • 马克思主义理论研究教学名师系列访谈|曾瑞明:想通了才可能认准,认准了才能做好
  • 两部门发布外汇领域行刑反向衔接案例,织密金融安全“防护网”
  • 诺和诺德一季度减重版司美格鲁肽收入增83%,美国市场竞争激烈下调全年业绩预期