MySQL 24小时入门笔记(1),概念

MySQL 24小时入门笔记

1. 数据库概念

1.1 数据和储存

数据库本质上作的工做是储存和查询数据。理论上而言,MySQL应该叫作DBMS,也就是数据库管理系统,而不是数据库数据库

DBMS提供了统一的创建、使用、管理数据库的接口,常见的DBMSpostgreSQLMariaDBSQL Server等。性能优化

1.2 数据库和Schema

一般来讲,一个DBMS会支持多个数据库共存。这里所说的数据库指的是特定数据库管理系统管理下的数据库,而不是上一节说的DBMS函数

Schema的中译术语通常叫模式Schema描述了数据库的结构,好比说有哪些表,表有哪些字段,字段分别有哪些限制,有哪些声明了的函数,等等。post

一般的DBMS每每是这样的结构:位于DBMS管理最顶层的是一个或多个数据库,数据库里存放表,表里以行为单位存放数据。性能

1.3 表、列、键、行

1.3.1 表

表的英语术语是Table优化

用过Excl吗?spa

id name
1 Mike
2 John

直观的表就是一个二维的“表”,有行,有列。code

1.3.2 列

列的术语是 Column对象

每一个列都应该有一个特定的类型(type),使该列仅仅储存指定类型的数据。接口

1.3.3 键……或者叫码

键的术语是 Key

一般指的是Primary Key,也就是主键。主键能够是任意一个列。可是若是列是主键,那么这个列必须每一个行都保证不和其余行重复。

主键也能够是多个列,若是是多个列,那么必须保证这些列的组合不重复。

举例来讲

db table id name
aa aaaaa 11 xxxx
aa bbbbb 11 xxxx

其中dbtable还有id都是主键,只要保证没有两个行同时存在相同的db/table/id就算是知足了主键约束。

须要注意的是,多主键的可移植性存疑,不必定其余的DBMS会支持。

1.3.4 行

行的术语是 Row

每一个行都是一条记录(record),换作对象的概念的话,也能够说,每一个表都储存了一个其特有的的Row对象的集合,Column一一对应Row对象的属性。

好比上文的

id name
1 Mike
2 John

对象概念表达就是

class row {
  int id;
  std::string name;
};

const std::set<row> table;

1.4 SQL 是什么

SQL的直译是结构化查询语言,其实就是标准化的数据库查询语言,基本每一个DBMS都支持。

可是……数据库管理系统对SQL标准的支持并非那么上心。其中有性能优化、平台优化之类的缘由,也有数据库软件开发商自身的考虑。但总而言之,不要太期待一样的SQL能在任意DBMS里都同样跑得欢。

相关文章
相关标签/搜索