前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >前端开发者需要了解的数据库知识

前端开发者需要了解的数据库知识

原创
作者头像
程序员法医
修改2023-10-18 12:18:22
4810
修改2023-10-18 12:18:22
举报
文章被收录于专栏:vue全家桶vue全家桶

对于前端开发者而言,数据库是一个全新的知识,它跟前端基本没什么关系,纯粹是后端领域的知识,而且数据库的水是非常深的,有一种职业叫数据库DBA,能成为一种职业,可想而知,里面包含的知识量是非常大的。那么对于我们前端开发者而言,数据库要不要学?答案是肯定的,但是我们只需要学平时能用到即可,不需要了解那么深,毕竟前端多多少少是需要了解一点后端知识的,所以数据库是绕不过的一个点。?

数据库的简介

? 这是数据库简介的思维导图,主要围绕数据库能干什么数据库类型数据库术语MySql数据库三方面展开

1. 数据库能干什么?

都叫数据库了,毋庸置疑,数据库肯定是用来存储数据的了,我们在写代码的时候,数据存在哪?是不是存在变量里面,那变量又存哪?变量是不是在内存里面,内存有两个特点,一个是存取速度很快,另一个是数据容易丢失,不能持久存取,只要电脑一重启或者程序一退,之前在内存的东西就没了??♂?。当我们发送Ajax请求的时候,可能会将用户的信息发送到服务器,这些信息就是持久化存储在数据库的,如果是小文件持久存储,也可以不用数据库,用json文件就行了,缺点就是如果数据量大了,很难管理。所以数据库可以帮助我们持久化的存储数据,在此基础上还可以自动备份和恢复数据,以免将来不会造成太大损失,数据库另一个优点就是可以快速的存取数据,最后一个就是权限控制,这点是针对开发者的,公司一般会给我们分配一个账号,这个账号可以获取数据库有限的操作权限。

? 其实数据库解决的问题用一句最本质的话来说:就是来适配内存和磁盘之间存储格式不一致

总结:

数据库能帮我们干什么?

  • 持久化的存储数据
  • 自动备份和恢复数据
  • 快速的存取数据
  • 权限控制

2. 数据库的类型

数据库的类型有三种,关系型数据库、非关系型数据库以及面向对象数据库,其中最重要的是前两种,接下来,我们就一次展开说说?

2.1 关系型数据库

关系型数据库的特点是以表和表的关联结构构成的数据库结构。什么意思呢?比如说我们新建了一个excel学生信息表格,年龄、家庭住址等我们可以做一个单独的表格出来,这几个表格一起组成了学生信息大表格。看图就明白了

关系型数据库可以表达复杂的数据关系,表与表之间是如何关联的,并且它还提供了一个强大的查询语言MySql,可以精确查找想要的数据。同样也是有缺点的,它的读写性能是比较差的,尤其是面对海量数据读写的时候,这主要是因为受限于内部的存储机构,跟非关系型数据库相比是比较差的,另一个缺点是它的数据结构比较死板,一旦定义了几列数据,就不能随意增加。

关系型数据库几个代表:

  • MySql 对于前端开发而言一般学习这个数据库,下面两个一般不会学的,
  • Sql Server 微软公司的
  • Oracle 甲骨文公司的

2.2 非关系型数据库

非关系型数据库相比关系型数据库而言学习成本是很低的,它的特点就是以极其简单的结构存储数据。非关系型数据库主要有四种数据存储类型:文档存储、键值对存储、基于列的数据库以及图形数据库。

优点:

  • 格式非常灵活,可以随时更改文档或者键值对的内容,不像表格的列是固定的
  • 海量的数据读写效率很高

缺点:

  • 难以表示复杂的数据结构
  • 对于复杂数据查询效率不好

用途:

基于以上的特点,我们一般用于存储结构非常简单的数据,比如说:“用户的访问记录,什么时间,访问了哪个页面”

非关系型数据库几个代表:

  • MongoDB
  • Redis
  • Membase

2.3 面向对象数据库

面向对象数据库就不说了,这是像java、c#面向对象的语言要把内存的对象原封不动的存到硬盘要做适配,我们用的比较少,但是用起来是非常方便的,这种一般是商业机构做的,要收费的

3、数据库术语

  • DB: database数据库,可以理解为一个Excel表
  • DBA: database administrator 数据库管理员,它是一个职业,专门管理数据库
  • DBMS: database management system 数据库管理系统,可以理解为是一个office软件,只要安装了office才能打开各种表
  • DBS: database system 数据库系统,这是一个很大的概念,DBS包含了DB、DBA、DBMS

MySql

1. MySql特点

  • 可靠性高:MySQL使用多个独立的存储引擎,每个存储引擎都具有不同的特点,用户可以根据实际需求选择不同的存储引擎,提高了数据库的可靠性。
  • 高性能:MySQL采用了多种高效的优化技术,如查询缓存、索引优化、分区等,可以提高数据库的性能。
  • 可扩展性强:MySQL支持集群、分布式等多种架构模式,可以根据用户的需求进行扩展,支持高并发、大数据量的存储和处理。
  • 具有优秀的安全性:MySQL支持多种认证方式,可以对数据库进行严密的保护,可以确保数据的安全性。
  • 开源免费:MySQL是一款完全开源的数据库软件,无需任何授权费用,吸引了大量的用户和开发者使用和开发。
  • 支持多种操作系统:MySQL支持多个操作系统例如:Windows、Linux、Mac OS等等 。
  • 支持多线程:MySQL支持多线程,可以充分的利用CPU资源。
  • 为多种编程语言提供API:MySQL为多种编程语言提供API,包括C语言,Java,PHP,Python语言等。
  • 优化SQL算法:MySQL优化了SQL算法,有效的提高了查询速度。
  • 提供用于管理和检查数据库的管理工具?:MySQL内提供了用于管理,检查以及优化数据库操作的管理工具。

2. 下载

安装就不说了哈?

MySQL对表的操作指南

表操作概述

  1. 创建表:创建表是指定义表的结构,包括表名、列名、数据类型等。在MySQL中,可以使用CREATE TABLE语句创建表。
  2. 修改表:修改表是指修改表的结构,包括添加列、修改列定义、删除列、重命名表等。在MySQL中,可以使用ALTER TABLE语句修改表。
  3. 删除表:删除表是指删除整个表及其数据。在MySQL中,可以使用DROP TABLE语句删除表。
  4. 查询表:查询表是指从表中获取符合特定条件的数据。在MySQL中,可以使用SELECT语句查询表。
  5. 插入数据:插入数据是指向表中插入新的数据记录。在MySQL中,可以使用INSERT INTO语句插入数据。
  6. 更新数据:更新数据是指修改表中已有的数据记录。在MySQL中,可以使用UPDATE语句更新数据。
  7. 删除数据:删除数据是指从表中删除符合特定条件的数据记录。在MySQL中,可以使用DELETE FROM语句删除数据。

具体操作

  1. 创建表

在MySQL中,可以使用CREATE TABLE语句创建表。语法如下:

代码语言:txt
复制
	CREATE TABLE table_name (  

	    column1 datatype,  

	    column2 datatype,  

	    column3 datatype,  

	    ...  

	);

其中,table_name为要创建的表的名称;column1、column2、column3等为表的列名;datatype为列的数据类型。例如,创建一个名为users的表,包含id、name和email三个字段:

代码语言:txt
复制
	CREATE TABLE users (  

	    id INT,  

	    name VARCHAR(50),  

	    email VARCHAR(100)  

	);
  1. 修改表

如果需要修改表的结构,可以使用ALTER TABLE语句。常见的修改包括添加列、修改列定义、删除列、重命名表等。下面是一些示例:

添加列:

代码语言:txt
复制
	ALTER TABLE table_name ADD column_name datatype;

修改列定义:

代码语言:txt
复制
	ALTER TABLE table_name MODIFY column_name new_datatype;

删除列:

代码语言:txt
复制
	ALTER TABLE table_name DROP COLUMN column_name;

重命名表:

代码语言:txt
复制
	ALTER TABLE table_name RENAME TO new_table_name;
  1. 删除表

如果需要删除整个表及其数据,可以使用DROP TABLE语句。语法如下:

代码语言:txt
复制
	DROP TABLE table_name;  
  1. 约束条件

约束条件用于保证表中数据的完整性和准确性。在MySQL中,我们可以使用如下约束条件:

  • PRIMARY KEY:主键约束,用于唯一标识每一行数据。
  • UNIQUE:唯一约束,保证列中的数据唯一。
  • NOT NULL:非空约束,限制列中的数据不能为空。
  • CHECK:检查约束,用于指定列中的数据范围或条件。
  • FOREIGN KEY:外键约束,用于与其他表建立关联。
  • 索引

索引是提高查询性能的重要手段。在MySQL中,我们可以使用"CREATE INDEX"语句来创建索引。下面是一些创建索引的基本语法:

  • 创建基于单列的索引:
代码语言:txt
复制
CREATE INDEX index_name ON table_name (column_name);
  • 创建基于多列的联合索引:
代码语言:txt
复制
CREATE INDEX index_name ON table_name (column1, column2, ...);

请注意,过多的索引会增加数据插入和更新的开销。

  1. 备份和恢复

为了保证数据的安全性,应该定期对数据库表进行备份。在MySQL中,可以使用"Mysqldump"工具来实现备份和恢复操作。下面是备份和恢复的基本命令:

  • 备份:
代码语言:txt
复制
mysqldump -u username -p database_name table_name > backup.sql
  • 恢复:
代码语言:txt
复制
mysql -u username -p database_name < backup.sql

表的查询

在MySQL中,可以使用SELECT语句查询表中的数据。SELECT语句的基本语法如下:

代码语言:txt
复制
	SELECT column1, column2, ... FROM table_name;

其中,column1、column2等为要查询的列名,用逗号分隔;table_name为要查询的表的名称。例如,查询users表中所有记录:

代码语言:txt
复制
	SELECT * FROM users;

上述语句中的星号(*)表示查询所有列。如果要查询特定列的数据,可以将星号替换为列名。例如,查询users表中的name和email列:

代码语言:txt
复制
	SELECT name, email FROM users;

条件查询

在实际应用中,经常需要根据特定条件筛选表中的数据。在MySQL中,可以使用WHERE子句实现条件查询。WHERE子句的基本语法如下:

代码语言:txt
复制
	SELECT column1, column2, ... FROM table_name WHERE condition;

其中,condition为筛选条件,可以使用比较运算符(如=、>、<)、逻辑运算符(如AND、OR)等。例如,查询users表中age大于等于18岁的用户:

代码语言:txt
复制
	SELECT * FROM users WHERE age >= 18;

排序查询

在MySQL中,可以使用ORDER BY子句对查询结果进行排序。ORDER BY子句的基本语法如下:

代码语言:txt
复制
	SELECT column1, column2, ... FROM table_name ORDER BY column_name ASC/DESC;

其中,column_name为要排序的列名;ASC表示升序排列,DESC表示降序排列。例如,查询users表中所有数据,并按age列降序排列:

代码语言:txt
复制
	SELECT * FROM users ORDER BY age DESC;

分页查询

当表中数据量较大时,可能需要分页展示查询结果。在MySQL中,可以使用LIMIT子句实现分页查询。LIMIT子句的基本语法如下:

代码语言:txt
复制
	SELECT column1, column2, ... FROM table_name LIMIT offset, count;

其中,offset为起始位置偏移量,表示从哪一行开始返回数据;count为返回数据的行数。例如,查询users表中第6至10条记录:

代码语言:txt
复制
	SELECT * FROM users LIMIT 5, 5;

聚合查询

在实际应用中,经常需要对表中的数据进行统计和分析。在MySQL中,可以使用聚合函数(如COUNT、SUM、AVG、MAX、MIN等)实现聚合查询。聚合函数的基本语法如下:

代码语言:txt
复制
	SELECT aggregate_function(column_name) FROM table_name WHERE condition;

其中,aggregate_function为聚合函数名;column_name为要进行聚合计算的列名。例如,查询users表中age列的平均值:

代码语言:txt
复制
	SELECT AVG(age) FROM users;

查询优化在实际应用中,为了提高查询效率,经常需要对查询语句进行优化。以下是一些常见的MySQL查询优化方法:

  • 建立索引:索引可以加快查询速度,对于经常用于查询的列可以考虑建立索引。使用EXPLAIN语句分析查询执行计划:EXPLAIN语句可以分析查询语句的执行计划,找出潜在的性能问题并进行优化。
  • 合理设计数据库结构:合理设计数据库结构可以减少查询的复杂度和提高查询效率。例如,可以将常用查询的字段放在同一张表中,避免跨表查询。
  • 数据类型选择:选择合适的数据类型可以提高查询效率和减少存储空间占用。例如,对于经常用于查询的字段可以使用整型或字符串类型,避免使用大文本类型。

以上就是今天的分享,希望对大家有所帮助?

我正在参与 腾讯云开发者社区数据库专题有奖征文

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 数据库的简介
    • 1. 数据库能干什么?
      • 2. 数据库的类型
        • 2.1 关系型数据库
        • 2.2 非关系型数据库
        • 2.3 面向对象数据库
      • 3、数据库术语
      • MySql
        • 1. MySql特点
          • 2. 下载
          • MySQL对表的操作指南
            • 表操作概述
              • 具体操作
                • 表的查询
                  • 条件查询
                  • 排序查询
                  • 分页查询
                  • 聚合查询
              相关产品与服务
              云数据库 MySQL
              腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
              http://www.vxiaotou.com