1.数据库、数据库管理系统、SQL
①数据库(DataBase):存储数据的仓库,数据是有组织的进行存储。
②数据库管理系统(Database Manager System):操作和管理数据库的大型软件。
③SQL:操作关系型数据库的编程语言,定义了一套操作关系型数据库的统一标准。
2.关系型数据库
(1)关系模型:(表的形式组织数据)
①使用表来表示实体与实体之间关系的数据模型称为关系数据模型。
②一个关系数据库就是由若干个表组成,关系模型用表的集合来表示数据与数据之间的关系。
(2)关系模型中常用的概念:
①关系:可以理解为一张二维表,每个关系都具有一个关系名,就是通常所说的表名;
②元组:可以理解为二维表中的一行,在数据库中经常被称为记录;
③属性:可以理解为二维表中的一列,在数据库中经常被称为字段;
④域:属性的取值范围,也就是数据库中某一列的取值范围;
⑤关键字:一组可以标识唯一元组的属性,数据库中通常称为主键,由一个或多个列组成;
⑥关系模式:指对关系的描述。其格式为:关系名(属性1,属性2,…属性n),在数据库中成为表结构。
(3)优点:
①容易理解:使用二维表,相对网状,层次模型等其他模型更容易理解;
②使用方便:通用的SQL语言使得操作关系型数据库非常方便。
③易于维护:丰富的完整性(实体完整性,参照完整性,用户自定义完整性)大大减少了数据冗余和数据不一致的概率。
(4)瓶颈:
①高并发读写需求:网站的用户并发性非常高,往往达到每秒上千万次读写请求。
②海量数据的高效率读写:在一张包含海量数据的表中查询数据,效率非常低。
③高扩展性和可用性:基于web的结构中,数据库是最难横向扩展的。
关系型数据库中,导致性能欠佳的主要原因是多表的关联查询,以及复杂 大数据分析类型的复杂SQL报表查询。
(5)常见关系型数据库:
①Oracle:大型的收费数据库。
②MySQL:开源免费的中小型数据库,目前Oracle推出了收费版本的MySQL,也提供了免费的社区版本。
③SQL Server:Microsoft 公司推出的收费的中型数据库,C#、.net等语言常用。
⑤PostgreSQL:开源免费的中小型数据库。
⑥DB2:IBM公司的大型收费数据库产品。
⑦SQLLite:嵌入式的微型数据库。Android内置的数据库采用的就是该数据库。
⑧MariaDB:开源免费的中小型数据库。
3.非关系型数据库
(1)以键值对存储,且结构不固定,每一个元组可以有不一样的字段,每个元组可以根据需要增加一些自己的键值对,这样就不会局限于固定的结构,可以减少一些时间和空间的开销。仅需要根据id取出相应的value就可以完成查询。
(2)非关系型数据库由于很少的约束,他不能够提供像SQL所提供的where这种对于字段属性值情况的查询。他只适合存储一些较为简单的数据,对于需要进行复杂查询的数据,关系型数据库显得更为合适。
(3)常见非关系型数据库:
①面向高性能并发读写的key-value数据库,key-value数据库的主要特点是具有极高的并发读写功能。例如:Redis,Takyo,Cabinet,Flare。
②面向海量数据访问的面向文档数据库:特点是可以在海量的数据库中快速的查询数据。例如:MongoDB,CouchDB。
③面向可扩展式的分布式数据库,可以解决传统数据库存在可扩展性上的缺陷,这类数据库可以适应数据量的增加以及数据结构的变化。
4.SQL
(1)通用语法:
①mysql数据库的SQL语句不区分大小写,关键字建议使用大写;
②单行注释:- -注释内容或#注释内容(mysql特有);
多行注释:/*注释内容 */
(2)SQL分类:
①DDL:数据定义语言,用来定义数据库对象(数据库,表,字段);
②DML:数据操作语言,用来对数据库表中的数据进行增删改;
③DQL:数据查询语言,用来查询数据库中表的记录;
④DCL:数据控制语言,用来创建数据库用户,控制数据库的访问权限。
5.MySQL数据类型
①数值类型
②字符串类型
③日期时间类型
6.启动/停止MYSQL数据库:
msql命令行:net start mysql; net stop mysql;
cmd命令行:net start mysql80(注册到Windows中的mysql系统名称);net stop mysql;
7.mysql连接:
cmd命令行:mysql -u root -p
此方式需要配置mysql的环境变量。