概念和介绍
1.什么是数据库?
- 数据库就是存储数据的仓库
- 数据库和Excel很像, 一个Excel文件就相当于一个数据库
- 一个Excel文件中可以有很多的表, 一个数据库中也可以有很多的表
- Excel文件的每个表就是专门用户用于存储数据的
- 数据库中的每个表也是专门用于存储数据的
- 所以学习数据库就是学习如何新建表,往表中存储数据和操作表中的数据
Excel本质是一个文件, 数据库本质上也是一个文件
Excel文件中可以有很多表, 数据库文件中也可以有很多的表
Excel文件的每个表就是用来存储数据的, 数据库文件的每个表也是用来存储数据的
2.什么是MySQL?
- MySQL是一个关系型数据, MySQL是由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。
- MySQL是最流行的关系型数据库管理系统之一,在WEB 应用方面,MySQL是最好的关系数据库
- 下载地址: https://dev.mysql.com/downloads/windows/installer/5.7.html
3.什么是关系型数据库?
-
3.1数据库萌芽阶段:
-
最初程序员们把磁盘上的文件当做数据库来使用, 但是由于不方便管理和不安全所以后来就有了第一代数据库(层次模型和网状模型数据库)
-
3.2第一代数据库:
-
层次模型数据库
- 特点:
- 类似于HTML结构, 根结点在最上端,层次最高,子结点在下,逐层排列
- 有且仅有一个结点没有父结点,它就是根结点
- 其他结点有且仅有一个父结点
- 如果节点有多个父节点, 冗余数据过多.
- 例如某个教师既数据A系又属于B系, 那么只能引入冗余数据
- 所有的子节点不能脱离父节点而单独存在
- 如果要删除父节点,那么父节点下面的所有子节点都要同时删除,但是可以单独删除一些叶子节点
- 每个记录类型有且仅有一条从父节点通向自身的路径
- 查询节点的时候必须知道其双亲节点
-
网状模型数据库
- 特点:
- 类似于增强版层次模型
- 允许结点有多于一个父结点
- 可以有一个以上的结点没有父结点
- 结构比较复杂,随应用环境的扩大,数据库的结构就变得越来越复杂,不利于最终用户掌握
-
3.3第二代数据库:
-
关系型数据库
- 特点:
- 1.每个表都是独立的
- 2.表与表之间通过公共字段来建立关系(例如ID字段)
- 3.多表查询效率低
- SQL Server/Oracle/MySQL
-
非关系型数据库
- 解决了关系型数据库多表查询的效率问题
- Redis、mongodb等
https://baike.baidu.com/item/NoSQL/8828247?fr=aladdin
数据库的基本操作
1.创建数据库
create database [if not exists] 数据库名称 [字符编码];
示例一:
在MySQL中创建一个名称叫做stu1的数据库
create database stu1;
注意点: 如果已经存在一个叫做stu1的数据库, 那么会报错
示例二:
判断如果没有stu1的库就创建, 有就不创建
企业开发中推荐这样写
create database if not exists stu1;
示例三:
创建一个数据库, 告诉MySQL将来数据库中存储的内容采用gbk编码
create database if not exists stu2 charset=gbk;
注意点:
如果没有手动设置数据库的编码, 那么默认会采用安装时全局的设置作为默认的编码
就是在安装时日本儿界面中指定的编码
2.如何查看数据库全局默认的编码
show variables like 'character_set_%';
3.如果查看某个数据库的编码
show create database 数据库名称;
4.特殊的数据库名称处理
如果数据库的名称是SQL语句的关键字或者是特殊符号, 那么数据库的名称需要用反引号括起来
create database if not exists create charset=utf8; #报错
create database if not exists `create` charset=utf8; #不会报错
create database if not exists `#%~*%#` charset=utf8; #不会报错
2.如何删除数据库
drop database [if exists] 数据库名称;
示例一:
drop database stu1;
注意点: 如果数据库不存在会报错
示例二:
判断只有表存在才删除, 不存在就不删除
drop database if exists stu1;
新建-- C/增加
create database [if not exists] 数据库名称 [字符编码];
删除-- D/删除
drop database [if exists] 数据库名称;
读取-- R/查看
show databases;
修改-- U/修改
alter database 数据库名称 charset=字符编码
示例:
alter database stu2 charset=utf8;
网友评论