一.Mysql是一个开放源代码的数据库管理系统(DBMS) 。他是由mysqlAB公司开发,发布并支持。mysql是一个跨平台的开源关系数据 库管理系统,广泛地应用在Internet上的中小型网站公司开发中,
二.数据库时由 一批数据构成的有序的集合,这些数据被存放在结构化的数据表里。数据表之间互相关联,反映了客观事物间的本质联系,数据库系统提供对数据的安全控制和完整性控制。
三. 数据库的种类:层次式数据库,网络式数据库,和关系型数据库。不同的种类的数据库按不同的数据结构来联系和组织。
四.什么是数据库:数据库时一个长期存储在计算机内的、有组织、有共享的、统一管理的数据集合、简而言之就是一个存储数据的仓库。为了方便的存储和管理。他将数据按照特定的规律存储在磁盘上。
五. 数据库的特点:实现数据共享,减少数据冗余,采用特点的数据类型,具有较高的数据独立性。具有统一的数据控制功能。
表:
在关系型数据库中,数据库的表示一系列二维数组的集合,用来存储数据和操作数据的逻辑结构,他是由纵向的列和横向的行组成,行被记录,是组织数据的单位,列被称为字段,每一类表记录的一个属性,都有相应的描述信息,如数据类型。数据宽度等。
数据类型:
数据类型决定了数据在数据在计算机中存储格式,代表不同的信息类型。常用的数据类型有:整数数据类型,浮点数数据类型,精确小数类型,二进制数据类型,日期/时间数据类型。
主键:
主键(primary key) 用于唯一标识表中的每一条记录。可以定义表中的一列或者对列为主键。主键列上不能有两行相同的值,也不能为空值。
数据库技术构成:
数据库系统由硬件部分和软件部分共同构成,硬件主要用于存储数据库中的数据,包括计算机,存储设备等。软件部分则主要包括DBMS,支持DBMS运行的操作系统,以及支持多种语言进行应用开发的访问技术。
数据库系统主要的3个组成部分:
数据库:用于存储数据的地方
数据库管理系统:用于 管理数据库的软件
数据库的应用程序:为了提高数据库系统的处理能力所使用的管理数据库的软件补充。
数据库(database system) 提供了一个存储空间以存储各种数据,可以将数据库 视为一个存储数据的容器。一个数据库可能包含许多文件,一个数据库系统中通常包含许多数据库。
? 数据库管理系统(database Management System,DBMS) 是用户创建。管理和维护数据库时所用的软件,位于用户与操作系统之间,对数据库进行统一管理,DBMS能定义数据的存储结构,提供数据的操作机制,维护数据库的安全性,完整性和可靠性。
? 数据库的应用程序:(Database Application) 虽然已经有了DBMS、但是在很多情况下,DBMS无法满足对数据库管理的要求,数据库应用程序的使用可以满足对数据管理的更高要,可以使管理数据更加直观,数据库应用程序负责于DBMS进行通信,访问个和管理DBMS数据中存储的数据,允许用户插入,修改,删除DB的数据。
数据库访问技术:不同的程度设计语言会有各自不同的数据库访问技术,程序语言通过这些技术,执行sql语句,进行数据库管理,主要的数据库访问技术有:
ODBC:(open database connectivity) 开放数据库互联。技术为访问不同的sql数据库提供了一个共同的接口。缺点是先沟通驱动
JDBC:(java data base connectivity)java数据库连接,用于java应用程序连接标准方法。
ADO.NET:是微软在.NET 框架下开发设计的一组用于 和数据源进行交互的 面向对象 类库。闭源 windows环境中
PDO:(php data object) 为php访问数据定义了一个轻量级、一致性的接口。它提供了一个数据访问抽象层,
SQL语言
在92年由美国ANSI(国家 标准机构)发布。sql-92 在99年被优化过,叫做
SQL-99 sql语言分为4大类:
1:数据定义语言DDL:(date definition language):DROP ALTER CREATE 对于库和表而言
2:数据操作语言DML: (date manipulation language):INSERT UPDATE DELETE 对于数据而言
3:数据查询语言DQL:(date query language):SELECT 对于表而已
4:数据控制语言:DCL: (date control language): BEGIN ROLLBACK COMMIT GRANT.REVOKE 对于用户或者功能的控制
MySQL优势:
1, 速度快
2, 开源
3, 上手简单
4, 移植性强
5, 接口丰富
6, 安全性和连续性
mysql数据库的默认4个数据库的简介:
test属于测试库,所有的用户对于该库都拥有root权限(不会存放重要信息)
mysql 用于存放用户权限,密码信息和关键字等控制和管理信息
information_schema:存放mysql服务器所维护的其他数据库的信息,比如数据 库名,表名,约束条件访问权限等等
performance_schema:记录了5.5版本之后mysql服务器性能参数
数据库存储引擎:
位于数据库底层,属于底层组件,提供增删改查的数据操作。不同的存储引擎有不同的功能。占用的空间大小不同,读取性能不同在mysql中每一个表都对应一个存储引擎,默认为innodb,属于mysql核心。
查看当前mysql所有的存储引擎
show engines\G
Engine: MyISAM 引擎的名字
Support: YES 是否支持当前引擎
Comment: MyISAM storage engine 对当前引擎的描述
Transactions: NO 是否支持该事务
XA: NO 是否支持 事务分布式
Savepoints: NO 是否支持保存点
merge 属于myisam组合,属于myisam聚合器,merge表中没有数据
archive 在5.5版本之后开始支持索引,属于压缩表,仅支持写入数据和查询数据两种功能
csv:将数据文件变为csv格式进行存储,不支持索引,适合用于数据交换
mrg_myisam属于合并的myisam表
查看默认存储引擎:
show variables like ‘default_storage_engine‘;
查看系统参数:
show variables like ‘参数’;
myisam特点:
(1) 属于5.5版本之前的默认存储引擎
(2) 读取速度快,占用资源少,但是不支持事务,不支持外键,支持全文索引,空间索引
(3) 读取相互阻塞
(4) 只能缓存索引不能缓存数据
myisam应用场景:
(1) 不使用事务的业务
(2) 读取较多的业务
(3) 并发量低的业务,且数据修改较少的业务
(4) 硬件资源受到限制的情况下可以考虑使用myisam
InnoDB特点:
(1) 使用事务首先存储引擎,5.5版本之后作为默认 存储引擎,
(2) 具有提交,回滚,崩溃回复能力的事务 安全存储引擎,可以处理大并发量,性能较高,支持外键
(3) 缓存性能高,可以缓存数据也可以缓存索引,但是对硬件 要求较高
(4) 一旦使用innodb,会在数据目录下生成两个名字为ib_logfile0 和ib_logfile1的日志文件,和10M大小的自动扩展的文件ibdata1
(5) ibdata1属于二进制文件不能通过文本编辑器打开,且使用innodb存储引擎的表。表中的数据和索引都会放在该文件中。
Innodb的使用场景:
(1) 需要事务的业务,例如银行转账
(2) 更新 数据较为频繁的业务,例如微博
(3) 数据一致性要求较高的业务,例如充值,转账
Memory特点:
? (1)将所有表中的数据保存到内存中,提供用户的快速访问(易失性)
? (2)memory如果不需要该存储引擎中数据时,直接将表清空或者删除,可以直接释放内存
? (3) memory支持hash和btree索引(算法),不支持设置blob和text数据类型