文章目录
- 数据库的介绍
- 什么是数据库
- 数据库分类
- MySQL的介绍
- 数据库的基本操作
- 数据库的操作
- 创建数据库
- 查看所有数据库
- 选中指定的数据库
- 删除数据库
- 常用数据类型
- 数值类型
- 字符串类型
- 日期类型
- 表的操作
- 创建表
- 查看指定数据库下的所有表
- 查看指定表的结构
- 删除表
- 小练习
数据库的介绍
什么是数据库
数据库是“一类软件”,这样的软件能够针对数据进行管理(增删改查)
存储数据用文件就可以了,为什么要做数据库呢?
文件保存数据有以下几个缺点:
- 文件的安全性问题
- 文件不利于数据查询和管理
- 文件不利于存储海量数据
- 文件在程序中控制不方便
数据库存储介质:
- 磁盘
- 内存
数据库分类
数据库大体可以分为关系型数据库和非关系型数据库。
关系型数据库:对于存储的数据,格式上有严格要求。类似于excle表格的方式来存储的。例如:MySQL,Oracle,SQL Server,SQLite.
非关系型数据库:存储方式比较灵活,相比于关系型数据库,功能更少。有事性能更快,同时也更好的能适应分布式环境(高并发,大数据,分布式,微服务)
关系型数据库和非关系型数据库的区别:
MySQL的介绍
MySQL是一个客户端服务器结构的程序。
客户端(client):主动发送数据的一方
服务器(server):被动接受数据的一方
请求(request):客户端给服务器发送的数据
响应(response):服务器给客户端返回的数据
服务器是存储数据的本体。数据是存储在主机的硬盘上的。一个计算机组成部分主要是CPU,存储器,输入设备,输出设备。遵循冯诺依曼体系结构。
接下来我们来说一下存储器。
存储器分为内存和外存两种。
内存指的是是运行内存。
外存则是硬盘,软盘,U盘,光盘等。
内存和外存的区别:
- 内存上读写数据的速度快,外存的读写速度慢
- 内存空间比较小,外存空间比较大
- 内存比外存贵
- 内存的数据是“易失”断电之后,数据就会丢失。外存的数据是“持久”的,断电之后,数据还在
数据库存储的数据,存储空间很大,持久化保存。
关系型数据库具体组织数据的格式/结构
数据库的基本操作
数据库的操作
指的是MySQL服务器上存在的多个数据集合。
创建数据库
create database 数据库名;
这样,我们就创建好了一个数据库。create database都是SQL中的关键字,有特定含义的单词。这里的关键字是不区分大小写的。
在创建数据库的时候,还可以指定数据库的字符集。例如使用utf8字符集:
create database student charset utf8;
对于汉字来说,utf8一般是三个字节
在创建数据库的时候,我们可以加上这个:
if not exists
意思是如果存在就不创建了,不存在才真创建。例如:
我们可以看到,只是报了一个警告。
查看所有数据库
show databases;
注意databases是复数形式。
选中指定的数据库
一个MySQL服务器上,数据库可以有很多个。要进行操作,就需要先确定是要针对那个数据库进行。
use 数据库名;
后续操作都是针对这个数据库来展开的。
删除数据库
drop database 数据库名;
可以看到,Java106已经被删除。
在我们实际操作删除数据库的时候,一定要非常注意。数据库的删除的影响是非常大的。所以在操作删除数据库的时候一定要做到谨慎。
常用数据类型
数值类型
在MySQL的数据类型中,数据库里的表,每一个列都是带有类型的(例如整数,浮点数,字符串)。(所有行的对应列存的数据都是一类的)
以上数据类型不区分大小写。
值得注意的是:在单/双精浮中。M表示有效数字的位数。D表示小数点后保留几位。但是因为浮点数在内存中的存贮方式,会导致小数的存储不精确。所以我们有了decimal数据类型来精确表示浮点数。但是decimal牺牲了存储空间,牺牲了运算速度。
如图所示,常用的类型有:int,double,decimal
字符串类型
varchar是最常用的表示字符串的类型。带有一个参数,约定了存储的最大空间。例如:varchar(128)表示这个列最多存128个字符。根据实际需求,来决定设置多长。
text 和mediumtext 更适用于更长的字符串。
blob:主要存二进制数据。
(小tip:如何区分文件是文本还是二进制?使用记事本打开文件,如果是乱码就是二进制,如果可以看懂就是文本。)
日期类型
TIMESTAMP中,产生随机数中。有一个伪随机(随机种子,只要种子一样,就需要让每次程序启动都设置个不同的随机种子。典型的就是“时间戳”)
计算机中产生的随机数,不一定是真随机。大多是伪随机(通过一系列复杂的数学公式,针对某个数字进行数学变换,每变换一次,就会得到一个新的数字。这个数字和之前的数字相比,看起来毫无关联。并且生成的数字足够多,概率分布也是均匀的。)
表的操作
需要操作数据库中的表时,需要先使用该数据库
use db_test;
创建表
create table 表名(列名 类型,列名 类型...);
注意:
- 注意参数的格式书写。
- varchar(20);此处的单位是字符,不是字节。(一个字符可能是多个字节。)
- 同一个数据库中,不能有两个表,名字相同。如果真的想使用,可以给表名/列名加上反引号
- comment表示注释,这个注释只能在创建表的时候使用,其他时候用不了。
查看指定数据库下的所有表
前提是已经选中了数据库。选中哪个数据库,就能看到那些数据表。
show tables;
查看指定表的结构
desc 表名;
删除表
drop table 表名;
值得注意的是,删除表和删除数据库的操作都是非常危险的。要谨慎!!!