〇、前言
一直做Android开发,学习的数据库知识都生疏了,此次复习就将数据库知识做一个完整记录,以期温故而知新。
一、数据库的概述
数据库是用来存储和管理(增删改查)数据的仓库。
数据库是保存有组织的数据的容器。注意区分数据库与数据库软件(即:数据库管理系统)的不同。(《SQL必知必会》)
二、常见的数据库管理系统
数据库分为关系型数据库(Relational Database)和非关系型数据库(NOSQL:Not Only SQL)。其中非关系型数据库主要是用来在内存中存储缓存数据,代表作有MongoDb、Redis等;关系型数据库是用来存储具有关系的数据,常见的关系型数据库管理系统(RDBMS:Relational Database Management System)有以下几种:
- Oracle: 甲骨文; 大型的关系型数据库,收费的
- DB2: IBM; 大型的关系型数据库,收费的
- SQL Server:微软; 中型的关系型数据库,收费的
- MySQL: 甲骨文; 小型的关系型数据库,免费的,但是6.x以后就开始收费了?
- SQLite: 微小型关系型数据库,轻量级的、开源的
三、MySql数据库的下载、安装以及卸载
1、MySql数据库的下载地址:https://dev.mysql.com/downloads/mysql/
2、安装:网上教程很多,此处就不赘述了
3、MySql的卸载:
1.找到mysql安装目录下的my.ini文件;
2.找到配置项datadir;如:datadir="C:/develop/database/MySQL/MySQL Server 5.0/Data/"
3.关闭mysql服务;
4.控制面板卸载;
5.删除datadir目录。
四、MySql数据库的相关配置
1、访问:mysql -uroot -p密码
2、服务的启动与关闭:
- 使用 services.msc 命令打开服务管理窗口,手动进行启动或停止;
- 使用管理员权限打开命令窗口,执行 net [命令名称] [服务名称] ,即:net start mysql (启动MySql服务),net stop mysql(关闭MySql服务)
3、MySql密码忘记后,修改密码
- 停止mysql服务(运行输入services.msc 停止mysql服务或者 cmd -- net stop mysql);
- 在cmd下 输入 mysqld --skip-grant-tables 启动服务 光标不动 (不要关闭该窗口);
- 新打开cmd 输入mysql -u root -p 不需要密码 use mysql; update user set password=password('abc') WHERE User='root'; ;
- 关闭两个cmd窗口 在任务管理器结束mysqld 进程 ;
- 在服务管理窗口 重启mysql服务。
五、数据库的结构
数据库管理系统——数据库——表格——数据
即:数据不是直接存放在数据库管理系统或者数据库中的,数据库管理系统中是一个个数据库,数据库中是一张张表格,数据是存储在表格中的。
表(table):某种特定类型数据的结构化清单。表名是唯一的。
列(column):表中的一个字段,所有表都是由一个或多个列组成的。正确的将数据分解为多个列极为重要。
数据库中每个列都有相应的数据类型,数据类型限定了可存储在列中的数据种类,数据类型还帮助正确的分类数据,并在优化磁盘使用方面起到重要作用。
行(row):表中的一个记录。
主键(primary key):表中每一行都应该有一列(或几列)可以唯一标识自己,唯一标识表中每一行的这个列(或这几列)称为主键。应该总是定义主键。主键须满足以下条件:
- 任意两行都不具有相同的主键值;(唯一)
- 每一行都必须具有一个主键值,主键列不允许空值NULL;(非空)
- 主键列中的值不允许修改或更新;(插入即确定)
- 主键值不能重用,如果某行从表中删除,她的主键不能赋给以后的新行。(终身制)
外键: