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

宁远做网站msoerseo推广哪家公司好

宁远做网站msoer,seo推广哪家公司好,什么软件可以发布广告信息,企业营销型网站设计目录 1. 数据库的概念 1.1 数据库的存储介质 1.2 主流数据库 2. MySQL的基本使用 2.1 链接数据库 2.2 服务器管理 2.3 数据库,服务器和表关系 2.4 简单MySQL语句 3. MySQL架构 4. SQL分类 5. 存储引擎 本篇完。 1. 数据库的概念 数据库是按照数据结构来…

目录

1. 数据库的概念

1.1 数据库的存储介质

1.2 主流数据库

2. MySQL的基本使用

2.1 链接数据库

2.2 服务器管理

2.3 数据库,服务器和表关系

2.4 简单MySQL语句

3. MySQL架构

4. SQL分类

5. 存储引擎

本篇完。


1. 数据库的概念

        数据库是按照数据结构来组织、存储和管理数据的仓库,是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。

数据库的水平是衡量一个程序员水平的重要指标

虽然使用文件也可以存储数据,但会存在如下缺点:

  • 安全性问题:数据误操作后无法进行回滚。
  • 不利于数据的查询和管理:没有将存储的数据以某种数据结构组织起来。
  • 控制不方便:数据的控制需要用户自己来完成。
  • 不利于存储海量数据:数据量越大用户操控数据的成本越高。

为了解决上述问题,于是专家们设计出了更利于管理数据的数据库。

        数据库是分为数据库服务器和数据库客户端的,以MySQL数据库为例,我们使用MySQL数据库时会先通过MySQL命令连接MySQL服务器。

        MySQL服务器本质是一个网络服务器,我们使用mysql命令连接MySQL服务器时,本质就是MySQL客户端在向MySQL服务器发起连接请求,连接建立成功后MySQL客户端就会将用户输入的SQL语句发送给MySQL服务器,之后MySQL服务器就会根据SQL语句对数据进行对应的操作。


1.1 数据库的存储介质

数据库的存储介质有以下两种:

  • 磁盘,比如MySQL就是一种磁盘数据库。
  • 内存,比如redis就是一种内存数据库。

        数据库按存储介质可以分为磁盘数据库和内存数据库,其中内存数据库又称为主存数据库(Main Memory Database)。
        磁盘数据库的数据主要存储在磁盘上,因此磁盘数据库在数据的持久化保存上有明显优势。但磁盘数据库为了提高数据的存储效率,也有自己对应的缓存机制,因此在某一个时刻之内,不一定所有数据都会被刷新到磁盘上。
        内存数据库的数据主要存储在内存中,与磁盘数据库相比,内存数据库可以大大提高读取速度,减少数据库的访问时间。但内存数据库并非完全不使用磁盘,数据库的启动信息、初始数据等还是需要存储在磁盘上的,只是数据主要在内存中进行存储和运算。
        由于内存数据库的数据存储在内存中,数据库主机掉电后数据就会丢失,因此在数据库服务关闭前通常需要把内存中的数据转储到磁盘上,甚至在内存数据库运行期间,一些数据也会持久化到磁盘存储。

1.2 主流数据库

列举几个主流的数据库:

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

MySQL是世界上最受欢迎的数据库,所以这里学习的也是MySQL。


2. MySQL的基本使用

2.1 链接数据库

安装好数据库之后在CentOS 7登录我们Linux的root用户,输出以下命令:

mysql -h 127.0.0.1 -P 3306 -u root -p

  • -h: 表示你要连接的MySQL服务器所在的主机,127.0.0.1表示本主机。
  • -P: 表示你要连接的MySQL服务器所对应的端口号,一般默认是3306。
  • -u: 表示用哪一个用户连接MySQL服务器,root表示超级用户。
  • -p: 表示该用户对应的密码,密码可以直接跟在-p后面,也可以回车后输入。

        输入密码后就能连接到MySQL服务器了,免密码的话回车即可。连接到MySQL服务器后,就可以输入各种SQL语句让服务器执行了,当要退出MySQL时直接输入quit或exit或\q即可。


2.2 服务器管理

通过systemctl stop mysqld命令或service mysqld stop命令可以停止MySQL服务器。

通过systemctl start mysqld命令或service mysqld start命令可以启动MySQL服务器。

通过systemctl restart mysqld命令或service mysqld restart命令可以重启MySQL服务器。

mysqld就是MySQL的服务器(mysql是服务端),使用mysql命令实际就是在连接mysqld服务器。


2.3 数据库,服务器和表关系

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

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

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

  • 图中的Client对应的就是mysql命令,MySQL对应的就是mysqld服务。
  • DB(database)表示的是mysqld管理的多个数据库,而每一个DB下会包含多张表。

        通过MySQL创建的数据库和各种表结构,最终会以文件的形式存储下来,通过查看MySQL的配置文件中的datadir可以得知数据文件的存储路径。

        比如我的MySQL配置文件的绝对路径为/etc/my.cnf,配置文件中datadir对应的值为/var/lib/mysql。输入vim /etc/my.cnf如下:

(中间小绿框那三行配置是我自己加上去的,大家也可以加上去然后:wq保存退出。第一行为端口号,可以修改,但此时已经设置成默认值3306。第二行是默认字符utf-8,第三行是存储引擎innodb)

        将来MySQL创建的数据库文件都会存储在该目录下,可以看到该目录下有很多MySQL相关的数据文件。先cd /var/lib/mysql 然后 ls:

        重新输入mysql -h 127.0.0.1 -P 3306 -u root -p连接MySQL服务器后,通过create语句创建一个名为helloworld的数据库。

2.4 简单MySQL语句

(下面简单使用一下MySQL语句演示一下数据库,服务器和表关系,后面还会讲解语句)

这时/var/lib/mysql目录下,就会多出一个名为helloworld的目录。如下:

(这里可以开两个窗口)

        目前helloworld目录下只有一个名为的db.opt的文件,该文件中指明了当前数据库的默认字符编码和字符校验规则。如下:

        因此我们创建数据库时,本质就是在MySQL的数据存储路径下新建了一个目录,而当我们将这个数据库删除后,这个目录其实也就不存在了。比如:

        此时在MySQL的数据存储路径下的helloworld目录也就不存在了,因此删除数据库本质就是删除数据存储路径下对应的目录。

        使用数据库之前,可以先通过show语句查看当前都有哪些数据库,然后再通过use语句使用指定的数据库。比如:

使用数据库可以理解成是使用cd命令进入到该数据库对应的目录当中。


对数据库表操作:

这里我们通过create语句创建一个简单的student表。比如:

通过show语句可以查看创建的student表结构:

        由于student表采用的存储引擎是InnoDB,因此在MySQL的数据存储路径下的helloworld目录下,就会多出两个文件,分别是student.frm和student.ibd。如下:

        其中student.frm是表结构文件,student.ibd是表数据和索引的文件。如果说创建数据库的本质是在数据存储路径下新建一个目录的话,那么创建表本质实际就是在特定的数据库目录下新建若干个文件(InnoDB存储引擎对应的是两个,MyISAM存储引擎对应的是三个),因此在创建表之前一定要先选择一个数据库。

通过desc语句可以查看对应的表结构:

通过insert语句可以向表中插入数据:

通过select语句可以查看表中的数据:

        表中的数据是以二维表格的形式进行呈现的,包括行和列。其中每一行我们称之为一条记录,而每一列都代表一个属性(属性列)。


3. MySQL架构

        MySQL是一个可移植的数据库,几乎能在当前所有的操作系统上运行,如Unix/Linux、Windows、Mac和Solaris。各种系统在底层实现方面各有不同,但是MySQL基本上能保证在各个平台上的物理体系结构的一致性。

MySQL的架构设计如下:

MySQL架构主要可分为如下四层:

  • 连接层:主要完成一些类似连接处理,授权认证及相关的安全方案。
  • 服务层:在MySQL数据库系统处理底层数据之前的所有工作都是在这一层完成的,包括权限判断、SQL接口、SQL解析、SQL分析优化、缓存查询的处理以及部分内置函数执行等。各个存储引擎提供的功能都集中在这一层,如存储过程、触发器、试图等。
  • 引擎层:由多种可拔插的存储引擎共同组成,真正负责MySQL中数据的存储和提取,每个存储引擎都有自己的优点和缺陷,服务层是通过存储引擎API来与它们交互的。
  • 存储层:将数据存储在裸设备的文件系统之上,完成存储引擎的交互。

MySQL服务器会收到MySQL客户端发来的SQL语句,并根据SQL语句执行对应的操作。

        这里的MySQL客户端不仅仅指的是连接MySQL时使用的mysql命令,MySQL客户端还包括语言接口客户端。

        MySQL给各种语言提供的用于访问数据库的接口,用户通过调用这些接口也可以向MySQL服务器发送SQL语句。

        mysql命令本质是一个可执行程序,通过file命令可以看到该可执行程序是采用动态链接的方式生成的,通过ldd命令可以看到该可执行程序依赖的C/C++库文件。如下:

        也就是说,mysql命令本身就是C/C++编写的,因此在编写mysql程序时,一定需要调用MySQL提供给C/C++的语言接口客户端。当然,MySQL不仅仅提供了C/C++对应的语言接口,像Python、Java、PHP等都有对应的MySQL接口。


4. SQL分类

SQL(Structured Query Language,结构化查询语言)是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。

SQL语句可分为如下三类:

  • DDL(Data Definition Language)数据定义语言,用来维护存储数据的结构。比如create语句、drop语句、alter语句等。
  • DML(Data Manipulation Language)数据操作语言,用来对数据进行操作。比如insert语句、delete语句、update语句等。
  • DCL(Data Control Language)数据控制语言,主要负责权限管理和事务。比如grant语句、revoke语句、commit语句。

注: DML中又单独分了一个DQL(Data Query Language)数据查询语言,比如select语句、from语句、where语句等。


5. 存储引擎

        存储引擎就是数据库管理系统如何存储数据、如何为存储的数据建立索引、如何更新数据、如何查询数据等技术的实现方法,MySQL中的存储引擎是插件式的存储引擎,它可以支持多种存储引擎。

通过show语句可以查看MySQL支持的存储引擎。比如:

其中MySQL底层默认使用的存储引擎是InnoDB,该存储引擎支持事务、行级锁、外键等。

各个存储引擎对比如下:


本篇完。

下一篇讲讲MySQL操作库的使用,增删查改等。

http://www.dinnco.com/news/78605.html

相关文章:

  • 农产品网站建设semicircle
  • 南山商城网站建设成都营销推广公司
  • 温州网站改版网页制作接单平台
  • 深圳wap网站建设竞价推广论坛
  • 门户网站和部门网站的区别盘古搜索
  • 北京网站设计公司hlh成都柚米科技15企业网络组网设计
  • 新疆生产建设兵团发改委网站百度网盘app下载安装官方免费版
  • 一般家庭装修照片快速优化工具
  • 网站大全免费完整版微信引流主动被加软件
  • 网站做seo多少钱百度域名购买
  • 网站建设业务员沟通需求seo推广代运营
  • 网站的动态文字是怎么做的沈阳专业seo排名优化公司
  • 网站正在建设中 文案石家庄seo关键词排名
  • 路灯东莞网站建设软文广告经典案例300
  • 整合营销推广策略seo网络优化日常工作内容
  • 随意设计一个网站百度百家官网入口
  • 制作商城公司360搜索优化
  • 厂西建设厅网站百度指数的主要功能有
  • 网站开发与设计的实训报告厦门seo公司
  • 政府网站源码网站首页的优化
  • 普陀网站制作海口seo快速排名优化
  • 最大网站建设公司排名2023年新闻热点事件摘抄
  • 全球做的比较好的网站整站优化报价
  • 网站用哪些系统做的好网店推广方法
  • 陕西城乡建设学校网站是真吗谷歌sem和seo区别
  • 广西网站建设产品优化策划品牌全案
  • 沈阳企业免费建站百度建站
  • 重庆网站seo外包seo入门课程
  • 企业网站建设联系方式小红书推广怎么收费
  • 网站建设的公司怎么样自己创建网站