数据库是“按照数据结构来组织、存储和管理数据的仓库”。是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。它并不是随意存储的,存储数据是有规则的,要不查询效率会很低,除了文本类型、整数类型还有像能存储图像、声音这样二进制数据的blob类型。

数据库存blob java 对应什么数据类型 数据库中blob类型_blob数据类型


数据库类型


  • 常见的有关系型数据库如Mysql,sqlServer,Access、Oracle等,它的主要特点是其内部采用库表结构,每一条记录可以记录多个数据类型的数据,可以通过任意字段来查询数据。
  • 常见的非关系型数据库有redis,nosql等,它的特点是数据全部由键值对(key/value)组成,获取数据一般只通过键(key)来获取。
  • 这里我们只讨论Mysql,基本数据库都大同小异,Mysql支持所有标准的SQL数据类型。


数据表字段类型


常见字段种类

字段类型

字符串类型

char,varchar,text,blob

数字类型

int,float,double,decimal

日期和时间类型

date,time,year,datetime,timestamp

  • 字符串类型:

类型

大小

用途

CHAR

0-255 bytes

定长字符串,定义CHAR(n),0

VARCHAR

0-65535 bytes

变长字符串,定义VARCHAR(n),0

BLOB

0-65 535 bytes

二进制字符串

TEXT

0-65 535 bytes

短文本字符串

  • 数字类型

类型

大小

范围(有符号)

用途

INT

4 byte

(-2 147 483 648,2 147 483 647)

整数

FLOAT

4 bytes

(-3.402 823 466 E+38,-1.175 494 351 E-38),0,(1.175 494 351 E-38,3.402 823 466 351 E+38)

单精度浮点数

DOUBLE

8 bytes

(-1.797 693 134 862 315 7 E+308,-2.225 073 858 507 201 4 E-308),0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308)

双精度浮点数

  • 日期和时间类型

类型

大小

范围

格式

用途

DATE

3bytes

1000-01-01/9999-12-31

YYYY-MM-DD

日期

TIME

3bytes

'-838:59:59'/'838:59:59'

HH:MM:SS

时间值或持续时间

YEAR

1bytes

1901/2155

YYYY

年份

DATETIME

8bytes

1000-01-01 00:00:00/9999-12-31 23:59:59

YYYY-MM-DD HH:MM:SS

日期和时间

TIMESTAMP

4bytes

从1970-01-01 00:00:00开始计算的秒数,比如到2020-11-24 13:00:00点是1606194000

YYYYMMDD HHMMSS

时间戳

理解了数据库里面的数据表字段类型,创建表时才能水到渠成。

数据库SQL语句操作


说明:    table_name 为数据表名     

              field1,field2...fieldname为数据表的字段旧名

              newname 字段新名字

  • 创建数据库
# 最简单的方式是:CREATE DATABASE test; # 也可以指定默认字符集CREATE DATABASE [IF NOT EXISTS] [[DEFAULT] CHARACTER SET ] ;
  • 创建数据表
# 关键字CREAT TABLECREATE TABLE table_name(# 创建一个自动增加auto_increment数值的id,作为基础的索引键id INT auto_increment PRIMARY KEY,# 创建一个变长为20的字符串类型varchar,不为空not null,唯一uniqueusername VARCHAR(20) NOT NULL UNIQUE,password VARCHAR(32) NOT NULL,email VARCHAR(32),privileges VARchar(10) NOT NULL,mobile VARCHAR(11),employtype VARCHAR(10)# 数据库引擎设置为innodb,默认字符集为utf-8)ENGINE=innodb DEFAULT CHARSET=utf8;
  • 更改数据表字段或者删除数据表字段
# 新增数据表字段ALTER TABLE  ADD   [约束条件] [FIRST|AFTER 已存在的字段名];ALT TABLE table_name ADD newname varchar(20) not null after fieldname2;# 修改字段类型ALTER TABLE  MODIFY  ALT TABLE table_name MODIFY filedname NEW;# 修改字段名字ALTER TABLE  CHANGE   ;ALTER TABLE table_name CHANGE fieldname newname varchar(20);# 删除字段ALTER TABLE  DROP ;ALTER TABLE table_name DROP fieldname;
  • 增删改查
# 增INSERT INTO table_name (field1, field2,...fieldN) VALUES( value1, value2,...valueN );# 删DELETE FROM table_name WHERE id = 1;# 改UPDATE table_name SET field1='value' WHERE id = 1;# 查SELECT field2,field3...fieldn FROM table_name where id = 1;

Mysql数据库支持的常用函数

  • 聚集函数
  • avg 取平均值
  • count 计数
  • max 最大值
  • min 最小值
  • sum 求和
  • 字符串函数
  • 合并字符串函数:concat(string1,string2,string3…)
  • 比较字符串大小函数:strcmp(string1,string2)
  • 获取字符串字节数函数:length(string)
  • 获取字符串字符数函数:char_length(string)
  • 字母大小写转换函数:
  • 大写:upper(x),ucase(x);
  • 小写lower(x),lcase(x)
  • 数学函数
  • 绝对值函数:abs(x)
  • 向上取整函数:ceil(x)
  • 向下取整函数:floor(x)
  • 取模函数:mod(x,y)
  • 随机数函数:rand()
  • 四舍五入函数:round(x,y)
  • 数值截取函数:truncate(x,y)
  • 时间日期函数
  • 获取当前日期:curdate(),current_date()
  • 获取当前时间:curtime(),current_time()
  • 获取当前日期时间:now()
  • 从日期中选择出月份数:month(date)
  • 从日期中选择出周数:week(date)
  • 从日期中选择出周数:year(date)
  • 从时间中选择出小时数:hour(time)
  • 从时间中选择出分钟数:minute(time)
  • 从时间中选择出今天是周几:weekday(date),dayname(date)