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

数据库(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。

 

http://www.xdnf.cn/news/4931.html

相关文章:

  • 【Python】Python项目中的依赖与配置:requirements.txt、setup.py、pyproject.toml 详解
  • git cola如何选择指定的多个commit同时合并到另外一个分支上
  • vscode与keil的乱码不兼容问题
  • 3.2.3 掌握RDD转换算子 - 3. 扁平映射算子 - flatMap()
  • matlab稳定求解高精度二维对流扩散方程
  • ​​​​​​​MySQL数据库故障排查指南
  • springboot+vue实现在线网盘(云盘)系统
  • Open CASCADE学习|Geom2d_Curve类
  • c语言if else语句格式(非常详细)
  • 管道符_+xargs拓展参数传递操作,以及find指令
  • 真相与幻象的博弈:AI“幻觉”的生成密码与治理革命
  • 稀疏数组在组合优化中的典型应用场景
  • 数据透视表控件DHTMLX Pivot v2.1发布,新增HTML 模板、增强样式等多个功能
  • 快速上手知识图谱开源库AmpliGraph教程指南(二)
  • 深入探索 JavaScript 中的模块对象
  • 算法中的数学:约数
  • 【嵌入式开发-xxxxx】
  • 基于51单片机的步进电机控制系统—正/反转、加/减速
  • HarmonyOS-hdc远程网络方式连接设备
  • PVP鼠标推荐(deepseek)
  • leetcode 242. Valid Anagram
  • 技术视界 | 青龙机器人训练地形详解(三):复杂地形精讲之台阶
  • cpp自学 day24(STL初步认识)
  • 73页最佳实践PPT《DeepSeek自学手册-从理论模型训练到实践模型应用》
  • 自研MCU芯片闪存驱动的实现:OpenOCD详细过程记录与操作指南
  • 2.1 点云数据存储格式——引言
  • 正则表达式实用指南:原理、场景、优化与引擎对比
  • 【LangChain基础系列】深入全面掌握文本加载器
  • PH热榜 | 2025-05-08
  • 安防多协议接入/视频汇聚平台EasyCVR助力工地/工程/建筑施工领域搭建视频远程监控系统