MySQL 基础
一.数据库入门
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 表名;
删除操作非常危险 ,慎用
错误删除表引起的后果可能比删除整个数据库后果更大
删除一个表 错误不容易发现 越积越多 后果越严重