mysql01-初识MySQL
1、数据库基础
- 数据库由一批数据构成有序的集合,这些数据被存放在结构化的数据表里。
- 数据表之间相互关联,反映了客观事物间的本质联系。
- 数据库系统提供对数据的安全控制和完整性控制。
1、数据库
- 数据库的发展大致划分为如下几个阶段:
- 人工管理阶段
- 文件系统阶段
- 数据库系统阶段
- 高级数据库阶段
- 数据库种类大概有3种:
- 不同种类的数据库按不同的数据结构来联系和组织。
- 数据库(DataBase, DB)是一个长期在储在计算机内的、有组织的、有共享的、统一管理的数据集合。它是一个按数据结构来存储和管理数据的计算机软件系统,即数据库包含两层含义:保管数据的“仓库”,以及数据管理的方法和技术。
- 数据库的特点包括:实现数据共享,减少数据冗余;采用特定的数据类型;具有较高的数据独立性;具有统一的数据控制功能。
2、数据表
- 在关系数据库中,数据表是一系列二维数组的集合,用来存储数据和操作数据的逻辑结构。
- 数据表由纵向的列和横向的行组成,行被称为记录,是组织数据的单位;列被称为字段,每一列表示记录的一个属性,都有相应的描述信息,如数据类型、数据宽度等。
2、数据库技术构成
- 数据库系统由硬件部分和软件部分共同构成。
- 硬件主要用于存储数据库中的数据,包括计算机、存储设备等。
- 软件则主要包括DBMS、支持DBMS运行的操作系统,以及支持多种语言进行应用开发的访问技术等。
1、数据库系统
- 数据库系统有3个主要的组成部分。
- 数据库:用于存储数据的地方。
- 数据库管理系统:用于管理数据库的软件。
- 数据库应用程序:为了提高数据库系統的处理能力所使用的管理数据库的软件补充。
- 数据库提供了一个存储空间用以存储各种数据,可以将数据库视为一个存储数据的容器。一个数据库可能包含许多文件,一个数据库系统中通常包含许多数据库。
- 数据库管理系统(DataBase Management System, DBMS)是用户创建、管理和维护数据库时所使用的软件,位于用户与操作系统之间,对数据库进行统一管理。DBMS能定义数据存储结构,提供数据的操作机制,维护数据库的安全性、完整性和可靠性。虽然已经有了DBMS,但是在很多情况下, DBMS无法满足对数据管理的要求。
- 数据库应用程序(DataBase Application)的使用可以满足对数据管理的更高要求,还可以使数据管理过程更加直观和友好。数据库应用程序负责与DBMS进行通信、访问和管理DBMS中存储的数据,允许用户插入、修改、删除DB中的数据。
2、SQL语言
- 对数据库进行查询和修改操作的语言叫做SQL。
- SQL的含义是结构化查询语言(StructuredQuery Language)。
- SQL有许多不同的类型,有3个主要的标准:
- ANSI(美国国家标准机构) SQL。
- 对ANSI SQL修改后在1992年采纳的标准,称为SQL-92或SQL2。
- 最近的SQL-99标准,从SQL2扩充而来并增加了对象关系特征和许多其他新功能。
- 各大数据库厂商提供不同版本的SQL,这些版本的SQL不但能包括原始的ANSI标准,而且在很大程度上支持SQL-92标准。
- SQL包含以下4个部分:
- 数据定义语言(DDL):DROP, CREATE,ALTER等语句。
- 数据操作语言(DML):INSERT (插入),UPDATE (修改)、DELETE (删除)语句。
- 数据查询语言(DQL):SELECT语句。
- 数据控制语言(DCL):GRANT,REVOKE, COMMIT, ROLLBACK等语句。
3、数据库访问接口
- 不同的程序设计语言会有各自不同的数据库访问接口,程序语言通过这些接口,执行sQL语句,进行数据库管理。
1、ODBC
- Open Database Connectivity(ODBC,开放数据库互连)技术为访问不同的SQL数据库提供了一个共同的接口。
- ODBC使用SQL作为访问数据的标准。这一接口提供了最大限度的互操作性:一个应用程序可以通过共同的一组代码访问不同的SQL数据库管理系统(DBMS)。
- 一个基于ODBC的应用程序对数据库的操作不依赖任何DBMS,不直接与DBMS打交道,所有的数据库操作由对应的DBMS的ODBC驱动程序完成。也就是说,不论是Access、MysQL还是Oracle数据库,均可用ODBC API进行访问。由此可见, ODBC的最大优点是能以统一的方式处理所有的数据库。
2. JDBC
- Java Data Base Connectivity (JDBC, Java数据E连)用于Java应用程序连接数据库的标准方法,是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。
3、ADO.NET
- ADO.NET是微软在NET框架下开发设计的一组用于和数据源进行交互的面向对象类库。ADO.NET提供了对关系数据、XML和应用程序数据的访问,允许和不同类型的数据源以及数据库进行交互。
4、PDO
- PDO(PHP Data Object)为PHP访问数据库定义了一个轻量级的、一致性的接口,它提供了一个数据访问抽象层,这样,无论使用什么数据库,都可以通过一致的函数执行查询和获取数据,PDO是PHP5新加入的一个重大功能。
3、什么是MySQL
- MySOL是一个开放源代码的数据库管理系统(DBMS)。
- MySQL是一个跨平台的开源关系型数据库管理系统,广泛地应用在‘Internet’上的中小型网站开发中。
- MySOL是一个小型关系数据库管理系统,与其他大型数据库管理系统(例如Oracle.DB2SQL Server等)相比,MySQL规模小、功能有限,但是它体积小、速度快、成本低,且它提供的功能对稍微复杂的应用来说已经够用,这些特性使得MySQL成为世界上最受欢迎的开放源代码数据库。
- MySOL是主从式架构(Client-server model)或客户端-服务器(ClientServer)结构简称C/S结构。
1、MySOL的优势
- 速度:运行速度快。
- 价格: MySQL对多数个人来说是免费的。
- 容易使用:与其他大型数据库的设置和管理相比,其复杂程度较低,易于学习。
- 可移植性:能够工作在众多不同的系统平台上,例如: Windows、Linux、Unix、Mac OS等。
- 丰富的接口:提供了用于C、C++、Eiffel、Java、Perl、PHP、Python、Ruby和Tcl等语言的API。
- 支持查询语言: MySQL可以利用标准SQL语法和支持ODBC (开放式数据库连接)的应用程序。
- 安全性和连接性:十分灵活和安全的权限和密码系统,允许基于主机的验证。连接
- 到服务器时,所有的密码传输均采用加密形式,从而保证了密码安全。并且由于MysQL是网络化的,因此可以在因特网上的任何地方访问,提高数据共享的效率。
2、MySQL工具
1、MySQL服务器端实用工具
- mysqld:SQL后台程序(即MySQL服务器进程)。该程序必须运行之后,客户端才能通过连接服务器来访问数据库。
- mysqld_safe:服务器启动脚本。在UNIX和NetWare中推荐使用mysqld_safe来启动mysqld服务器。mysql_safe增加了一些安全特性,例如当出现错误时重启服务器并向错误日志文件写入运行时间信息。
- mysql.server:服务器启动脚本。在UNIX中的MySQL分发版包括mysql.server脚本。该脚本用于使用包含为特定级别的、运行启动服务的脚本的、运行目录的系统。它调用mysqld_safe来启动MySQL服务器。
- mysql_multi:服务器启动脚本,可以启动或停止系统上安装的多个服务器。
- myisamchk:用来描述、检查、优化和维护MyISAM表的实用工具。
- mysqlbug:MySQL缺陷报告脚本。它可以用来向MySQL邮件系统发送缺陷报告。
- mysql_install_db:该脚本用默认权限创建MySQL授权表。通常只是在系统上首次安装MySQL时执行一次。
2、MySQL客户端实用工具
- mysql:交互式输入SQL语句或从文件以批处理模式执行它们的命令行工具。
- mysqlaccess:检查访问主机名、用户名和数据库组合的权限的脚本。
- MySQLadmin:执行管理操作的客户程序,例如创建或删除数据库,重载授权表,将表刷新到硬盘上,以及重新打开日志文件。MySQLadmin还可以用来检索版本、进程,以及服务器的状态信息。
- mysqlbinlog:从二进制日志读取语句的工具。在二进制日志文件中包含执行过的语句,可用来帮助系统从崩溃中恢复。
- mysqlcheck:检查、修复、分析以及优化表的表维护客户程序。
- mysqldump:将MySQL数据库转储到一个文件(例如SQL语句或tab分隔符文本文件)的客户程序。
- mysqlhotcopy:当服务器在运行时,快速备份MyISAM或ISAM表的工具。
- mysql import:使用LOAD DATA INFILE将文本文件导入相关表的客户程序。
- mysqlshow:显示数据库、表、列以及索引相关信息的客户程序。
- perror:显示系统或MySQL错误代码含义的工具。
- myisampack:压缩MyISAM表以产生更小的只读表的一个工具。
# #