知识点:1.数据库基础 2.数据库和数据表管理 3.简单查询与数据操作 4.备份和恢复数据库
一:数据库基础
数据库基础概述
•数据管理主要经历过程:
•手工管理阶段 :应用程序管理数据、数据不保存、不共享、不具有独立性。
•文件管理阶段 :文件系统管理数据、数据可长期保存、但共享性差、冗余度大、独立性差。
•数据管理阶段:数据库系统管理数据、数据结构复杂、冗余小、易扩充、较高的独立性、统一数据控制。
•数据管理主要经历过程:
•手工管理阶段 :应用程序管理数据、数据不保存、不共享、不具有独立性。
•文件管理阶段 :文件系统管理数据、数据可长期保存、但共享性差、冗余度大、独立性差。
•数据管理阶段:数据库系统管理数据、数据结构复杂、冗余小、易扩充、较高的独立性、统一数据控制。
•数据库类型(按数据模型特点分)
•网状型数据库(采用记录类型为节点的网状数据模型)
•层次型数据库(采用层次模型模拟现实世界中按层次组织起来的事物)
•关系型数据库(采用二维表结构组织和管理数据,并规定了表内和表间数据的依赖关系)
•关系数据库是指一些相关的表和其他数据库对象的集合。对于关系数据库来说,关系就是表的同义词。
•表是由行和列组成(类似二维数组的结构)。
•列包含一组命名的属性(也称字段)。
•行包含一组记录,每行包含一条记录。
•行和列的交集称为数据项,指出了某列对应的属性在某行上的值,也称为字段值。
•列需定义数据类型,比如整数或者字符型的数据。
MySQL数据库介绍
•
MySQL
是由瑞典
MySQL AB
公司开的一种开放源代码的关系型数据库管理系统(
RDBMS
),目前属于
Oracle
旗下产品。
•
MySQL
数据库系统使用最常用的数据库管理语言
——
结构化查询语言(
SQL
)进行数据库管理。
•
由于
MySQL
是开放源代码的,因此任何人都可以在
General Public License
的许可下下载并根据个性化的需要对其进行修改。
•
MySQL
因为其速度、可靠性和适应性而备受关注。
•
MySQL的特点
:
•使用C和C++编写,并使用了多种编译器进行测试,保证源代码的可移植性
•
全面支持SQL的GROUP
BY和ORDER
BY子句,支持聚合函数
(COUNT()、COUNT(DISTINCT)、AVG()、STD()、SUM()、MAX()
和MIN
())。
你可以在同一查询中混来自不同数据库的表
。
•
为多种编程语言提供了API,如C、C
++、
Python、Java、Perl、PHP、Eiffel、Ruby等
•
支持多种存储引擎
•
MySQL
软件采用了双授权政策,它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择
MySQL
作为网站数据库
连接数据库:
mysql -u(用户名) root -p(密码)
二.数据库和数据表管理
1.创建数据库
creat database 数据库名 charset = utf8;
2.切换数据库
use 数据库名;
3.查看当前正在使用哪个数据库
select database();
4.删除数据库
drop database 数据库名;
•数据表设计包括ER图、表的主键、字段、数据类型、约束、表之间关系的设计
E-R(Entity-Relationship)模型
即实体-关系模型主要用于定义数据的存储需求,该模型已经广泛用于关系数据库设计中。E-R模型由实体、属性和关系三个基本要素构成
•
主键(
Primary Key
)
•
数据库表要求表中的每一行记录都必须是唯一的,即在同一张表中不允许出现完全相同的两条记录。
•
在设计数据库时,为了保证记录的
“
唯一性
”
,最为普遍、最为推荐的做法是为表定义一个主键(
primary key
)。
•数据库表中主键有以下两个特征:
•
表的主键可以由一个字段构成,也可以由多个字段构成(这种情况称为复合主键)。
•
数据库表中主键的值具有唯一性且不能取空值(
NULL
),当数据库表中的主键由多个字段构成时,每个字段的值不能取
NULL
值。
•
实体间的关系与外键(
Foreign Key
)
•
班级实体和班主任实体之间为一对一关系,班级实体和学生实体之间为一对多关系,学生实体和课程实体之间为多对多关系。
•
实体间的关系可以通过外键来表示。如果表A
中的一个字段
a
对应于表
B
的主键
b
,则字段
a
称为表
A
的外键。此时存储在表
A
中字段
a
的值,同时这个字段值也是表
B
主键
b
的值
约束:
约束是定义在表上的一种强制规则。当为某个表定义约束后,对该表做的所有
SQL
操作都必须满足约束的规则要求,否则操作将失败。
创建表:
create table 表名
查询表:show create table 表名;
查询表的结构:desc 表名
修改表:
添加字段:
•alter table 表名 add 列名 类型;
•给students添加一个生日字段
删除birthday字段
alter table 表名 drop 列名 ;(删除时不需加类型)
修改约束(modify)
修改字段名:alter table 表名 change 旧字段 新字段名(新字段后需加类型)
删除表 :drop table 表名