# 数据库分类
**关系型数据库**:(SQL)
- MySQL、Oracle、Sql server、DB2、SQLite
- 通过表和表之间、行和行之间的关系进行数据的存储。
**非关系型数据库**:(NoSQL)Not only
- Redis、MongoDB
- 通过对对象的存储进行数据的存储
# DBMS
数据库管理系统
- 数据库的管理软件,科学有效的管理数据、维护和获取数据。
- MySQL,数据库管理系统。
# 安装Mysql
建议安装.zip,不要安装二进制安装包。
# 基本命令
```sql
#连接数据库
mysql -uroot -p123456
#-u后接用户名, -p后接密码
-- 所有语句都是用;结尾
-- 单行注释
/*
多行注释
*/
show databases; -- 查看所有的数据库
use school; -- 切换使用的数据库
show tables; -- 查看数据库中所有的表
describe student; -- 显示数据库摸一个表中所有的信息
create database family; -- 创建一个数据库
exit -- 退出
DDL 数据库定义语言
DML 数据库操作语言
DQL 数据库查询语言
DCL 数据库控制语言
#############
CRUD, API
```
操作数据库 > 操作数据库表 > 操作数据库表数据
## 操作数据库
创建数据库
```sql
create database westos;
create database if not exists westos;
```
删除数据库
```sql
drop database westos;
drop database if exists westos;
```
使用数据库
```sql
use westos;
use school;
use `westos`; -- 数据库名称为关键字
select `user` form school;
show databases; -- 查看所有数据库
```
## 数据库的数据类型
> 数值
- tinyint 小数据 1byte
- smallint 小数据 2byte
- mediumint 中 3byte
- int 正常 4byte
- bigint 大 8byte
- float 浮点数 4byte
- double 双精度 8byte
- decimal 字符串形式浮点数 金融
> 字符串
- char 字符串 0~255
- varchar 可变字符串 0~65535 String
- tinytext 微型文本 2^8 - 1
- text 文本串 保存大文本 2^16 - 1
> 时间和日期
java.util.Date
- date YYYY-MM-DD 日期格式
- time HH:mm:ss 时间格式
- datetime YYYY-MM-DD HH:mm:ss 常用时间
- timestamp 时间戳 1970-01-01~
- year 年份
> null
没有值,不要使用null进行运算。
## 数据库的字段属性