1. 数据库的基本认识
1.1 什么是数据库
专家们设计出更加利于管理数据的软件——数据库,它能更有效的管理数据。数据库可以提供远程服务,即通过远程连接来使用数据库,因此也称为数据库服务器。
1.2 数据库的分类
数据库可以大体分为:关系形数据库(eg:mysql)和非关系型数据库(eg:radis)
1.3 数据库的组成结构
- 整体结构
整体结构是客户端-服务器结构,数据库客户端和服务器通过网络来连接.客户端和服务器可以在同一台主机上,也可以在不同的机器上,在日常开发中,第二种较为常见.
- 客户端(client):主动发起请求的一方
- 服务器(server):被动接收请求的一方
- 请求(request):客户端主动发送给服务器的数据
- 相应(response):服务器给客户端返回的数据
- 分布式系统
在我们日常开发中,大部分的服务器都是给多个客户端提供服务(也有专属服务器,但是不多),服务器很有可能出现崩溃的情况,这是为了不给用户带来损失,我们便引出了分布式系统,说的直白一点就是不止有一台服务器在为用户提供服务,一台服务器挂掉其实问题也不大.
1.4 数据库的组织形式
服务器->数据库->数据表->行->列
2. 数据库的操作
-
显示当前数据库
show databases;
-
创建数据库
create database 数据库名
eg: 创建一个名为test1的数据库
create database test1;
说明:
当书数据库没有指定字符集和校验规则时,系统默认使用字符集utf8,这个字符集特殊的地方就是不包含emoji表情
[注意]
- 如果数据库中已经有了该数据库,则不创建该数据库,否者创建.
- 如果数据库名字与mysql关键字重合的时候,则使用反引号`引起来.
-
使用数据库(选中数据库)
use 数据库名
eg:选中test1
use test1;
-
删除数据库
drop database 数据库名
eg: 删除test1
drop database test1;
[说明]
- 删除数据库是一个危险操作,操作时候需要谨慎
- 删除数据库之后,里面的表和数据全部被删除
3. 常用数据类型
3.1 数据类型
分为整形和浮点型
数据类型 | 大小 | 说明 | 对应Java类型 |
---|---|---|---|
bit(m) | m指定位数,默认为1 | 二进制数字,m范围从1~64 | boolean |
tinyint | 1字节 | byte | |
smallint | 2字节 | short | |
int | 4字节 | int | |
bigint | 8字节 | long | |
float(m,d) | 4字节 | 单精度,m指定长度,d指定小数位数 | float |
bouble(m,d) | 8字节 | double | |
decimal(m,d) | m,d最大值+2 | 双精度,m表示长度,d表示小数位数.精确数值 | |
numeric(m,d) | m,d最大值+2 | 的decimal一样 |
[说明]
- decimal相比于float和double数值是精确的值,没有小数尾数的偏差,自然他的计算需要花费更多的时间.
- 在我们日常开发中,常用的数据类型,整数类型int,浮点类型decimal(m,d).
3.2 字符串类型
数据类型 | 大小 | 说明 | 对应Java类型 |
---|---|---|---|
varchar(size) | 0~65535字节 | size为字符串长度,长度可变 | String |
text | 0~65535字节 | 长文本数据 | String |
mediumtext | 0~16777215字节 | 中等长度文本数据 | String |
blob | 0~65535字节 | 二进制形式的长文本数据 | byte[] |
[注意]
- size代表的是字符串的长度,不是字节数.
- varchar的大小为底层自适应,但是不超过规定的最大容量.
- 中等长度文本可以用来储存更长的文本,但是增删查改的效率相对较低
- 在日常开发中,一般用varchar(size)比较多.
3.3 日期类型
数据类型 | 大小 | 说明 |
---|---|---|
datetime | 8字节 | 1000~9999年,不会进行时区的检索和转换 |
timestamp | 4字节 | 1970~2038年,自动检索当前时区并进行转换 |
[说明]
- 第二个我们叫时间戳,其内部其实存储的是一个整数,只不过通过时间的转换对时间进行了格式化.
- 在日常开发中,一般用datetime.
4. 表的操作
-
需要对数据库中的表进行操作的时候,必须先选中数据库.比如对test数据库进行表操作.
use test
-
展示表
show 表名,eg:show tables
展示test数据库中的所有表.
-
查看表的结构
desc 表名,eg:desc emp;
这些内容包括:有哪些列,都叫啥,啥类型,以及有啥注意的.
- 创建表
create table 表名 (列名1 数据类型,列名2 数据类型…);
实例:
create table test(id int,name varchar(5),age int,sex varchar(2));
- 删除
drop table 表名;
实例:
drop table test;