目录
数据库介绍
什么是数据库
数据库的分类
1. 数据库的操作
创建数据库
显示数据库
使用数据库
删除数据库
2. 表的操作
创建表
删除表
3. 常用数据类型
插入数据
查询数据
从本篇起就又要开始新的篇章了,数据结构初级阶段的就告一段落了,等把后面的JavaEE初级阶段学习完,又会回到数据结构进阶部分。
本章开始就是主打MySQL了。
MySQL是个啥?其实就是个数据库,那么数据库又是个啥?
首先来介绍以下什么是数据库。
数据库简单来说就是用来存储文件的,如何存储又要牵扯到很多这里就不展开了,可以参考:
数据库发展史 - 知乎 (zhihu.com)
随着时代的发展,大部分数据都是存储在文件当中的,那为什么还要弄个数据库?
对比以下优缺点:
文件保存数据有以下几个缺点:
数据库中的数据一般存储在内存和磁盘中。
数据库大体可以分为 关系型数据库 和 非关系型数据库
关系型数据库与非关系型数据库的 区别:
关系数据库 | 非关系型数据库 | |
使用SQL | 是 | 不强制要求,一般不基于SQL实现 |
事务支持 | 支持 | 不支持 |
复杂操作 | 支持 | 不支持 |
海量读写操作 | 效率低 | 效率高 |
基本结构 | 基于表和列,结构固定 | 灵活性比较高 |
使用场景 | 业务方面的OLTP系统 | 用于数据的缓存、或基于统计分析的OLAP系统 |
关于数据库如何安装等等,我这里就不过多介绍了,我直接抄一篇博客,链接如下:
Windows安装mysql详细步骤(通俗易懂,简单上手)_华夏之威的博客-CSDN博客https://blog.csdn.net/weixin_43423484/article/details/124408565而我们主要学习的就是MySQL,因为它开源,免费!!!
接下来开始进入正题,数据库如何操作的。
MySQL服务器中的数据库可以有很多个,分别存储不同的数据,想要将数据存储到数据库中,首先要创建一个数据库,我们来看看如何创建一个数据库:
首先登陆我们的数据库:
第二步创建一个数据库,语法格式:
create database 【数据库名称】【库选项】
库选项主要就一些字符集,引擎什么的,这里就不多介绍,需要的话可以去查。
java就是数据库名称,字符集设置为utf-8 后面添加数据时,就可以添加汉字了。
既然创建了,我们可以查看我们创建的数据库是否存在MySQL服务器中,语法格式如下:
show databases;
java雀氏已经存在了,里面有的是我自己创建的,也有是系统自带的。
既然创建了,那就来用用看,语法格式如下:
use 数据库名称;
数据中系统提示的很多单词相信大家都认识,我也就不介绍了。
这样我们就进入到了java这个库中了,我们再来看看库中有些啥:
嘿嘿,啥也没有。
这一步操作非常危险啊,除非有需要,不然千万不要进行这一步操作,不然小手一点,分分钟让老板损失上百万;但是我们的数据库啥也没有,我们一次性删爽来。
语法格式如下:
drop database 数据库名称;
再来看看,服务器中是否还存在;
只有10行了,雀氏删除成功了;还是得提醒以下,千万不要手欠删库啊,分分钟丢失工作。
我们先前创建了一个数据库名叫java的,库中的内容啥也没有;数据库中存放的就是表了,emoty 指的就是表,所以这一部分就是如何去创建表。
语法格式:
create table 表名( 字段名 字段类型(属性), 字段名 字段类型(属性),.......)【表选项】
这里面的我们一 一来解释,表选项和前面的一样,也是指字符集,存储引擎,校对集。
字段名就是指表的列名;字段类型就是指数据类型;
属性指的是对字段的某些约束条件等等。
我们拿个图来看看:
从左往右开始,Field 和 Type 翻译 过来就知道是字段和类型的意思;
Null 确定该字段是否为空,Key指的是索引类型;Default 指的是默认值; Extra 表示扩充
其实可以直接翻译以下就懂了。
这里涉及到查看表结构的语法:
desc 表名;desc 对应的单词就是description 【后面还有一个关键字也是desc】
有创建就有删除,对应的语法如下:
drop table 表名 ;
类似于删库,好吧就是一个语法。
同样删表也是个非常危险的操作,除非有需要不然不要轻易尝试,分分钟离职;蹭现在我们删爽来:
这就ok了,还是提醒以下啊,千万不要手欠删表,不然真的就g了。
一天一个离职小技巧 ~~
介绍了创建表和删除表,但是我们还是没有开始插入数据,在讲插入数据之前我们得对数据类型进行一个了解:
无论数据类型,都得贴近我们的生活,不会太离谱,本身数据库的目的就是存储数据的,正常而言数据就那么几中类型;和Java、C一样 都是有整型的浮点型的,但是还是略有区别的。
从整型和浮点型开始介绍
整型和浮点型:
数据类型 | 大小 | 说明 | 对应java类型 |
BIT[ (M) ] | M指定位 数,默认 为1 |
二进制数,M范围从1到64, 存储数值范围从0到2^M-1 |
常用Boolean对应BIT,此时 默认是1位,即只能存0和1 |
TINYINT | 1字节 | Byte | |
SMALLINT | 2字节 | Short | |
INT | 4字节 | Integer | |
BIGINT | 8字节 | Long | |
FLOAT(M, D) | 4字节 | 单精度,M指定长度,D指定 小数位数。会发生精度丢失 |
Float |
DOUBLE(M, D) |
8字节 | Double | |
DECIMAL(M, D) |
M/D最大 值+2 |
双精度,M指定长度,D表示 小数点位数。精确数值 |
BigDecimal |
NUMERIC(M, D) |
M/D最大 值+2 |
和DECIMAL一样 | BigDecimal |
当然啦,MySQL和c语言类似,数值类型可以指定为无符号(unsigned),表示不取负数。
如果当我们int都存不下去了,就换一个类型,没必要去纠结使用unsigned 和 signed ,signed都存不下去,unsigned 大概率也存不下去。
字符串类型
数据类型 | 大小 | 说明 | 对应java类型 |
VARCHAR (SIZE) | 0-65,535字节 | 可变长度字符串 | String |
TEXT | 0-65,535字节 | 长文本数据 | String |
MEDIUMTEXT | 0-16 777 215字节 | 中等长度文本数据 | String |
BLOB | 0-65,535字节 | 二进制形式的长文本数据 | byte[] |
这没什么好介绍的,就只需要认识一个 blob 是存储二进制的;要用到时,百度即可。
日期类型
数据类型 | 大 小 |
说明 | 对应java类型 |
DATETIME | 8 字 节 | 范围从1000到9999年,不会进行时区的 检索及转换。 |
java.util.Date、 java.sql.Timestamp |
TIMESTAMP | 4 字 节 | 范围从1970到2038年,自动检索当前时 区并进行转换。 |
java.util.Date、 java.sql.Timestamp |
和字符串一样,不会比较,不会添加,没关系,要用时直接百度。
等会我也来演示以下。
到现在,我们就可以开始进行插入数据了。
语法格式:
insert into 表名 value(值1,值2......);【单行插入】
insert into 表名 values(值1,值2......),(值1,值2......);【多行插入】
我们用多行插入的语法去插入一行记录也是可以滴!
示例:
一行插入没问题,我们再来看看多行插入:
既然插入欧克,那么我们再来看看服务器中是否已经存在我们添加的数据:
语法格式:
select * from 表名;【这是全列查询】
这种查询,真正工作时,并不推荐,公司里的数据不同于我们自己写的,他们可能动则就上几十万条数据,我们一查带宽直接崩了,所以这条查询语句也非常危险!!
我们来看看结果如何:
的确能够查询出表中的数据!
当然,还有其他很多查询语句,今天就先到这里,其他的留给后面再细说,本章就到此为止,先对MySQL有部分的了解!