存储数据用文件就可以了,为什么还要弄个数据库?
文件保存数据有以下几个缺点:
数据库存储介质:
为了解决上述问题,专家们设计出更加利于管理数据的软件——数据库,它能更有效的管理数据。数据库可以提供远程服务,即通过远程连接来使用数据库,因此也称为数据库服务器.
数据库是一个软件,它能够组织大量的数据(数据一般在磁盘上),因此要依赖于数据结构.
有人问:
数据多了会不会报表??
答案:当然会,因为数据都是存到磁盘上的,如果数据特别多,超出磁盘容纳的上限,此时就无法继续写入数据了。因此可以根据数据的重要情况,决定是定期清理还是定期备份。还可以使用分布式的方式,针对数据库进行 分库 分表,使用多台机器共同保存所有的数据集合。
数据库大体可以分为 关系型数据库 和 非关系型数据库.
数据库详细安装教程
对于数据库的安装,要安装的有客户端以及服务器,当下载安装包后其实这两个都是已经下载好的.客户端在电脑的开始中找到MySql文件夹中有一个Unicode字符编码的客户端去使用.
数据库的使用可以在它的客户端中使用,也可以在cmd窗口中使用,若在cmd窗口中使用,则需要配置环境,在数据库详细安装教程中有方法.当然在数据库使用时要保证服务器当中的数据库是正在运行的.
注:databases是复数形式
show databases;
语法:
CREATE DATABASE [IF NOT EXISTS] db_name [create_specification [,
create_specification] ...]
create_specification:
[DEFAULT] CHARACTER SET charset_name
[DEFAULT] COLLATE collation_name
说明:
示例:
1.创建名为 test 的数据库
create databse test;
2.如果系统没有 test 的数据库,则创建一个名叫test的数据库,如果有则不创建.
create database if not exist test;
3.如果创建的数据库名字是数据库中的关键字,则可以在数据库名两边加"`"符号,例如:
示例:
use 数据库名;
只有使用数据库,往后的操作都是对该数据库进行操作.
语法:
drop databse test;
或者
drop database if exists test;
说明:
数据库删除以后,内部看不到对应的数据库,里边的表和数据全部被删除
说明:SQL语言中没有数组类型.
分为整型和浮点型:
数据类型 | 大小 | 说明 | 对应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 |
数据类型 | 大小 | 说明 | 对应java类型 |
---|---|---|---|
VARCHAR (SIZE) | 0-65,535字节 | 可变长度字符串 | String |
TEXT | 0-65,535字节 | 长文本数据 | String |
MEDIUMTEXT | 0-16 777 215字节 | 中等长度文本数据 | String |
BLOB | 0-65,535字节 | 二进制形式的长文本数据 | byte[] |
数据类型 | 大小 | 说明 | 对应java类型 |
---|---|---|---|
DATETIME | 8字节 | 范围从1000到9999年,不会进行时区的检索及转换 | java.util.Date、java.sql.Timestamp |
TIMESTAMP | 4字节 | 范围从1970到2038年,自动检索当前时区并进行转换。 | java.util.Date、java.sql.Timestamp |
在表的操作前,首先要use 数据库.
use test;
desc 表名;
语法:
create table test(变量名、数据类型);
注意:括号里面的内容一定是先写变量名再写数据类型,如下图:
可以使用comment增加字段说明.
示例:
语法:
drop table 表名;
示例:
-- 删除 test 表
drop table test;
-- 如果存在 test 表,则删除 test 表
drop table if exists test;