目录
I. MySQL
1. DBMS
- 数据库本质上是存储数据的文件系统,方便管理数据。
- 数据库管理系统(DataBase Management System,DBMS):指一种操作和管理数据库的大型软件。
a. 实体类和表的关系
- 一个对象对应一条记录,一个实体类(即 Java 类)对应一张表单。对象和记录产生映射关系(Object Relational Mapping,ORM)。
b. 常见关系型数据库
- MySQL:开源免费的数据库,小型的数据库,被 Oracle 收购,MySQL 6.x版本(商业、社区)也开始收费。
- Oracle:收费的大型数据库,Oracle 公司的产品。Oracle 收购 SUN 公司,收购 MYSQL。
- DB2:IBM 公司的数据库产品,收费的。常应用于银行系统中。
- OceanBase:阿里的大型数据库,性能已超越 Oracle 全球第一。
- SQLServer:MicroSoft 公司收费的中型的数据库。C#、.net 等语言常使用。
- SyBase:已经淡出历史舞台。提供了一个非常专业数据建模的工具PowerDesigner。
- SQLite: 嵌入式的小型数据库,应用在手机端。
2. SQL
- 结构化查询语言(Structured Query Language)
- 通过sql语句来操作数据,实现对记录的增删改查。CRUD:Create(创建)、Retrieve(也称 Read,检索)、Update(修改)、Delete(删除)。
a. SQL 方言
- SQL 是一套标准,所有的数据库厂商都实现了此标准;但是各自厂商在此标准上增加了特有的语句,这部分内容被称为方言。例如,MySQL 方言注释
#
。 - 学习 SQL 语句时,需要关注每一家数据库特有的方言。
b. SQL 书写规范
- SQL 语句可以单行或多行书写,最后以分号结尾。
- SQL 语句(在 Windows 平台下)不区分大小写,建议关键字 大写。例如,
SELECT * FROM student;
。(本文用的小写是为了方便读者辨认) - 变量不加引号是数字类型,加了就是字符串或日期类型。
- 注释:
单行
-- 所有数据库厂商支持
# 仅mysql厂商支持(方言)
多行
/* 注释内容 */
c. SQL 分类
- 数据定义语言(Data Definition Language,DDL):用来定义数据库对象:数据库、表、列等。关键字有 create,drop,alter 等。
- 数据操作语言(Data Manipulation Language,DML):用来对数据库中表的数据进行增删改。关键字有 insert,delete,update 等。
- 数据查询语言(Data Query Language,DQL):用来查询数据库中表的记录(数据)。关键字有 select,where 等。
- 数据控制语言(Data Control Language,DCL):用来定义数据库的访问权限和安全级别,以及创建用户。关键字有 grant,revoke 等。
- 事务控制语言(Transaction Control Language,TCL):用于控制数据库的事务操作,关键字有 commit,savepoint,rollback 等。
- DDL(操作数据库和表)和 DCL(操作用户的权限)一般由 DBA 负责。开发中经常用到的是 DML(操作记录的增删改)、DQL(操作记录的查询)和 TCL(操作数据的事务安全)
- 相关 SQL 操作详见:MySQL 基础语法。
3. MySQL 数据库备份与还原
a. 主要需求
- 将 db 数据库备份、删除、再还原。
b. DOS 命令行
-
备份
- 格式:
mysqldump -u用户名 -p 需要备份数据库名 > 导出路径(*.sql)
- 实例:
mysqldump -uroot -p db > d:backup.sql
- 缺点:通过命令备份的只有表结构和数据,没有建库语句。
- 格式:
-
还原
- 格式:
mysql -u用户名 -p < 导入路径(*.sql)
- 实例:
mysql -uroot -p < d:backup.sql