精华内容
下载资源
问答
  • 表是由sql server 转 为mysql , 字符类型的的所有字段都是longtext类型 , 将所有的longtext转为varcher类型
  • mysql数据库字段类型的选择原则

    千次阅读 2016-06-08 21:14:09
    数据库类型的选择对数据库的性能影响很大 1 . 数据类型会影响存储空间的开销2 . 数据类型会影响数据查询性能所以当一个数据类型可以有多种选择多种类型的时候,应该优先考虑数字类型,其次是日期或二进制类型,最后...

    数据库类型的选择对数据库的性能影响很大
    1 . 数据类型会影响存储空间的开销

    2 . 数据类型会影响数据查询性能

    所以当一个数据类型可以有多种选择多种类型的时候,应该优先考虑数字类型,其次是日期或二进制类型,最后应该是字符类型。对于相同级别的数据类型,应该优先选择占用空间小的数据类型。
    原理:在对数据进行比较(查询条件,JOIN条件及排序)操作时:同样的数据,字符处理往往比数字处理慢,而且在数据库中,数据的处理是以页为单位,列的长度越小,数据类型占用的空间越小,利于性能的提升。

    下面是字段类型所占的字节大小

    这里写图片描述

    Tinyint,SmallInt,Mediumint,Int,Bingint该如何选择

    1 .从 0 到 255 的整型数据。存储大小为 1 字节。适合使用Tinyint

    2.从 -2^15 (-32,768) 到 2^15 - 1 (32,767) 的整型数据。存储大小为 2 个字节。适合使用smallint

    3.从 -2^31 (-2,147,483,648) 到 2^31 - 1 (2,147,483,647) 的整型数据(所有数字)。存储大小为 4 个字节。int 的 SQL-92 同义字为 integer。适合使用int

    4.从 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据(所有数字)。存储大小为 8 个字节。适合使用bigint

    char与varchar如何选择

    1.如果列中要存储的数据的长度差不多是一致的,则应该考虑char,否则应该考虑用varchar.

    2.如果列中最大数据的长度小于50Byte,则一般也考虑使用char(当然,如果这个列很少用,则基于节省空加你和减少I/O的考虑,还是可以使用varchar)

    3.一般不宜定义大雨50Byte的char类型列。
    注意:utf8每一个字符时3Byte

    decimal和float如何选择

    1.decimal用于存储精确数据,而float只能用于存储非精确数据,故精确数据最好使用decimal类型

    2.由于float的存储空间的开销一般比decimal小(精确到7为小数只需要4个字节,而精确到15位小数只需要8个字节)故非精确数据类型建议使用float

    时间类型如何存储

    1.使用int来存储时间字段的优缺点
    优点:字段的长度比datetime小
    缺点:使用不方便,需要函数进行转换
    限制:只能存储到2038-1-19 11:14:07 即2^32为2147483648

    2,需要考虑需要存储时间的粒度
    年 月 日 小时 分钟 秒 周

    展开全文
  • mysql数据库里有个type字段类型为int,但是项目中mybatis查询结果集里,使用map.get("type")获取,并用Integer强转时,报错,错误说明是long类型不能转为Integer。what?怎么会变成long类型了?后来查...

    最近在做项目的时候,发现一个问题,以及解决方法。分享出来供大家参考。

    在mysql数据库里有个type字段,类型为int,但是项目中mybatis查询结果集里,使用map.get("type")获取,并用Integer强转时,报错,错误说明是long类型不能转为Integer。what?怎么会变成long类型了?后来查了下,貌似mybatis偶尔会抽风,数据库里int类型的字段会时不时的被转成long或者int,所以强转就有问题了。

    那怎么办呢,有个思路,是不管什么类型,统统转为string类型,然后再解析为Integer或者Long。所以可以使用以下方法:

    Integer type = Integer.parseInt(map.get("type").toString());

    OK ,完美解决!有遇到相同问题的同学,可以参考。

    展开全文
  • Mysql修改字段名、修改字段类型

    万次阅读 多人点赞 2018-02-23 15:45:02
    mysql修改字段类型: --能修改字段类型、类型长度、默认值、注释 --对某字段进行修改 ALTER TABLE 表名 MODIFY COLUMN 字段名 新数据类型 新类型长度 新默认值 新注释; -- COLUMN可以省略 alter table table1 ...

    1 修改字段类型、字段名、字段注释、类型长度、字段默认值

    mysql修改字段类型:	 
    --能修改字段类型、类型长度、默认值、注释
    --对某字段进行修改
    ALTER  TABLE 表名 MODIFY [COLUMN] 字段名 新数据类型 新类型长度  新默认值  新注释;
     -- COLUMN关键字可以省略不写
    
    alter  table table1 modify  column column1  decimal(10,1) DEFAULT NULL COMMENT '注释'; -- 正常,能修改字段类型、类型长度、默认值、注释
    
    alter  table table1 modify column1  decimal(10,2) DEFAULT NULL COMMENT '注释'; 
    -- 正常,能修改字段类型、类型长度、默认值、注释
    
    mysql修改字段名:
    ALTER  TABLE 表名 CHANGE [column] 旧字段名 新字段名 新数据类型;	 
    alter  table table1 change column1 column1 varchar(100) DEFAULT 1.2 COMMENT '注释'; -- 正常,此时字段名称没有改变,能修改字段类型、类型长度、默认值、注释
    alter  table table1 change column1 column2 decimal(10,1) DEFAULT NULL COMMENT '注释' -- 正常,能修改字段名、字段类型、类型长度、默认值、注释
    alter  table table1 change column2 column1 decimal(10,1) DEFAULT NULL COMMENT '注释' -- 正常,能修改字段名、字段类型、类型长度、默认值、注释
    alter  table table1 change column1 column2; -- 报错 
    
    mysql> alter table white_user change column name nick_name  varchar(50) null comment '昵称'; -- 正确
    Query OK, 0 rows affected (0.02 sec)
    Records: 0  Duplicates: 0  Warnings: 0
    
    

    2 修改表名

    ALTER TABLE 旧表名 RENAME TO 新表名 ;
    
    mysql> show tables ;
    +-------------------+
    | Tables_in_db_test |
    +-------------------+
    | white_user   |
    +-------------------+
    1 row in set (0.00 sec)
    
    
    
    mysql> alter table white_user rename to white_user_new ;
    Query OK, 0 rows affected (0.00 sec)
    
    mysql> show tables ;
    +-------------------+
    | Tables_in_db_test |
    +-------------------+
    | white_user_new    |
    +-------------------+
    1 row in set (0.00 sec)

    3 修改表的注释

    ALTER TABLE 表名 COMMENT '新注释'
    
    mysql> alter table  white_user_new comment '新表-白名单表' ;
    Query OK, 0 rows affected (0.01 sec)
    Records: 0  Duplicates: 0  Warnings: 0
    
    mysql> show create table white_user_new ;
     CREATE TABLE `white_user_new` (
      `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
      `name` varchar(50) NOT NULL COMMENT '姓名',
      `created_time` datetime DEFAULT NULL COMMENT '创建时间',
      `updated_time` datetime DEFAULT NULL COMMENT '更新时间',
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COMMENT='新表-白名单表' 
    
    
    

    4

    在指定位置插入新字段

    ALTER TABLE 表名 ADD [COLUMN] 字段名 字段类型 是否可为空 COMMENT '注释' AFTER 指定某字段 ;
    --COLUMN关键字可以省略不写
    
    mysql> alter table white_user_new add column erp varchar(50) not null comment 'erp账号' after name ;
    Query OK, 0 rows affected (0.03 sec)
    Records: 0  Duplicates: 0  Warnings: 0
    --在name字段后面添加erp字段
    
    mysql> show create table white_user_new ;
    CREATE TABLE `white_user_new` (
      `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
      `name` varchar(50) NOT NULL COMMENT '姓名',
      `erp` varchar(50) NOT NULL COMMENT 'erp账号', 
      `created_time` datetime DEFAULT NULL COMMENT '创建时间',
      `updated_time` datetime DEFAULT NULL COMMENT '更新时间',
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COMMENT='新表-白名单表'      
    
    
    
    
    mysql> alter table white_user_new add position varchar(50) not null comment '岗位' after name ;
    Query OK, 0 rows affected (0.02 sec)
    Records: 0  Duplicates: 0  Warnings: 0
    --在name字段后面添加position字段。
    
    mysql> show create table white_user_new ;                                      
    CREATE TABLE `white_user_new` (
      `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
      `name` varchar(50) NOT NULL COMMENT '姓名',
      `position` varchar(50) NOT NULL COMMENT '岗位',
      `erp` varchar(50) NOT NULL COMMENT 'erp账号',
      `created_time` datetime DEFAULT NULL COMMENT '创建时间',
      `updated_time` datetime DEFAULT NULL COMMENT '更新时间',
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COMMENT='新表-白名单表'      
    
    
    
    mysql> alter table white_user_new add  mobile varchar(50) not null comment '手机号码' before position ;
    --报错,在position字段前添加mobile字段,不能使用before关键字
    

     

    5 删除字段

    ALTER TABLE 表名 DROP [COLUMN] 字段名 ;
    --COLUMN关键字可以省略不写
    
    mysql> alter table white_user_new drop column position ;
    Query OK, 0 rows affected (0.02 sec)
    Records: 0  Duplicates: 0  Warnings: 0
    
    mysql> alter table white_user_new drop erp ;
    Query OK, 0 rows affected (0.02 sec)
    Records: 0  Duplicates: 0  Warnings: 0
    
    mysql> show create table white_user_new ;                                      
    CREATE TABLE `white_user_new` (
      `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
      `name` varchar(50) NOT NULL COMMENT '姓名',
      `created_time` datetime DEFAULT NULL COMMENT '创建时间',
      `updated_time` datetime DEFAULT NULL COMMENT '更新时间',
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COMMENT='新表-白名单表'      
    
    
    
    

     

    更多企业内的技术应用和使用技巧,请移步至我的公众号【程序员实用技能】

    图片

    展开全文
  • java实体注解映射mysql数据库设置数据库字段类型以及时间格式 下面我们来说一下如何通过在java实体类注解设置数据库字段的类型 @SuppressWarnings(“serial”) @Entity @Table(name = “k_dailyWorkTasks”) public ...

    java实体注解映射mysql数据库设置数据库字段类型以及时间格式

    下面我们来说一下如何通过在java实体类注解设置数据库字段的类型

    @SuppressWarnings(“serial”)
    @Entity
    @Table(name = “k_dailyWorkTasks”)
    public class DailyWorkTasks extends BaseEntity {

    @Column(name = "dailyWorkTitle")
    private String dailyWorkTitle;
    
    @Column(name="dailyWorkContent",columnDefinition="TEXT")
    private String dailyWorkContent;
    
    @Column(name = "UserId")
    private String UserId;
    
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Column(name = "uploadTime")
    @Temporal(TemporalType.TIMESTAMP)
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private Date uploadTime;
    
    展开全文
  • MYSQL数据库 的 decimal 字段类型

    千次阅读 2017-06-14 17:13:59
    MYSQL数据库 的 decimal 字段类型
  • mysql数据库字段加密

    千次阅读 2018-01-09 12:46:38
    linux version: Centos7.3  ...最近两天,接到业务上一个需求,需要对表中的部分字段(比如手机号,email)进行加密,在查看mysql的相关资料后,发现需要对数据库中的部分字段加密,基本就只能从业务
  • mysql数据库修改字段类型

    千次阅读 2019-01-08 13:53:00
    修改字段类型: alter table表名 modifycolumn 字段名字 decimal(18, 4) ; 转载于:https://www.cnblogs.com/czlovezmt/p/10238589.html
  • mysql 数据库字段动态扩展

    千次阅读 2018-12-03 12:03:20
     当数据库中需要增加一个字段的时候,直接在数据库中增加,并修改相应的代码。  优点:操作简单,易懂  缺点:每增加一个字段都需要修改数据库表结构,修改代码。而且在一张大表进行操作的时候,还可能需要很长...
  • 字段类型是在定义模型时, 对每个 Column 的类型约定. 不同类型的字段类型在输入输出上, 及支持的操作方面, 有所区别. 这里只介绍 sqlalchemy.types.* 中的类型, SQL 标准类型方面, 是写什么最后生成的 ...
  • MYSQL数据库字段命名及设计规范

    万次阅读 2018-01-12 09:12:01
    1. 设计原则 ...简单来说,遵守3NF标准的数据库的表设计原则是:“OneFactinOnePlace”即某个表只包括其本身基本的属性,当不是它们本身所具有的属性时需进行分解。表之间的关系通过外键相连接。它具有以下
  • MySQL数据库字段级权限设计

    千次阅读 2018-08-27 14:45:45
    用户表、角色表、用户-角色映射表、数据类型表、类型-表名-字段映射表(优先级低)、角色-类型映射表、用户-表名-字段映射表(优先级高) 优点:在方案二的基础上,可实现跨表的权限控制。 缺点:实现较为繁琐,要不要...
  • MySQL数据库字段类型为tinyint,读取出来为true/false的问题
  • mysql数据库中“NULL”和“空值”是不一样的。NULL是一种比较特殊的数据类型,这也可以解释为什么字段设置为NOT NULL,却仍然可以插入空值。设置了NOT NULL之后便不能插入NULL值了,但仍然可以插入像 ' ' 这样的...
  • mybatis+mysql数据库字段 驼峰命名问题

    千次阅读 2015-12-27 16:09:51
    在查询语句, 数据库字段名 media_id 实体属性名 mediaId 在MyBatis-config.xml 配置文件中 setting name="mapUnderscoreToCamelCase" value="true" />
  • MySQL数据库中表示金额字段类型

    万次阅读 2017-10-25 21:37:05
    MySQL数据库中金额字段采用DECIMAL数据类型最近在做金融的项目,由于在设计表时存储金额的字段采用的是double的数据类型,导致在做金额计算时会有一定几率丢失精度,后来查询相关文档后(google+百度)得知金额类的...
  • mysql修改数据库字段类型

    千次阅读 2010-07-28 16:44:00
    ALTER TABLE 表名 alter column 字段名 varchar(50) NULL;
  • 图片右边显示我已经设置了不是null 为什么我进行postman测试的时候 或者说页面添加的时候,什么都不写,竟然能够添加进去,且数据库也不报错。 这时候比关键的问题出现了,我们应该纠正自己的一个观点或者一个自身...
  • Java查询MySQL数据库字段类型

    千次阅读 2011-05-31 17:52:00
    //Java查询MySQL数据库字段类型 import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.Statement; import ...
  • ip的存储不要用char型 用mysql函数 inet_aton 转换成int型存储,select的时候 inet_ntoa(ip) 转义出来 时间不要用char 而是用 int 时间戳的形式,unix_timestamp() mysql 函数...这样用int存储数据在数据库的操作(sele
  • MySQL数据库关于排序字段类型

    千次阅读 2016-08-08 10:43:07
    value字段类型是longtext,如果直接使用下面的SQL查询语句来排序: ORDER BY `value`   那么按得分排序得到的结果可能是: 1 10 11 123 1234 2 25 253 3  由于是按字母顺序排列,所以...
  • create table 表名(列名 类型(长度),列名 类型(长度));一个数据表 可以存在很多列,每列具有类型和长度 行指的是记录创建表之前 必须使用use db 指定操作数据库表中的字段类型MySQL常用数据类型数值型...
  • mysql数据库中sql修改字段类型

    千次阅读 2014-11-05 15:28:15
    首先说明一下: 在mysql数据库中可以对表的字段类型进行修改的,这样的好处是正常情况下原来的数据不会丢失的。  它的语法规则是:alter table newexample modify id vaechar(20);
  • mysql中的decimal , 在java中的用BigDecimal表示的
  • 上述代码中NOW函数就是往addtime字段里插入数据库的当前时间(要取服务器的当前时间应该在Java程序里取)。 mysql中关于当前时间日期的函数有: NOW()函数以`'YYYY-MM-DD HH:MM:SS'返回当前的日期时间,可以直接...
  • Mysql数据库字段中去除回车和换行符

    千次阅读 2016-03-15 15:11:45
    UPDATE tablename SET field = REPLACE(REPLACE(field, CHAR(10), ”), CHAR(13), ”);  char(10): 换行符  char(13): 回车符
  • MySQL 数据库字段操作

    千次阅读 2020-08-05 16:26:47
    数据库字段操作
  • 映射表如下:下面就举个例子来讲(JAVA插入MySql的datetime类型的简单的例子):看了映射表可知:我们可以以Timestamp类型的值插入到数据库数据库中表的设计为这样(有两个字段,id为整型是主键,create_on为...
  • 有时候,在Mysql数据库中,建立表中列的字段时候,明确知道这个列字段,只会存在0或者1,那么就可以使用tinyint类型,如果取出来的话,0会变成false,1会变成true。注意: 1. MySQL保存boolean值时用1代表TRUE,0代表...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 470,527
精华内容 188,210
关键字:

mysql数据库字段类型

mysql 订阅