MySQL 是领先的开源数据库管理系统。 它是一个多用户,多线程的数据库管理系统。 MySQL 在网络上特别流行。 它是非常流行的 LAMP 平台的组成部分之一。 Linux,Apache,MySQL 和 PHP。 MySQL 数据库在最重要的 OS 平台上可用。 它可以在 BSD Unix,Linux,Windows 或 Mac 上运行。 维基百科,YouTube,Facebook 使用 MySQL。 这些站点每天管理数百万个查询。 MySQL 有两个版本:MySQL 服务器系统和 MySQL 嵌入式系统。 MySQL 服务器软件和客户端库具有双重许可:GPL 版本 2 和专有许可。
MySQL 的开发始于 1994 年,瑞典的 MySQL AB 公司。 Sun Microsystems 在 2008 年收购了 MySQLAB。Sun 在 2010 年被 Oracle 收购。
MySQL,PostgreSQL,Firebird,SQLite,Derby 和 HSQLDB 是最著名的开源数据库系统。
MySQL 是用 C / C++ 开发的。 除 C / C++ 外,还存在适用于 PHP,Python,Java,C# ,Eiffel,Ruby,Tcl 或 Perl 的 API。
MariaDB
MariaDB 是 MySQL 的社区开发分支,旨在在 GNU GPL 下保持免费。 它是由 MySQL 的原始开发人员领导的,由于担心它被 Oracle 收购,他们分叉了它。 MariaDB 打算保持与 MySQL 的高度兼容性,以库二进制等效性和与 MySQL API 和命令的精确匹配来确保“嵌入式”替换功能。
定义
关系数据库 是表中组织的数据的集合。 表之间存在关系。 这些表是正式描述的。 它们由行和列组成。 _SQL(结构化查询语言)是一种数据库计算机语言,旨在管理关系数据库管理系统中的数据。 表 是使用垂直列和水平行的模型组织的一组值。 列由其名称标识。 数据库系统的 模式 _ 是用正式语言描述的结构。 它定义了表,字段,关系,视图,索引,过程,函数,队列,触发器和其他元素。
数据库 行 代表表中的单个隐式结构化数据项。 它也称为元组或记录。 列 是一组特定简单类型的数据值,该数据值对应于表的每一行。 列提供了构成行所依据的结构。 字段 是单个项目,存在于一行和一列之间的交点处。 主键 唯一标识表中的每个记录。 外键 是两个表之间的引用约束。 外键标识一个(引用)表中的一列或一组列,该列或表引用另一(引用)表中的一列或一组列。
触发器 是响应于数据库中特定表上的某些事件而自动执行的过程代码。 视图 是对来自一个或多个表的数据的特定外观。 它可以按特定顺序排列数据,突出显示或隐藏某些数据。 视图由存储的查询组成,该查询可作为由查询结果集组成的虚拟表访问。 与普通表不同,视图不构成物理模式的一部分。 它是根据数据库中的数据计算或整理的动态虚拟表。
事务 是针对一个或多个数据库中数据的数据库操作的基本单位。 事务中所有 SQL 语句的影响可以全部提交给数据库,也可以全部回滚。 SQL 结果集 是数据库中由SELECT
语句返回的一组行。 它还包含有关查询的元信息,例如列名以及每列的类型和大小。 索引 是一种数据结构,可提高对数据库表的数据检索操作的速度。
使用的表
在这里,我们将列出整个教程中使用的所有表。
cars.sql
-- SQL for the Cars table
USE mydb;
CREATE TABLE IF NOT EXISTS Cars(Id INTEGER PRIMARY KEY, Name VARCHAR(50),
Cost INTEGER);
INSERT INTO Cars VALUES(1,'Audi',52642);
INSERT INTO Cars VALUES(2,'Mercedes',57127);
INSERT INTO Cars VALUES(3,'Skoda',9000);
INSERT INTO Cars VALUES(4,'Volvo',29000);
INSERT INTO Cars VALUES(5,'Bentley',350000);
INSERT INTO Cars VALUES(6,'Citroen',21000);
INSERT INTO Cars VALUES(7,'Hummer',41400);
INSERT INTO Cars VALUES(8,'Volkswagen',21600);
这是一个Cars
表。
customers_reservations.sql
-- SQL for the Customers, Reservations tables
USE mydb;
CREATE TABLE IF NOT EXISTS Customers(CustomerId INTEGER AUTO_INCREMENT
PRIMARY KEY, Name VARCHAR(55));
INSERT INTO Customers(Name) VALUES('Paul Novak');
INSERT INTO Customers(Name) VALUES('Terry Neils');
INSERT INTO Customers(Name) VALUES('Jack Fonda');
INSERT INTO Customers(Name) VALUES('Tom Willis');
CREATE TABLE IF NOT EXISTS Reservations(Id INTEGER AUTO_INCREMENT
PRIMARY KEY, CustomerId INTEGER, Day DATE);
INSERT INTO Reservations(CustomerId, Day) VALUES(1, '2009-11-22');
INSERT INTO Reservations(CustomerId, Day) VALUES(2, '2009-11-28');
INSERT INTO Reservations(CustomerId, Day) VALUES(2, '2009-11-29');
INSERT INTO Reservations(CustomerId, Day) VALUES(1, '2009-11-29');
INSERT INTO Reservations(CustomerId, Day) VALUES(3, '2009-12-2');
这些是Customers
和Reservations
表。
books.sql
-- SQL for the Books table
USE mydb;
CREATE TABLE IF NOT EXISTS Books(Id INTEGER PRIMARY KEY,
Title VARCHAR(100), Author VARCHAR(60));
INSERT INTO Books VALUES(1,'War and Peace','Leo Tolstoy');
INSERT INTO Books VALUES(2,'The Brothers Karamazov','Fyodor Dostoyevsky');
INSERT INTO Books VALUES(3,'Paradise Lost','John Milton');
INSERT INTO Books VALUES(4,'Crime and Punishment','Fyodor Dostoyevsky');
INSERT INTO Books VALUES(5,'Cousin Bette','Honore de Balzac');
这是一个Books
表。