专栏简介 :MySql数据库从入门到进阶.
题目来源:leetcode,牛客,剑指offer.
创作目标:记录学习MySql学习历程
希望在提升自己的同时,帮助他人,,与大家一起共同进步,互相成长.
学历代表过去,能力代表现在,学习能力代表未来!
前言
1.初识数据库
1.1 数据库概述
1.2 数据库分类
1.3 数据库是如何存放数据的
1.4 什么是SQL
2.常用数据类型
2.1 数值型
2.2 字符串类型
2.3 日期类型
2.4 NULL
3.数据库基本操作
3.1操作数据库
3.2 操作表
总结
本文主要介绍数据库基本知识及MySql基本操作,为之后的数据库进阶做好铺垫.
数据库: DateBase(DB)
概念:数据库是按照数据结构来组织.存储和管理数据的仓库.
作用:储存数据 管理数据.
存储介质: 硬盘 内存
随着科技的不断发展, 日常生活中涉及到数据库的场景数不胜数, 例如我们每天早晨查看余额宝收益就是数据库在后台为我们读取数据.
传统数据存储与数据库的区别: 过去我们使用Excel等多种文件保存数据感觉也很便捷那么为什么要使用数据库呢?
因为数据库中可以存放海量信息,允许多人共同使用数据且安全性高.通俗来讲, 如果Excel是移动硬盘那么数据库就是网盘.
文件保存有以下几个缺点:
- 文件安全性问题.
- 文件不利于查询和管理.
- 文件不利于存储海量数据.
- 文件在程序中控制不方便.
关系型数据库 SQL(Structure Qury Language )
- MySql, Oracle, Sql Sever, DB2 ,SQLite
- 关系数据库每个表由一个名字标识, 每个表包含带有列名的列, 和记录数据的行.
- 主键是数据库中重要的概念,用来标识数据的唯一性.
非关系型数据库 NO SQL(Not Only SQL)
- Redis ,MongoDB
- 数据以对象的形式存储在数据库中,而对象之间的关系由每个对象的属性来决定.
数据库有很多种类, 日常使用中涉及最宽泛的就是关系型数据库.
关系型数据库由多个表组成, 类似于Excel, Excel就是由一张一张的二维表组成, 每张表都由行和列组成. 不同的是关系型数据库中每个表都是有联系的.
关系型数据库 = 每张表+各个表之间的联系.
因此学习关系型数据库我们需要重点掌握的两点:
- 多张表中每一张表的结构
- 个表之间的联系.
数据库中存放着数据, SQL就是用来操作数据库中数据的工具.
就好比挖米饭, 数据库中的数据就是米, 想要把米挖出来需要使用勺子, 而SQL就是勺子.
现在我们就可以简单明白支付宝的工作原理了, 用户存入的钱相当于数据库中的数据, 用户对钱的操作相当于使用SQL来操作数据, 只不过这个过程用户看不到都是在支付宝后台来完成, 用户只能看到查询结果.
数据类型 | 大小 | 说明 | 对应java类型 |
bit(M) | M指定位数 默认为1 |
二进制数 M范围1-64 存储数值范围 0-2^M-1 |
Boolean |
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 | 双精度 (精确数值) | BigDecimal |
numeric(M,D) | M/D最大值+2 | 和decimal一样 | BigDecimal |
数据类型 | 大小 | 说明 | 对应java类型 |
varchar(size) | 0-65535 字节 | 可变长字符串 | String |
text | 0-65535 字节 | 长文本数据 | String |
mediumtext |
0-16 777 215 字节
|
中等长度文本数据 | String |
blob | 0-65535 字节 | 二进制形式的长文本数据 | String |
数据类型 | 大小 | 说明 | 对应java类型 |
timestamp | 4 字节 | 范围 1970-2038 年 自动检索当前时区并转换 |
java.util.Date java.sql.Timestamp |
datetime | 8 字节 | 范围 1000-9999 年 不会进行时区的检索和转换 |
java.util.Date java.sql.Timestamp |
- 没有值,未知
- 不要使用null进行计算
1.创建数据库
create database 数据库名;
2.删除数据库
drop database 数据库名;
3.使用数据库
use 数据库名;
4.查看数据库
show databases;
操作表之前需要先使用该数据库
use 数据库名;
1. 创建表
create table 表名(数据名 数据类型,数据名 数据类型......)
2. 查看表的结构
Tips: 该操作只能查看表的结构, 不能查看表中数据.
desc tables;
3. 查看表的个数
show tables;
4. 删除表
drop table 表名