MySQL原本是一个开放源代码的关系数据库管理系统,原开发者为瑞典的MySQL AB公司,该公司于2008年被昇阳微系统(Sun Microsystems)收购。2009年,甲骨文公司(Oracle)收购昇阳微系统公司,MySQL成为Oracle旗下产品。
MySQL在过去由于性能高、成本低、可靠性好,已经成为最流行的开源数据库,因此被广泛地应用在Internet上的中小型网站中。随着MySQL的不断成熟,它也逐渐用于更多大规模网站和应用,比如维基百科、Google和Facebook等网站。非常流行的开源软件组合LAMP中的“M”指的就是MySQL。
•使用C和C++编写,并使用了多种编译器进行测试,保证源代码的可移植性。
•支持Linux、Mac OS、Novell NetWare、NetBSD、OpenBSD、OS/2 Wrap、Solaris、Windows等多种操作系统。
•为多种編程语言提供了API。这些編程语言包括C、C++、C#、VB.NET、Delphi、Eiffel、Java、Perl、PHP、Python、Ruby和Tcl等。
•支持多线程,充分利用CPU资源,支持多用户。
•優化的SQL查询算法,有效地提高查询速度。
•既能够作为一个单独的应用程序在客户端服务器网络环境中运行,也能够作为一个程序库而嵌入到其他的软件中。
•提供多语言支持,常见的编码如中文的GB 2312、BIG5,日文的Shift JIS等都可以用作數據表名和數據列名。
•提供TCP/IP、ODBC和JDBC等多种数据库连接途径。
•提供用于管理、检查、優化数据库操作的管理工具。
•可以处理拥有上千万条记录的大型数据库。
与其他的大型数据库例如Oracle、IBM DB2、MS SQL等相比,MySQL自有它的不足之处,如规模小、功能有限等,但是这丝毫也没有减少它受欢迎的程度。对于一般的个人用户和中小型企业来说,MySQL提供的功能已经绰绰有余,而且由于MySQL是开放源代码软件,因此可以大大降低总体拥有成本。
2010年以前Internet上流行的网站构架方式是LAMP(Linux Apache MySQL PHP),即是用Linux作为操作系统,Apache作为Web服务器,MySQL作为数据库,PHP(部分网站也使用Perl或Python)作为服务器端脚本解释器。由于这四个软件都是开放源代码软件,因此使用这种方式可以以较低的成本创建起一个稳定、免费的网站系统。MySQL加PHP的配对在互联网上的应用相比LAMP来说更为常见,并获得了“动态配对”(Dynamic Duo)的雅号,大部分Blog网站基于的WordPress系统主要运用MySQL加PHP的配对。除了LAMP之外,用于Solaris、Windows和Mac上的网站构架也分别被称为SAMP、WAMP和MAMP。
维基百科所使用的Mediawiki维基引擎采用PHP语言写成,并以MySQL作为其支持的其中一种数据库管理系统。
除了维基百科,国外的Facebook, Google, Adobe都在使用;国内的百度、阿里、腾讯、新浪都在使用
MySQL相关课程内容,在下面思维导图中列出。
我们逐一简要说明:
l 数据存储:数据库,简单理解,就是数据存储的仓库。我们通过数据库,实现对大量数据的维护。我们通过数据库,可以方便、高效的完成对数据的各种操作。
l 环境安装:上一个章节我们介绍的,目前比较流行的开发环境就是LAMP,也就是Linux、Apache、MySQL和PHP。我们在学习MySQL时,为了将学习重点放到MySQL上,用我们比较熟悉的windows操作系统来代替Linux。也就是说,我们需要在windows上安装Apache、MySQL和PHP三个环境。那么为了便于安装,我们选择了xampp。XAMPP(Apache+MySQL+PHP+PERL)是一个功能强大的建站集成软件包。它可以在Windows、Linux、Solaris、Mac OS X 等多种操作系统下安装使用。我们只要安装了这个软件,就可以开始我们的MySQL之旅了。那么在开始实际操作之前,我们还有了解一些数据库方面的基本概念。
l 基本概念
n 数据库
数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,
每个数据库都有一个或多个不同的API用于创建,访问,管理,搜索和复制所保存的数据。
我们也可以将数据存储在文件中,但是在文件中读写数据速度相对较慢。
所以,现在我们使用关系型数据库管理系统(RDBMS)来存储和管理的大数据量。所谓的关系型数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。
RDBMS即关系数据库管理系统(Relational Database Management System)的特点:
1.数据以表格的形式出现
2.每行为各种记录名称
3.每列为记录名称所对应的数据域
4.许多的行和列组成一张表单
5.若干的表单组成database
数据库: 数据库是一些关联表的集合。
n 表
表是数据的矩阵。在一个数据库中的表看起来像一个简单的电子表格。
n 字段
u 数据类型
MySQL定义了很多的数据类型。大体可分为:数值类型、字符串类型、日期和时间类型等。
u 主键&外键
主键:关系数据库中的一条记录中有若干个属性,若其中某一个属性组能唯一标识一条记录,改属性组就可以成为一个主键。
外键:外键用于与另一张表的关联。是能确定另一张表记录的字段,用于保持数据的一致性。
n 数据行
数据库表中的一条数据,在表中以一行的形式显示,所以一条数据又叫数据行。
l SQL语句
n 数据库操作
u 创建库: CREATE DATABASE `student`
u 表
CREATE TABLE students(
id INT NOT NULL AUTO_INCREMENT,
name VARCHAR(100) NOT NULL,
tel VARCHAR(40) NOT NULL,
birthday DATE,
PRIMARY KEY (id )
);
n 数据操作
u 添加数据
INSERT INTO table_name (column1, column2, column3,...)
VALUES (value1, value2, value3,...)
u 删除数据
DELETE FROM table_name
WHERE some_column = some_value
u 修改数据
UPDATE table_name
SET column1=value, column2=value2,...
WHERE some_column=some_value
u 查询数据
l 条件查询
SELECT column_name(s)
FROM table_name
WHERE column_name operator value
l 结果排序
SELECT column_name(s)
FROM table_name
ORDER BY column_name(s) ASC|DESC
l PHP连接数据库
在PHP基础知识阶段,我们使用PHP中的mysqli进行数据库操作,具体步骤为:
1. 创建数据库连接
2. 构造SQL语句字符串
3. 执行SQL语句
4. 查看执行结果
5. 关闭连接
我们会在后期进行一个电商平台的实战项目,项目整体采用前后端分离的架构。后端使用PHP和MySQL搭建一个restful的API接口,实现数据动态刷新。具体项目相关内容,请参加PHP项目开发相关文档。
以上
PHGAP