目录

  • 写在前面
  • 数据库
  • 什么是数据库
  • 数据库的分类
  • 关系型数据库(SQL)
  • 关系型数据库的组成
  • 非关系型数据库(NoSQL)
  • 数据库的代表
  • SQL语言
  • SQL的特点
  • 为何选择 MySQL数据库
  • MySQL
  • 最好的数据库 Oracle
  • Oracle贵的理由
  • 查看数据库
  • 创建一个数据库
  • 数据库名字错误
  • 数据库创建时数据库已存在
  • 创建数据库时指定编码集
  • 查看数据库编码集
  • 指定编码集
  • 修改编码集
  • 删除数据库


写在前面

这是我开始新学的模块,今天开始也算是见证自己的历程

数据库

什么是数据库

数据库,又称为数据管理系统,简而言之可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的资料执行新增、截取、更新、删除等操作。 所谓“数据库”是以一定方式储存在一起、能予多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。一个数据库由多个表空间构成。(来源:维基百科)

说人话,数据库 就是一个存储物品的柜子,就像我们电脑的硬盘,只不过我们可以通过远程来操作里面的数据罢了,没什么可神秘的,那有人可能会疑惑,既然有文件里面可以存储数据了,我们为何还要使用数据库呢,实际上文件储存有一定的缺陷

  • 文件存储的安全性不够高
  • 文件存储不利于管理和查询
  • 文件不利于海量存储

数据库的分类

数据库有很多种类,有免费的,也有收费的,不过都大通小异,我们选择哪一个都可以,下面我就仔细说一下数据库的种类和历史

数据库大致可以分为两大类,以后的工作中都有可能会用到

  1. 关系型数据库
  2. 非关系型数据库

关系型数据库(SQL)

数据形式使用 作为结构,类似 excel,对于数据的约束比较强,所谓的约束就是对数据的合法性的校验,这种数据库适应于大部分场景

关系型数据库的组成

这里我说的简单一点,我们都知道excel表格,数据库就是一个文件,而一个excel表文件中的一个个表单

mysql 图书馆er图 mysql创建图书馆的数据库_mysql 图书馆er图

非关系型数据库(NoSQL)

数据组织形式使用键值对作为结构,类似于Map,存储时都要指定key 和 value。对于数据的约束比较低。效率和水平拓展能力比较强,适合分布式系统

数据库的代表

  • 关系型 MySQL 、Oracle 、SQL Serve 、SQLite
  • 非关系 Redis、MongoDB、HBase

SQL语言

学习数据库,我们就必须对SQL语言有一定的了解,SQL是一门结构化的语言,实际就是一门编程语言,操作数据库主要就是使用这个语言,注意下面

  • 所有的关系型数据库都支持SQL语言,部分的语言细节可能有所差异,不过整体一样
  • 非关系型数据库也支持,但不仅支持SQL,所以非关系型数据库也叫 NoSQL
SQL的特点
  1. SQL语言中存在特定的术语
  2. SQL语言不会识别大小写
  3. 一个SQL语言是以英文分号 **‘ ;’**结尾的,绝大部分的不见到分号绝对不会执行
  4. SQL的注释 是

mysql 图书馆er图 mysql创建图书馆的数据库_数据仓库_02

为何选择 MySQL数据库

我们可能会感到疑惑,这么多数据库,我们为何选择MySQL,我们使用一个工具,那么肯定是这个工具好用,MySQL也是如此,就像Java和C++一样

MySQL

  • 开源,也就意味着免费
  • 原理和其他数据库差不多

最好的数据库 Oracle

毫无争议,最好的数据库就是Oracle,但是最好就意味着他很贵,普通的学生使用不起的,甚至一些中小型公司也用不起,能够用的起的不多,当然银行用的起,他不差钱,而且数据很宝贵

Oracle贵的理由
  • 贵在服务上
  • 贵在安全性
  • 贵在放心
  • Oracle不是拿来就可以用,需要搭配小型机才可以发挥 十成 效果

查看数据库

查看数据的的语言很简单,只需要一个语句就可以

show databases;  -- 注意 databases 是负数形式

mysql 图书馆er图 mysql创建图书馆的数据库_mysql 图书馆er图_03

你可能会发现我们查看的数据库不太一样,这是因为我之前创建过其他的数据库

创建一个数据库

MySQL是一个软件,它可以去维护很多逻辑上的数据库,也就是说我们可以创建多个数据库,所谓的数据库就是若干张表的集合,我们开始创建一个数据库,使用SQL语言

create database db_test;  -- db_test 数据库名

mysql 图书馆er图 mysql创建图书馆的数据库_数据仓库_04

我们再创建数据库的时候可能会出现一些问题

数据库名字错误

名字要求 数字字母下划线 , 数字不开头,中间不能带空格

数据库创建时数据库已存在

mysql 图书馆er图 mysql创建图书馆的数据库_数据仓库_05

当你不知道你要创建的数据库是否已经存在时,你可以使用下面的语句

create database if not exists db_test; -- 如果db_test数据库不存在,就创建它

mysql 图书馆er图 mysql创建图书馆的数据库_mysql_06

创建数据库时指定编码集

对于编码集这个名词,我也不是太明白,不过我们要明白,当创建数据库时,有时候可能不支持中文,这时候就需要我们来指定编码集了
当我们不指定编码集的时候,它采用默认的

查看数据库编码集

show create database db_test;

mysql 图书馆er图 mysql创建图书馆的数据库_数据仓库_07

指定编码集

create database db_fmsc character set utf8; -- 指定以utf8编码集进行创建

mysql 图书馆er图 mysql创建图书馆的数据库_数据库_08

修改编码集

我们创建的数据的编码集也是可以修改的,

create database db_fmsc2;
show create database db_fmsc2;
alter database db_fmsc2 character set utf8;

mysql 图书馆er图 mysql创建图书馆的数据库_database_09

删除数据库

我们将不要数据库进行删除

drop database if exists db_fmsc; -- if exists 也可以没有,不过要保证数据库 db_fmsc 存在

mysql 图书馆er图 mysql创建图书馆的数据库_mysql 图书馆er图_10