1.数据库
就是存储数据库的仓库
之前怎么存储数据?
1.定义变量,类似局部变量,随着方法调用而结束;
2.容器存储:
数组--->查询快,增删慢
集合--->单列集合Collection/双列集合Map
长度可变,
List<Student>
字符串缓冲区:StringBuffer/StringBuilder
最终可能需要将字符串缓冲区类型---String
3.IO流
Input
Output
可以将内容存储磁盘上 文件中 (读写复制---很耗时)
4.数据库来存储数据
执行效率高
底层有树结构在里面
数据库支持 "事务",来解决 业务中存在问题 "转账操作"!
即使关机了,数据永久保存!
2.数据库的分类
关系型数据库:
书写sql语句 (Structure Query Language:结构化查询语言)
oracle :收费 大型公司企业居多(西安银行,汇丰,神州数码...)
买数据库,买oracle第三方服务...
mysql :免费 中小型公司使用居多
sqlserver:跟.net平台兼容性比较好一些
sqllite: 轻量级的关系数据库,嵌入式里面居多
mariaDB:跟mysql同级别的
非关系型数据库:NoSQL数据库
键值(Key-Value)存储数据库 : redis 做数据缓存------ 分布式系统架构 使用redis 分布式缓存
文档类型数据库:
MongoDb
3.mysql的基本语法
1.每条语句以分号结尾,如果在 SQLyog 中不是必须加的。
2.SQL 中不区分大小写,关键字中认为大写和小写是一样的
3.3 种注释
--空格 :单行注释
/* */:多行注释
#:特殊注释
4.数据库的DDL语句(数据库的定义语句)之库的操作
创建库
create database 库名;
判断数据库是否已经存在,不存在则创建数据库
create database if not exists 库名;
创建数据库并指定字符集
create database 数据库名 character set 字符集;
查看所有的数据库
show databases;
查看正在使用的数据库
select databases();
使用/切换数据库
use 数据库名;
修改库的字符集
alter database 库名 default character set 字符集名称;
删除库
drop database 库名 ;
判断数据库是否已经存在,如果存在这个库删除
drop database if exists 库名 ;
5.数据库DDL语句(数据库定义语句)建表,修改表,查询表,删除表
mysql常见的数据类型
int :整数类型 默认最大长度11位字符,给int类型的数据的时候,当前存储的是值的真实长度
int(字符数): 整数类型, 给int(3)这个值的时候,实际存储3位,但是赋值的时候不够3位 (使用很少)
id字段 1-----int(3) -------------------001
char(m) :固定长度的字符串,无论使用几个字符都占满全部,M为 0~255 之间的整数
varchar(m) :可变长度的字符串,使用几个字符就占用几个,M为 0~65535 之间的整数
date:仅仅是日期类型
datetime:日期+时间类型
timestap:时间戳 (如系统瞬时时间 :2021-5-11 20:50分)
double:小数类型
double(几位数,小数点后保留的位数)
clob:大字符类型
支持 "大文本"
blob:大字节类型
最大支持4G
建表之前,必须使用哪个库
use 库名;
create table 表名(
字段名称1 字段类型1,
字段名称2 字段类型2,
...
...
字段名称n 字段类型n
) ;
查询当前库中有哪些表
show tables ;
查看表的结构
desc 表名;
修改表的字段名称
alter table 表名 change 旧字段名称 新的字段名称 以前的字段数据类型;
修改表的字段类型 modif
alter table 表名 modify 字段名称 新的字段类型 ;
修改表:给表中添加一个新的字段
alter table 表名 add 字段名称 字段类型;
复制一张表
create table 新表名 like 旧表名;
删除表
drop table 表名;
判断表是否存在,如果存在则删除表
drop table if exists 表名;