接下来的几篇博客将介绍MySQL的基础知识和相关使用方法,然后再回到Java,介绍JavaEE的知识
受硬件的技术影响,我们不可能将所有的文件存储在计算机的内存中。并且,我们还需要考虑存储的安全问题,存储数据的增删查找的效率问题等。而数据库是用来管理海量数据的一款软件
由关系模型(二维表格模型)来组织数据,常见的实现关系型数据库的软件有
没有关系,可分为如下类别:
| 数据类型 | 大小 | 对应JAVA中的类型 |
|---|---|---|
| bit(1-64) | 指定的位数,默认是1 | boolean |
| tinyint | 1 | byte |
| smallint | 2 | short |
| int | 4 | int |
| bigint | 8 | long |
| float(长度,位数) | 4 | float |
| double(长度,位数) | 8 | double |
| decimal(长度,位数) | 长度和位数最大值加2 | bigdecimal |
| numeric(长度,位数) | 长度和位数最大值加2 | bigdecimal |
| varchar(长度) | 0-65536 | String |
| text | 0-65535 | String |
| mediumtext | 0-16777215 | String |
| blob | 0-65535 | byte[] |
| datetime | 8 | java.util.Date,java.sql.Timestamp |
| timestamp | 4 | java.util.Date,java.sql.Timestamp |
需要注意的是,MySQL中支持unsigned,也就是无符号数,但是并不支持,因为也许会引发bug
需要注意的是,MySQL中的代码不区分大小写,我个人更倾向于小写,而和其他的编程语言一样,在每个代码的结束都有;
show databases;
可以显示当前用户底下有哪些数据库
create database 数据库名字;
由于不能创建同名的数据库,我们用以下语法可以进行判定系统中有没有我们要创建的数据库,如果没有就创建
create database if not exists 数据库名字;
在之前的博客中讲到不同的语言有不同的编码字符集,而不同的字符集对各种语言的支持不一样,例如ascii码不支持中文,而我们可以在创建数据库时指定要使用的字符集
create database 数据库名字 character set utf8mb4;
我们只能对单一的数据库进行操作,在相关代码执行前,应该先选中我们要使用的数据库
use 数据库名;
⚠️ 这是一个非常危险的操作,网上报道过程序员删库跑路被判刑的相关新闻,因此在公司中操作一定要小心谨慎
drop database 名字
和创建数据库一样,我们也可以判定一下要删除的数据库存不存在
drop database if exists 名字;
有了数据库,我们就可以选中数据库,在其中创建表
需要注意的是,MySQL和C,java不同,数据的类型要放到内容的后面
create table 表名字(表头1 类型,表头2 类型....);
和查看所有数据库类似
show tables;
我们可以通过如下代码查看表的表头名,类型,是否允许为空,索引类型,默认值,扩充
desc 表名;
我们可以用comment给表中增加字段说明
create table 表名字(表头1 类型 commit xxx,表头2 类型....);
和删除数据库的操作相同
drop table 表名
也同样可以进行if exists的操作