一.数据库入门
1.概念
数据库 :是一类软件,可以管理数据(能够对数据进行保存和增删改查).
数据库分为关系型数据库 和 非关系型数据库
关系型数据库 表格形式组织数据 比如 : MySQL
非关系数据库 往往按照键值对或文档 组织数据 比如:Redis MongoDB HBase
|--------|-------------|------------------------|
|        | 关系型数据库      | 非关系型数据库                |
| 使用SQL  | 是           | 不强制要求,一般不基于SQL实现       |
| 事务支持   | 支持          | 不支持                    |
| 复杂操作   | 支持          | 不支持                    |
| 海量读写操作 | 效率低         | 效率高                    |
| 基本结构   | 基于表和列,结构固定  | 灵活性比较高                 |
| 使用场景   | 业务方面的OLTP系统 | 用于数据的缓存、或基于统计分析的OLAP系统 |
实质开发中,一个复杂的系统(网站)背后往往有多种存储介质 关系和非关系型数据库搭配使用
MySQL 是一个'客户端-服务器'结构的程序
主动发起通信的一方,称为'客户端'
被动接受通信的一方,称为'服务器'
客户端给服务器发送的数据 称为"请求"(Request)服务器给客户端返回的数据 称为"响应"(Response)
客户端程序和服务器之间,数据交互的方式最主要通过"网络"通信
数据库存储数据的组织方式
1.数据库 database ->逻辑上的数据集合
一个mysql服务器上可以有多个这样的集合
2.数据表 table ->一个数据库还能存储不同的数据 每组数据都是用数据表来存储
二.数据库操作
1.创建数据库
create database 数据库名 charset utf8;
2.查看数据库
show databases;
3.选中数据库
use 数据库名; 数据库服务器有多个数据库,进行后面的表操作,就需要先指定你要操作哪个数据库
4.删除数据库
drop database 数据库名; 删除数据库是非常危险的操作
三.常用数据类型
1.数值类型
|--------------|------------|--------------------------------|---------------------------------|
| 数据类型         | 大小         | 说明                             | 对应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                      |
2.字符串类型
|----------------|----------------|-------------|----------|
| 数据类型           | 大小             | 说明          | 对应java类型 |
| VARCHAR (SIZE) | 0-65,535字节     | 可变长度字符串     | String   |
| TEXT           | 0-65,535字节     | 长文本数据       | String   |
| MEDIUMTEXT     | 0-16 777 215字节 | 中等长度文本数据    | String   |
| BLOB           | 0-65,535字节     | 二进制形式的长文本数据 | byte[] |
3.日期类型
|-----------|-------|-------------------------------|------------------------------------|
| 数据类型      | 大 小   | 说明                            | 对应java类型                           |
| DATETIME  | 8 字 节 | 范围从1000到9999年,不会进行时区的 检索及转换。  | java.util.Date、 java.sql.Timestamp |
| TIMESTAMP | 4 字 节 | 范围从1970到2038年,自动检索当前时 区并进行转换。 | java.util.Date、 java.sql.Timestamp |
四.数据表操作
数据表存储数据的基本单位
针对数据的表操作,一定要先中数据库
1.创建表
create table 表名(
类名 类型,
类名 类型,
.....
);
create table 表名(类名 类型, 类名 类型, .....);
2.查看表
show tables;
3.查看表结构
desc table 表名;
4.删除表
drop table 表名;
删除操作非常危险 ,慎用
错误删除表引起的后果可能比删除整个数据库后果更大
删除一个表 错误不容易发现 越积越多 后果越严重