数据库(DataBase,DB)
是一个长期存储在计算机内的、有组织的、有共享的、统一管理的数据集合。它是一个按数据结构来存储和管理数据的计算机软件系统。数据库包含两层含义:保管数据的“仓库”,以及数据管理的方法和技术。
数据库的发展大致划分为如下几个阶段:人工管理阶段、文件系统阶段、数据库系统阶段、高级数据库阶段。
数据库的特点是:实现数据共享,减少数据冗余;采用特定的数据类型;具有较高的数据独立性;具有统一的数据控制功能。
在关系数据库中,数据库表是一系列二维数组的集合,用来存储数据和操作数据的逻辑结构。它由纵向的列和横向的行组成。
行被称为记录,是组织数据的单位;
列被称为字段,每一列表示记录的一个属性,有相应的描述信息,如数据类型、数据宽度等。
数据类型决定了数据在计算机中的存储格式,代表不同的信息类型。常用的数据类型有整数数据类型、浮点数数据类型、精确小数类型、二进制数据类型、日期/时间数据类型、字符串数据类型。
主键(Primary Key)
又称主码,用于唯一的标识表中的每一条记录。可以定义表中的一列或多列为主键,主键列上既不能有两行相同的值,也不能为空值。
数据库系统由硬件部分和软件部分共同构成。硬件主要用于存储数据库中的数据,包括计算机、存储设备等。
软件部分主要包括DBMS、支持DBMS运行的操作系统,以及支持多种语言进行应用开发的访问技术等。
(1)数据定义语言(DDL)
:DROP
、CREATE
、ALTER
等语句。
(2)数据操作语言(DML)
:INSERT
(插入)、UPDATE
(修改)、DELETE
(删除)语句。
(3)数据查询语言(DQL)
:SELECT
语句。
(4)数据控制语言(DCL)
:GRANT
、REVOKE
、COMMIT
、ROLLBACK
等语句。
例如我们使用CREATE
来创建一个表;
CREATE TABLE YUNWEIJIA ( ID INT UNSIGNED, NAME VARCHAR ( 30 ), PRIMARY KEY ( ID ) );
以上命令的意思是说,创建一个名字叫YUNWEIJIA
的表,里面有两个字段,分别是ID
和NAME
,其中ID
是主键,NAME
的长度不能超过30;
下面我们在这个新建的表中插入一条数据;
INSERT INTO YUNWEIJIA ( ID, NAME )
VALUES
( '1', 'weixin' );
然后我们的数据库中就插入了一条数据;
再用SELECT
来查看下这个数据库中的内容;
SELECT ID, NAME FROM YUNWEIJIA WHERE ID = '1';
运行结果:
不同的程序设计语言会有各自不同的数据库访问接口,程序语言通过这些接口执行SQL
语句,进行数据库管理。主要的数据库访问接口有ODBC
、JDBC
、ADO.NET
和PDO
。
ODBC(Open Database Connectivity,开放数据库连接)
技术为访问不同的SQL
数据库提供了一个共同的接口。ODBC
使用SQL
作为访问数据的标准。这一接口提供了最大限度的互操作性:一个应用程序可以通过共同的一组代码访问不同的SQL
数据库管理系统(DBMS)
。
一个基于ODBC
的应用程序对数据库的操作不依赖任何DBMS
,不直接与DBMS
打交道,所有的数据库操作由对应的DBMS
的ODBC
驱动程序完成。也就是说,不论是Access
、MySQL
还是Oracle
数据库,均可用ODBC API
进行访问。由此可见,ODBC
的最大优点是能以统一的方式处理所有的数据库。
JDBC(Java Data Base Connectivity,Java数据库连接)
用于Java应用程序连接数据库的标准方法,是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,由一组用Java语言编写的类和接口组成。
ADO.NET
是微软在.NET
框架下开发设计的一组用于和数据源进行交互的面向对象类库。ADO.NET
提供了对关系数据、XML
和应用程序数据的访问,允许和不同类型的数据源以及数据库进行交互。
PDO(PHP Data Object)
为PHP
访问数据库定义了一个轻量级的、一致性的接口,提供了一个数据访问抽象层。这样,无论使用什么数据库,都可以通过一致的函数执行查询和获取数据。
数据库:用于存储数据的地方。
数据库管理系统:用于管理数据库的软件。
数据库管理系统:用于管理数据库的软件。
一个数据库可能包含许多文件,一个数据库系统中通常包含许多数据库。
是用户创建、管理和维护数据库时所使用的软件,位于用户与操作系统之间,对数据库进行统一管理。DBMS
能定义数据存储结构,提供数据的操作机制,维护数据库的安全性、完整性和可靠性。
数据库应用程序的使用可以满足对数据管理的更高要求,还可以使数据管理过程更加直观和友好。数据库应用程序负责与DBMS
进行通信,访问和管理DBMS
中存储的数据,允许用户插入、修改、删除DB中的数据。
MySQL
是一个小型关系数据库管理系统。与其他大型数据库管理系统(例如Oracle
、DB2
、SQL Server
等)相比,MySQL
规模小、功能有限,但是它体积小、速度快、成本低,并且提供的功能对稍微复杂的应用来说已经够用,这些特性使得MySQL
成为世界上最受欢迎的开放源代码数据库。
MySQL Community Server(社区版服务器)
:该版本完全免费,但是官方不提供技术支持。
MySQL Enterprise Server(企业版服务器)
:能够以很高的性价比为企业提供数据仓库应用,支持ACID事务
处理,提供完整的提交、回滚、崩溃恢复和行级锁定功能。但是该版本需付费使用,官方提供电话技术支持。
MySQL 8.0是最新开发的稳定(GA)发布系列,是将执行新功能的系列;
MySQL 8.0是比较稳定(GA)发布系列。只针对漏洞修复重新发布,没有增加会影响稳定性的新功能。
MySQL 5.7是前一稳定(产品质量)发布系列。只针对严重漏洞修复和安全修复重新发布,没有增加会影响该系列的重要功能。
速度:运行速度快。
价格:MySQL
对多数个人来说是免费的。
容易使用:与其他大型数据库的设置和管理相比,其复杂程度较低,易于学习。
可移植性:能够工作在众多不同的系统平台上,例如Windows
、Linux
、UNIX
、Mac OS
等。
丰富的接口:提供了用于C、C++、Eiffel、Java、Perl、PHP、Python、Ruby
和Tcl
等语言的API
。
支持查询语言:MySQL
可以利用标准SQL
语法和支持ODBC
的应用程序。
安全性和连接性:十分灵活和安全的权限和密码系统,允许基于主机的验证。连接到服务器时,所有的密码传输均采用加密形式,从而保证了密码安全。由于MySQL是网络化的,因此可以在因特网上的任何地方访问,提高数据共享的效率。
mysqld
:SQL
后台程序(MySQL
服务器进程)。必须在该程序运行之后,客户端才能通过连接服务器来访问数据库。
mysqld_safe
:服务器启动脚本。在UNIX
和NetWare
中推荐使用mysqld_safe
来启动mysqld
服务器。mysqld_safe
增加了一些安全特性,例如当出现错误时重启服务器并向错误日志文件写入运行时间信息。
mysql.server
:服务器启动脚本。该脚本用于使用包含为特定级别的、运行启动服务的脚本的、运行目录的系统。它调用mysqld_safe
来启动MySQL
服务器。
mysql_multi
:服务器启动脚本,可以启动或停止系统上安装的多个服务器。
myisamchk
:用来描述、检查、优化和维护MyISAM
表的实用工具。
mysqlbug
:MySQL
缺陷报告脚本。它可以用来向MySQL
邮件系统发送缺陷报告。
mysql_install_db
:该脚本用默认权限创建MySQL
授权表。通常只是在系统上首次安装MySQL
时执行一次。
myisampack
:压缩MyISAM
表,以产生更小的只读表的一个工具。
mysql
:交互式输入SQL
语句或从文件以批处理模式执行它们的命令行工具,也是我们最常用的工具。
mysqlaccess
:检查访问主机名、用户名和数据库组合的权限的脚本。
mysqladmin
:执行管理操作的客户程序,例如创建或删除数据库、重载授权表、将表刷新到硬盘上以及重新打开日志文件。mysqladmin
还可以用来检索版本、进程,以及服务器的状态信息。
mysqlbinlog
:从二进制日志读取语句的工具。在二进制日志文件中包含执行过的语句,可用来帮助系统从崩溃中恢复。
mysqlcheck
:检查、修复、分析以及优化表的表维护客户程序。
mysqldump
:将MySQL
数据库转储到一个文件(例如SQL
语句或tab
分隔符文本文件)的客户程序。
mysqlhotcopy
:当服务器在运行时,快速备份MyISAM
或ISAM
表的工具。
mysqlimport
:使用LOAD DATA INFILE
将文本文件导入相关表的客户程序。
mysqlshow
:显示数据库、表、列以及索引相关信息的客户程序。
perror
:显示系统或MySQL
错误代码含义的工具。
数据字典(用于存储有关数据库对象的信息)
原子数据定义语句(即使服务器在操作期间暂停,也会提交事务,并将适用的更改保留到数据字典、存储引擎和二进制日志,或者回滚事务)
安全和账户管理(8.0可以支持角色,管理员统一添加删除,不需要为每个用户都指定权限)
资源管理(支持资源组的创建和管理,并允许将服务器内运行的线程分配给特定的资源组)
InnoDB
增项功能
字符集支持(默认字符集已经更改latin1
为utf8mb4
。该utf8mb4
字符集有几个新的排序规则,其中包括utf8mb4_ja_0900_as_cs
)
增强JSON
功能
数据类型的支持
查询的优化
共用表表达式
窗口函数
统计直方图(利用直方图,用户可以对一张表的一列做数据分布的统计,特别是针对没有索引的字段。这可以帮助查询优化器找到更优的执行计划)
备份锁(新类型的备份锁在联机备份期间允许DML
,同时防止可能导致快照不一致的操作。新的备份锁由LOCK INSTANCE FOR BACKUP和UNLOCK INSTANCE
语法支持。管理员拥有BACKUP_ADMIN
权限才能使用这些语句。)
至此,本文结束。
更多内容请转至VX公众号 “运维家” ,获取最新文章。
------ “运维家” ------
------ “运维家” ------
------ “运维家” ------
系统运维工程师面试,运维工程师优秀员工提名词,tr运维工程师,特来电运维工程师工作日常,IT运维工程师高级;
智能制造运维工程师培训课程,远程办公的运维工程师,迈瑞医疗运维工程师工资待遇,后台运维工程师是做什么的;
风力运维工程师怎样,浪潮云运维工程师,医疗设备运维工程师证书样本,运维工程师男朋友,运维工程师暴躁。