数据库的概述
数据库Database(DB):按照数据结构组织、存储和管理数据的仓库。本质是一个文件系统。保存一系列有组织的数据。每个数据库都有一个或者多个不同的API用于创建、访问、管理、搜索和复制所保存的数据。
数据库管理系统Database Management System(DBMS):一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库,对数据库进行统一管理和控制。用户通过数据库管理系统访问数据库中的表内的数据。
结构化查询语言Structured Query Language(SQL):专门用来与数据库通信的语言。
数据库管理系统、数据库和表的关系:
为什么要使用数据库?
持久化:把数据保存到可掉电式存储设备中以供之后使用。数据持久化意味着将内存中的数据保存到硬盘中加以“固化”。持久化的主要作用是将内存中的数据存储在关系型数据库中,也可以存储在磁盘文件、XML数据文件中。
RDBMS和非RDBMS
关系型数据库RDBMS
将复杂的数据结构归结为简单地二元关系(二维表格形式)
术语
- 数据库: 数据库是一些关联表的集合。
- 数据表: 表是数据的矩阵。在一个数据库中的表看起来像一个简单的电子表格。
- 列: 一列(数据元素) 包含了相同类型的数据, 例如邮政编码的数据。
- **行:**一行(=元组,或记录)是一组相关的数据,例如一条用户订阅的数据。
- 冗余:存储两倍数据,冗余降低了性能,但提高了数据的安全性。
- 主键:主键是唯一的。一个数据表中只能包含一个主键。你可以使用主键来查询数据。
- **外键:**外键用于关联两个表。
- 复合键:复合键(组合键)将多个列作为一个索引键,一般用于复合索引。
- **索引:**使用索引可快速访问数据库表中的特定信息。索引是对数据库表中一列或多列的值进行排序的一种结构。类似于书籍的目录。
- 参照完整性: 参照的完整性要求关系中不允许引用不存在的实体。与实体完整性是关系模型必须满足的完整性约束条件,目的是保证数据的一致性。
- 表头(header): 每一列的名称;
- 列(col): 具有相同数据类型的数据的集合;
- 行(row): 每一行用来描述某条记录的具体信息;
- 值(value): 行的具体信息, 每个值必须与该列的数据类型相同;
- 键(key): 键的值在当前列中具有唯一性。
非关系型数据库
-
键值型数据库
-
文档型数据库
-
搜索引擎数据库
-
列式数据库
-
图形数据库
MySQL
MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。
主要操作
-
查看所有的数据库
show databases;
-
创建自己的数据库
create database 数据库名;
-
使用自己的数据库
use 数据库名;
-
查看某个库的所有表格
show tables from 数据库名;
-
创建新的表格
create table 表名( 字段名 数据类型, 字段名 数据类型 );
-
查看一个表的数据
select * from 数据表名称;
-
添加一条记录
insert into 表名称 values(值列表);
-
删除表格
drop table 表名称;
-
删除数据库
drop database 数据库名;
主要目录结构
MySQL的目录结构 | 说明 |
---|---|
bin目录 | 所有MySQL的可执行文件。如:mysql.exe |
data目录 | 系统数据库所在的目录 |
c:\ProgramData\MySQL\MySQL Server 8.0\data\ | 用户创建的数据库所在的目录 |
SQL
分类:
- **DDL(Data Definition Languages 数据定义语言):**语句定义了不同的数据库、表、视图、索引等数据库对象,还可以用来创建、删除、修改数据库和数据表的结构。
- create创建、alter修改、drop删除、truncate截断
- **DML(Data Manipulation Language 数据操作语言):**用于添加删除更新和查询数据库记录,并检查数据完整性。
- insert插入、update修改、delete删除
- **DCL(Data Control Language 数据控制语言):**用于定义数据库、表、字段、用户的访问权限和安全级别。
- grant授权、revoke回收权限
- DQL(Data Query Language 数据查询语言):
- select查询
大小写规范
-
MySQL在windows环境下大小写不敏感的
-
MySQL在Linux环境下是大小敏感的
-
数据库名、表名、表的别名、变量名是严格区分大小写的
-
关键字、函数名、列名(或字段名)、列的别名(字段的别名) 是忽略大小写的。
-
-
推荐采用统一的书写规范
- 数据库名、表名、表别名、字段名、字段别名等都小写
- SQL 关键字、函数名、绑定变量等都大写
注释
单行注释:#注释语句
-- 注释语句
多行注释:/*注释语句*/
声明:本篇中大部分图片摘自尚硅谷老师的文档,感谢尚老师成就我们一生