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

Linux 第三阶段课程:数据库基础与 SQL 应用

数据库定义
数据库是按一定规则存储数据的仓库,可存储海量数据(百万级至亿级),数据来源包括文本、图像、音视频等多种形式,如出行记录、消费数据等。

数据库分类
关系型数据库:基于二维表格模型(关系模型)的结构化数据库,如 Oracle、MySQL、SQL Server 等。
非关系型数据库(NoSQL):非结构化数据库,涵盖键值对、文档型等多种类型,如 MongoDB、Redis 等。
代表产品
关系型:Oracle、MySQL、PostgreSQL、SQLite 等。
非关系型:MongoDB(文档型)、Redis(键值对)、Cassandra(列存储)。

二、MySQL 数据库

核心特点

开源免费,支持大规模数据(千万级记录)。
多线程设计,充分利用 CPU 资源,跨平台(Windows/Linux/Mac)。
支持多种存储引擎(如 MyISAM、InnoDB),适配不同场景。
支持多语言编码(GB2312、UTF-8 等),提供多语言 API 接口。

版本体系
主要版本包括 5.5、5.6、5.7、8.0,版本号后缀如 Alpha(测试版)、GA(稳定版)。

安装方式

RPM 包安装:适用于 Linux 系统,通过官网下载 rpm 包,执行rpm -ivh命令安装依赖组件(common/libs/client/server)。
源码包安装:需编译源码,配置参数如安装路径(-DCMAKE_INSTALL_PREFIX)、数据目录(-DMYSQL_DATADIR),通过make和make install完成安装。

初始化与配置
使用my.cnf配置文件指定参数,如:

bash
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql  # 安装目录  
-DMYSQL_DATADIR=/usr/local/mysql/data    # 数据目录  

初始化命令:

bash
bin/mysqld --defaults-file=/usr/local/mysql/etc/my.cnf --initialize --user=mysql  

数据存储流程
步骤:创建数据库 → 定义字段类型(如 int、char、date)→ 创建数据表 → 插入数据。
示例命令:

sql
create database db_name;          -- 创建数据库  
create table tb_name (id int);    -- 创建数据表  
insert into tb_name values (1);   -- 插入数据  

三、SQL 语句基础

使用数据库前的操作

密码获取:RPM 安装密码存于/var/log/mysqld.log,源码安装存于自定义日志路径。
登录数据库:mysql -u 用户名 -p 密码。
修改密码:set password=password('新密码');
常用命令:

sql
show databases;   -- 查看所有数据库  
use db_name;      -- 切换数据库  
show tables;      -- 查看当前数据库表  

SQL 语句分类
DDL(数据定义语言):用于管理表格结构,包括创建(CREATE)、修改(ALTER)、删除(DROP)。
示例:

sql
create database test;    -- 创建数据库  
drop table tb_name;      -- 删除数据表  

DML(数据操作语言):用于管理数据,包括插入(INSERT)、删除(DELETE)、更新(UPDATE)、查询(SELECT)。
示例:

sql
insert into tb_name values (1), (2);  -- 插入多条数据  
delete from tb_name where id=1;      -- 删除指定数据  
select * from tb_name;               -- 查询所有数据 
DCL(数据控制语言):管理权限(如 GRANT、REVOKE)。
DTL(事务控制语言):管理事务(如 START TRANSACTION、COMMIT)。

四、总结

本阶段课程围绕数据库基础展开,重点介绍了关系型数据库与非关系型数据库的区别、MySQL 的特性与安装流程,以及 SQL 语句的核心用法。通过理论与实操结合,掌握数据库的基本管理和数据操作技能,为后续深入学习数据库优化、复杂查询等内容奠定基础。

http://www.lryc.cn/news/2395538.html

相关文章:

  • 计算机网络之路由表更新
  • 万兴PDF手机版
  • Qt -使用OpenCV得到SDF
  • Python 中Vector类的格式化实现,重点拆解其超球面坐标系的设计精髓
  • DDR5 ECC详细原理介绍与基于协议讲解
  • Linux系统之gettext详解
  • 基于Qt封装数据库基本增删改查操作,支持多线程,并实现SQLite数据库单例访问
  • EC800X QuecDuino开发板介绍
  • ARM P15协处理器指令详解:架构、编程与应用实践
  • PHP轻量级聊天室源码(源码下载)
  • MySQL数据表添加字段(三种方式)
  • leetcode hot100刷题日记——33.二叉树的层序遍历
  • 2、PyTorch基础教程:从张量到神经网络训练
  • 《数据结构初阶》【番外篇:快速排序的前世今生】
  • 【笔记】基于 MSYS2(MINGW64)的 Poetry 虚拟环境创建指南
  • PINNs案例——二维磁场计算
  • Hive SQL 中 BY 系列关键字全解析:从排序、分发到分组的核心用法
  • 数据类型检测有哪些方式?
  • 算法打开13天
  • Freeqwq 世界首个免费无限制 分布式 AI 算力平台 https://qwq.aigpu.cn/
  • 广告拦截器:全方位拦截,畅享无广告体验
  • .net Avalonia应用程序生命周期
  • 主数据编码体系全景解析:从基础到高级的编码策略全指南
  • Selenium操作指南(全)
  • Go语言中的数据类型转换
  • 35、请求处理-【源码分析】-自定义参数绑定原理
  • 智绅科技——科技赋能健康养老,构建智慧晚年新生态
  • STM32通过KEIL pack包轻松移植LVGL,并学会使用GUI guider
  • day43 python Grad-CAM
  • 在 Ubuntu 上挂载其他硬盘的步骤