持久化(persistence):把数据保存到可掉电式存储设备中以供之后使用。大多数情况下,特别是企业级应用,数据持久化意味着将内存中的数据保存到硬盘上加以”固化”,持久化的大多数时候是将内存中的数据存储在关系型数据库中,当然也可以存储在磁盘文件、XML数据文件中。
目前互联网上常见的数据库管理软件有Sybase、DB2、Oracle、MySQL、Access、Visual Foxpro(面向对象型)、MS SQL Server、Informix、PostgreSQL(对象-关系型)这几种。
MySQL是一种开放源代码的关系型数据库管理系统,开发者为瑞典MySQL AB公司。在2008年1月16号被Sun公司收购。而2009年,SUN又被Oracle收购.目前 MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库(Facebook, Twitter, YouTube)。阿里提出去OEM,向ODM转向后,更多网站也开始选择MySQL。

注:
(1)表锁,即使操作一条记录也会锁住整个表,不适合高并发的操作;行锁,操作时只锁某一行,不对其他行影响,适合高并发。
(2)Myisam( 索引循序存取法(Index Sequential Access Mode))只缓存索引,不缓存真实数据;Innodb不仅缓存索引还要缓存真实数据,对内存要求较高,而且内存大小对性能有决定性的影响
(3)Innodb不支持全文索引,如果一定要用的话,最好使用sphinx等搜索引擎。myisam对中文支持的不是很好,
不过新版本的Innodb已经支持了
(4)每个MyISAM在磁盘上存储成三个文件。第一个文件的名字以表的名字开始,扩展名指出文件类型。.frm文件存储表定义。数据文件的扩展名为.MYD (MYData)。索引文件的扩展名是.MYI (MYIndex)。
InnoDB:所有的表都保存在同一个数据文件中,InnoDB表的大小只受限于操作系统文件的大小限制。
MySQL的数据类型
常用的数据类型有:
l 整型(xxxint)
l 浮点型(float和double)
l 定点数(decimal,numeric)
l 字符串(char,varchar,xxxtext)
l 日期时间类型(date,time,datetime,year)
l 二进制数据(xxxBlob)
SQL全称是:结构化查询语言(Structured Query Language)。
SQL语言包含4个部分:
l 数据定义语言(Data Definition Language--DDL):如CREATE, DROP,ALTER等语句
l 数据操纵语言(Data Manipulation Language- -DML):INSERT, UPDATE, DELETE语句
l 数据查询语言(Data Retrieval Language --DRL):SELECT语句
l 事务控制语言(Transaction Control Language--TCL):如COMMIT, ROLLBACK等语句
说明:
l mysql对于SQL语句不区分大小写,SQL语句关键字尽量大写(但是一开始因为不熟悉,可以先用小写辅助记忆)
l 值,除了数值型,字符型和日期时间类型使用单引号(’’)
l 别名,尽量使用双引号(“”),而且不建议省略as
l 每个语句可以分为多行编写,最后使用分号(;)结尾即可
l 如果语句有语法错误,需要快速结束,可以\c,但是必须保证所有(),单引号,双引号是成对结束的
l 可以使用#单行注释
l 所有标点符号使用英文状态下的半角输入方式
命名规则:
l 数据库、表名不得超过30个字符,变量名限制为29个
l 必须只能包含 A–Z, a–z, 0–9, _共63个字符
l 不能在对象名的字符间留空格
l 必须不能和用户定义的其他对象重名
l 必须保证你的字段没有和保留字、数据库系统或常用方法冲突
l 保持字段名和类型的一致性,在命名字段并为其指定数据类型的时候一定要保证一致性。假如数据类型在一个表里是整数,那在另一个表里可就别变成字符型了
DDL
DDL用于定义数据库的结构,比如创建、修改或删除数据库、表结构对象,包括如下SQL语句:
l CREATE DATABASE:创建数据库
l DROP DATABASE:删除数据库
l CREATE TABLE:创建数据库表
l ALTER TABLE:更改表结构、添加、删除、修改列长度
l DROP TABLE:删除表
l CREATE INDEX:在表上建立索引
l DROP INDEX:删除索引
DML
数据操纵语言(DML)DML用于插入、修改、删除数据记录,包括如下SQL语句:
INSERT:添加数据到数据库中
UPDATE:修改数据库中的数据
DELETE:删除数据库中的数据
DCL
DCL用来控制数据库的访问,包括如下SQL语句:
l GRANT:授予访问权限
l REVOKE:撤销访问权限
l COMMIT:提交事务处理
l ROLLBACK:事务处理回退
l SAVEPOINT:设置保存点
l LOCK:对数据库的特定部分进行锁定





