『MySQL快速上手』-②-数据库基础

news2024/12/23 18:03:03

文章目录

  • 1.什么是数据库
  • 2.MySQL的基本使用
    • 2.1 MySQL的安装
    • 2.2 连接MySQL服务器
    • 2.3 服务器、数据库与表的关系
    • 2.4 使用案例
  • 3.SQL语句分类
  • 4.存储引擎
    • 4.1 什么是存储引擎
    • 4.2 查看存储引擎

在这里插入图片描述

1.什么是数据库

存储数据用文件就可以了,为什么还要弄个数据库?文件保存数据有以下几个缺点

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

为了解决上述问题,专家们设计出更加利于管理数据的东西——数据库,它能更有效的管理数据。数据库的水平是衡量一个程序员水平的重要指标

数据库是一种用于存储、管理和检索数据的有组织的数据集合。它是一个电子化的信息存储系统,用于存储各种类型的数据,如文本、数字、图像、音频等。数据库系统的目的是为了有效地管理和维护数据,以便用户可以方便地访问和操作这些数据。

以下列举了一些现在主流的数据库:

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

而本系列文章所讲述的是MySQL数据库。

2.MySQL的基本使用

2.1 MySQL的安装

  • 『MySQL快速上手』-①-Centos 7安装MySQL详解;

2.2 连接MySQL服务器

$ mysql -h 127.0.0.1 -P 3306 -u root -p
  • 注意,此处的-h 127.0.0.1省略不写的话默认是本地连接
  • -P 3306省略不写的话默认是连接3306端口;
  • 输入你的密码,如果配置免密码登入则无需输入直接回车;

在这里插入图片描述

2.3 服务器、数据库与表的关系

所谓安装数据库服务器,只是在机器上安装了一个数据库管理系统程序,这个管理程序可以管理多个数据库,一般开发人员会针对每一个应用创建一个数据库

为保存应用中实体的数据,一般会在数据库中创建多个表,以保存程序中实体的数据。

数据库服务器、数据库和表的关系如下:

在这里插入图片描述

2.4 使用案例

接下来,简单演示一下数据库的使用,其中相关的语法会在后续的章节中讲到。

  • 创建数据库,命名为db1
create database db1
  • 使用数据库;
use db1;
  • 创建数据库表,命名为student
create table student(
    -> id int,
    -> name varchar(32),
    -> gender varchar(2)
    -> );
  • 表中插入数据;
insert into student (id,name,gender) values (1,'张三','男');
insert into student (id,name,gender) values (2,'李四','男');
insert into student (id,name,gender) values (3,'王五','女');
  • 查询表中的数据;
select * from student;

在这里插入图片描述

3.SQL语句分类

SQL(结构化查询语言)是用于与关系型数据库系统进行交互的标准查询语言。SQL语句可以分为以下几个主要类别:

  1. 数据查询语句

    • SELECT:用于从数据库中检索数据。您可以指定要检索的表、列、筛选条件和排序方式。
    • FROM:指定要从中检索数据的表。
    • WHERE:用于筛选符合特定条件的行。
    • GROUP BY:用于将数据按特定列进行分组聚合。
    • HAVING:筛选GROUP BY分组后的数据。
    • ORDER BY:用于对检索结果进行排序。
  2. 数据操作语句

    • INSERT INTO:用于向数据库表中插入新的数据行。
    • UPDATE:用于更新数据库表中现有的数据。
    • DELETE:用于从数据库表中删除数据行。
  3. 数据定义语句

    • CREATE TABLE:用于创建新的数据库表。
    • ALTER TABLE:用于修改数据库表的结构,如添加、删除或修改列。
    • DROP TABLE:用于删除数据库表。
    • CREATE INDEX:用于创建索引以提高查询性能。
  4. 事务控制语句

    • COMMIT:用于提交事务,将更改保存到数据库。
    • ROLLBACK:用于回滚事务,取消尚未提交的更改。
    • SAVEPOINT:用于在事务中创建保存点,以便在需要时回滚到特定点。
  5. 数据控制语句

    • GRANT:用于授予用户或角色对数据库对象的特定权限。
    • REVOKE:用于撤销已授予的权限。
    • CREATE USER:用于创建新的数据库用户。
    • ALTER USER:用于修改数据库用户的属性。
  6. 视图操作语句

    • CREATE VIEW:用于创建数据库中的视图。
    • ALTER VIEW:用于修改现有的视图。
    • DROP VIEW:用于删除视图。
  7. 事务控制语句

    • BEGIN TRANSACTION(或 BEGIN WORK):用于启动事务。
    • COMMIT:用于提交事务,将更改保存到数据库。
    • ROLLBACK:用于回滚事务,取消尚未提交的更改。

这些是SQL语句的一些主要类别,每个类别都用于执行不同类型的数据库操作。SQL是用于管理和操作关系型数据库的强大工具,允许用户执行各种任务,从数据检索和更新到数据库模式的管理。

4.存储引擎

4.1 什么是存储引擎

数据库的存储引擎是数据库管理系统 (DBMS) 中的一个组件,负责管理数据的存储、检索和操作不同的数据库管理系统支持不同的存储引擎,每个存储引擎都具有其独特的特性、性能特点和适用场景。存储引擎定义了如何在磁盘上存储数据、如何进行索引、如何处理事务以及如何执行查询等数据库操作。

一些常见的数据库存储引擎包括:

  1. InnoDB:InnoDB是MySQL数据库系统的一种常用存储引擎。它支持事务处理(ACID兼容)、外键约束、行级锁、并发控制等特性,适合于需要高度可靠性和事务支持的应用。

  2. MyISAM:MyISAM也是MySQL的存储引擎,它主要用于非事务性应用,如数据仓库、日志分析等。它不支持事务,但具有较快的读取性能和全文搜索功能。

  3. PostgreSQL的默认存储引擎:PostgreSQL支持多种存储引擎,但其默认存储引擎是类似于InnoDB的具有事务支持的存储引擎。

  4. SQLite:SQLite是一种嵌入式数据库引擎,常用于移动应用和嵌入式系统。它以小巧、轻量和零配置而著称。

  5. Oracle数据库的表空间:Oracle数据库使用表空间来组织和管理数据,每个表空间可以使用不同的存储引擎,如本地文件系统、ASM(Automatic Storage Management)等。

  6. Microsoft SQL Server的存储引擎:SQL Server支持多种存储引擎,包括In-Memory OLTP、Columnstore、以及传统的B-tree存储引擎。

选择合适的存储引擎对于数据库应用程序的性能和功能至关重要。不同的存储引擎适用于不同的使用场景,根据应用程序的需求来选择存储引擎可以提供最佳性能和可靠性。数据库管理员和开发人员通常需要考虑数据一致性、并发性能、事务支持、数据完整性和查询性能等因素来选择适当的存储引擎。

4.2 查看存储引擎

show engines;

在这里插入图片描述
在这里插入图片描述

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

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

相关文章

批量剪辑神器,专业又好用,支持一站式AI脚本创作、批量剪辑、矩阵分发……

越来越多短视频领域的小伙伴都用上了超级编导批量剪辑这款软件,这也是小编今天要推广给大家的一款批量剪辑工具。 超级编导问世两年多,吸取了同类软件的优点、并结合市场环境、用户反馈,弥补了其他软件的不足,能够一站式完成AI脚…

重写abp框架UserManager类

背景:用过abp框架的应该都知道,abp框架会封装一些成熟的类方法提供给使用者来使用,用来操作 一些内置的实体类(类中一些字段设置为了protected internal),比如IdentityUser、IdentityRole等。但是这些封装的…

那些误导消费者的PoE交换机,你知道多少?

PoE交换机是一种具备供电功能的交换机,广泛运用于安保监控和无线覆盖领域,有效避免了对摄像头和无线AP进行繁琐的电源布线。通常来说,对于规模较大的无线覆盖和网络监控项目,大多数人会选择使用支持PoE的交换机。 自PoE供电技术问…

必看!2023年最新MSP开源应用程序指南电子书大揭秘

开源工具有利于节省成本、更好的技术和灵活性已经成为业界的共识。 在理想的世界中,我们用于工作的一切都可以是基于开源的。 但是在生产关键服务的实施和管理中,工程师和业务决策者必须有更好的决策方法来确定哪些工具可以适用于每个需求。 这并不表示…

A. Hit the Lottery

#include<bits/stdc.h> using namespace std; const int N1e55; int n,a[N],res; int main(){scanf("%d",&n);int an/100;n%100;int bn/20;n%20;int cn/10;n%10;int dn/5;n%5;int en;cout<<abcde;return 0; }

APISpace 手机号码归属地API接口案例代码

1.手机号码归属地API产品介绍 APISpace 的 手机号码归属地API&#xff0c;提供全国移动、联通、电信等手机号码归属地查询&#xff0c;上亿条数据囊括最新的170、166、147等号段&#xff0c;更新及时、准确度高。 2.手机号码归属地API详解 2.1 接口请求 请求方式&#xff1a…

知行电子口岸EDI端口介绍

电子口岸或者其他物流企业需要确保能够生成和解析符合交通部要求的EDI数据格式。这可能需要进行一些EDI数据映射工作&#xff0c;以确保数据的正确传输和处理。为了支持此需求&#xff0c;我们的开发人员将这些功能模块集成在电子口岸端口中&#xff0c;这个端口的主要功能是将…

建立TCP连接后发送窗口, 接收窗口, 拥塞窗口的变化情况

参数设置 最大段长MSS1KB, 拥塞窗口初始阈值为32KB, 接收窗口为20KB 变化如下

Unreal UnLua + Lua Protobuf

Unreal UnLua Lua Protobuf https://protobuf.dev/ protobuf wire format&#xff1a;pb 编译到底层的数据协议 https://github.com/starwing/lua-protobuf/blob/master/README.zh.md buffer 处理 lua string 可以当 buffer 用&#xff0c;# len 不会遇到 0 截断&#xf…

【今天放个大招,带你手把手搭建 Jenkins 的分布式构建】

UI 自动化测试代码写完了以后&#xff0c;会放到 Jenkins 这样的持续集成工具上去构建。 如果 Jenkins 平台是搭建在服务器上&#xff0c;会面临 2 个问题&#xff1a; 第一个问题是 UI 自动化测试需要渲染界面&#xff0c;需要消耗大量的 CPU 和内存资源&#xff0c;如果服务器…

埃隆·马斯克的 AI 聊天机器人 Grok 已经上线

昨天&#xff0c;埃隆马斯克 (Elon Musk) 通过他的公司 xAI 推出了一款名为 Grok 的新型人工智能聊天机器人。这款新的聊天机器人将通过 Twitter 更新实时获取世界知识&#xff0c;使其成为最新的对话 AI 系统。 Grok 的独特和基本优势在于它可以通过 &#x1d54f; 平台实时了…

如何在 Vue.js 中引入原子设计?

前言 原子设计是一种创建设计系统的方法&#xff0c;它将用户界面分解为可重用的小组件&#xff0c;即&#xff1a; Atoms 原子Molecules 分子Organisms 生物体Templates 模板Pages 页面 通过遵循模块化设计方法&#xff0c;原子设计可帮助团队创建一致、可缩放且可维护的 …

10-27 maven概念

maven maven的概念模型: 项目对象模型(POM: Project object Model)&#xff0c;一组标准集合: pom.xml 依赖管理系统(Dependency Management System) 项目生命周期(Project Lifecycle) 项目对象模型&#xff1a; 把项目当成一个对象&#xff0c;描述这个项目&#xff0c;使用p…

[CISCN 2023 初赛]go_session

文章目录 考点代码审计main.goroute.goIndex函数Admin函数Flask函数 解题过程伪造session获取server.py构造payload覆盖server.py命令执行 考点 session伪造&#xff0c;pongo2模板注入&#xff0c;debug模式覆盖源文件 代码审计 main.go package mainimport ("github.c…

解决:ImportError: cannot import name ‘get_config‘

解决&#xff1a;ImportError: cannot import name ‘get_config’ 背景 今天使用Conda构建项目运行环境的时候报错&#xff1a;ImportError: cannot import name ‘get_config’ ##报错问题 from keras.callbacks import LearningRateScheduler, ModelCheckpointFile "D…

计算机毕设 基于大数据的高校校园学生一卡通数据分析

文章目录 0 项目简介任务 1数据导入与预处理任务 1.1 探查数据质量并进行缺失值和异常值处理1.1.2检查重复值1.1.3数据内容总览1.1.4数据分布总览1.1.5消费金额和消费次数观察消费金额和消费次数的散点图1.1.6观察 CardCount 特征的分布情况 任务2 食堂就餐行为分析任务 2.2 食…

1.IntelliJ-IDEA修改CobaltStrike

IntelliJ-IDEA修改CobaltStrike 前期准备一、创建一个新项目二、创建一个lib目录三、重构代码四、运行效果 免责声明&#xff1a;请勿利用文章内的相关技术从事非法测试&#xff0c;由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失&#xff0c;均…

奔驰E Coupe 升级鼠标按键 操作简单 完美结合

人机交互系统正是汽车智能化发展的产物&#xff0c;它实现了人与车之间的互联。不知道大家有没有发现&#xff0c;在很多奔驰车的中央扶手箱前&#xff0c;有一块类似于“鼠标”的操作区&#xff0c;它并不是我们常见的换挡杆&#xff0c;而是奔驰研发的独立影音控制系统COMAND…

监控actuator配置以及踩坑记录

以前这个监控都是领导去加&#xff0c;我顶多去修改一些时间参数&#xff0c;让我自己加还是头一次 正经踩了不少坑啊 1.依赖引入 先说配置过程 不对 先说我们项目结构 我们有一个common项目&#xff0c;作为一个公共项目。各种项目公用的依赖&#xff0c;都配置在common中…

Cassandra介绍(二)

1.8. 数据 存储 &#xff08; CommitLog、MemTable、SSTable &#xff09; 写请求分别到 CommitLog 和 MemTable, 并且 MemTable 的数据会刷写到磁盘 SSTable 上. 除 了写数据,还有索引也会保存到磁盘上. 先将数据写到磁盘中的 commitlog&#xff0c;同时追加到中内存中的数据…