数据库概念:
1. 数据库概念
数据库是一个长期存储在计算机中的,有组织有共享的统一管理数据的集合(存储数据的仓库),他可以有效的管理存储在数据库中的数据。
数据库
|
|
数据表
|
|
列 字段 ---类型(int char )
行 记录
2. 什么是表
在关系数据库中,数据库采用二维表格的方式来存放数据,他们是由纵向的列和横向的行组成的,列被称为字段,行被称之为记录,每一个列表示着一个记录的属性,都有相应描述信息,例如: 数据类型,数据的长度 。。。。
3. 数据类型
数据类型决定了数据在计算机中存储的格式,代理不同的信息类型,常见的数据类型有: 整数型,浮点数类型,精确小数类型,二进制数据类型,字符串类型,日期和时间数据类型,几何数据类型。。。。 表中的每个字段就是某种指定的数据类型。
4. 数据库系统
由三部分组成
数据库:用于存放数据的地方,提供了一个存储空间可以存放各种数据,可以将数据视为一个存放数据的容器,一个数据库中可能包含多个文件,一个数据库系统中也可能包含多个数据库
数据库管理系统:用于管理数据库的软件,用于创建,管理和维护数据库时使用的软件,位于用户和操作系统之间,对数据库进行统一管理,能够定义数据库的存储结构,提供数据库的操作机制,维护数据库的安全性,完整性和可靠性。
数据库应用程序:为了提高数据库系统的处理能力,是管理数据的软件的补充,虽然有了数据库管理系统但是在很多情况下,仍然无法满足对数据库管理的要求,数据库应用程序的使用满足了对数据库管理的更高要求,还可以使数据库更加的直观,数据库应用程序负责与数据库管理系统进行通讯,访问和管理数据库系统中存放的数据,允许用户输入,修改或者删除数据库中的数据。
5. Mysql的优势
1. 速度:运行速度比较快
2. 价格:mysql对于多数人来说是免费的
3. 容易使用:与其他大型数据库的设置和管理程度相比,复杂程度较低,容易学习
4. 可移植性:能够在众多不同的平台上进行工作,例如 linux windows 。。。
5. 丰富的接口: 提供了c,c++,php,python
6. 支持查询语言:mysql可以使用标准的sql语句
7. 安全性和连续性:十分灵活和安全的权限和密码系统,允许基于主机的验证,连接到服务器,所有密码传输均采用加密的形式,从而保证密码的安全性,并且mysql是网络化的,因此可以在网络上的任何地方进行访问,提高了数据的共享效率。
6. Sql语句
对数据库进行查询和修改操作的语句都可以叫做sql语句(结构化查询语句)
1, 数据库定义语言(DDL): DROP CREATE ALTER......
2, 数据库操作语言(DML): INSERT UPDATE DELETE....
3, 数据库查询语言(DQL):SELECT ...
4, 数据库控制语言(DCL): GRANT REVOKE COMMIT...
在安装好mysql库后,系统会自动创建出初始库,不同的库存放着不同功能的数据表
查看所有的库
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
Mysql库#存放关于mysql服务器系统的级别信息和配置
包含了关于用户,权限和访问控制的表,用于管理用户和控制用户的访问权限
包含了重要的数据表,例如: user db tables_priv columns_priv ..... 用于存储用户,数据库,表级别的权限信息列级别的权限信息
information_schema#提供了对mysql数据库系统,元数据的访问
包含了关于数据库,表,列,索引,约束,函数,触发器等的信息
在查询information_schema库中表,可以获取有关于数据库对象的详细信息
performance_schema #提供了关于数据库性能和资源使用情况的详细信息。
包含了性能相关的统计数据和指标,例如,查询计数,IO操作
可以使用performance_schema 库来分析和优化数据库的性能
Sys#是一个存储过程的函数的集合,用于提供mysql数据库的信息监控和诊断功能
包含了一组视图和函数用于获取performance_schema 和information_schema 库中的性能数据,并且以更方便的形式进行查询
7、数据库存储引擎
数据库存储引擎是数据库的底层组件,数据库管理系统使用的数据库存储引擎进程创建,删除,查询和更新数据库的操作,不同的数据库引擎提供不同的存储机制,索引技巧,锁定水平功能,使用不同的存储引擎可以获取特定的功能。
常见的搜索引擎:innoDB Memory MyISAM CSV ....
查看数据库引擎的命令
show engines;
查看默认使用的搜索引擎
show variables like "%storage_engine";
常用的存储引擎的特点以及适用场景
MyISAM #在mysql5.5版本之前默认使用的存储引擎,在mysql5.5 之后改为使用了InnoDB存储引擎
MyISAM存储引擎 #读取速度比较快,占用资源相对较少,不支持事务,不支持外键约束,但是支持全文索引。
使用场景
适用于并发相对较低,数据修改较少的业务。
硬件资源比较差的机器可以考虑使用 MyISAM存储引擎
innoDB存储引擎
事务类型数据库首选的数据引擎,支持事务,安全表,支持行锁定和外键约束。
具有提交和回滚崩溃恢复能力的事务安全存储引擎
具有较高效率的存储特性,能够缓存索引,也能够转换数据,对硬件资源的要求较高。
使用innoDB存储引擎是将在mysql数据目录下创建一个名为ibdata的自动扩展数据文件以及名为ib_logifile()和ib_logfile1的日志文件。
innoDB适用场景
需要事务支持的业务,高并发业务
数据更新比较频繁的业务
数据一致性比较高的业务
MyISAM拥有较高的插入、查询速度,但不支持事务,不支持外键。如果表主要是用于插入新记录和读出记录,那么选择MyISAM能实现处理高效率。如果应用的完整性、并发性要求比较低,也可以使用。
它不支持事务处理,但读取速度较快,并且通常占用较少的磁盘空间。如果表主要被用于读取操作,并且可以接受偶尔的数据损坏或丢失(例如,在突然的服务器故障中),那么MyISAM可能是一个好选择。
MyISAM表是独立于操作系统的,可以轻松地将其从Windows服务器移植到Linux服务器。
InnoDB行级锁,提供了具有提交、回滚和崩溃回复能力的事务安全,支持自动增长列,支持外键约束,并发能力强,占用空间是MyISAM的2.5倍,处理效率相对会差一些1。
这是MySQL的默认存储引擎。它支持事务处理、行级锁定和外键约束,通常用于需要高并发写入和数据一致性的场景。
Memory将表中的数据存储到内存中,为查询和引用其他表数据提供快速访问。所有的数据都在内存中,数据的处理速度快,但是安全性不高。如果需要很快的读写速度,对数据的安全性要求较低,可以选择Memory。
此存储引擎将表存储在内存中,所以查询速度非常快。但是,当MySQL服务器停止时,数据会丢失。此存储引擎适用于临时表或不需要持久保存的数据
Archive:这是一个用于存储归档数据的存储引擎。它只支持插入和查询操作,不支持更新和删除操作。它使用gzip算法进行行级压缩,节省了磁盘空间。
CSV存储引擎:
将数据以逗号分隔的文本文件形式存储在磁盘上。
不支持事务处理、行级锁定和索引。数据修改后需要刷新表。不支持外键约束和触发器。
8、完整性和约束条件
主键约束:(primary key)
非空约束(not null)
唯一约束(unique)
自增约束(auto_increment)
默认值约束(default)
外键约束(foreign key)