在执行下面 SQL 语句时发现报错 CREATE TABLE `jc_site_access_pages` ( `access_date` date NOT NULL DEFAULT '0000-00-00' COMMENT '访问日期', `access_time` time NOT NULL COMMENT '访问时间', ) ENGINE DEFAULT CHARSET=utf8 COMMENT='访问详细页面表'; 报的错误是时间的默认值有错误,查阅后发现 mysql5.7 版本开始有了…
mysql(5.5)所支持的日期时间类型有:DATETIME. TIMESTAMP.DATE.TIME.YEAR. 几种类型比较如下: 日期时间类型 占用空间 日期格式 最小值 最大值 零值表示  DATETIME  8 bytes  YYYY-MM-DD HH:MM:SS  1000-01-01 00:00:00 9999-12-31 23:59:59 0000-00-00 00:00:00  TIMESTAMP  4 bytes  YYYY-MM-DD HH:MM:SS  197001010…
MySQL(5.5)所支持的日期时间类型有:DATETIME. TIMESTAMP.DATE.TIME.YEAR. 几种类型比较如下: 日期时间类型 占用空间 日期格式 最小值 最大值 零值表示  DATETIME  8 bytes  YYYY-MM-DD HH:MM:SS  1000-01-01 00:00:00 9999-12-31 23:59:59  0000-00-00 00:00:00  TIMESTAMP  4 bytes  YYYY-MM-DD HH:MM:SS  19700101…
今天在做项目过程中,查询一个表中数据时总碰到这个问题:      java.sql.SQLException:Value '0000-00-00' can not be represented as java.sql.Date 查看数据库,发现某一字段为date类型,字段值为'0000-00-00' ;查看代码,我用的是rs.getString("字段名");于是把代码改成getDate("字段名");问题依旧!     查找资料发现:在数据库连接url后面加上ze…
建表时遇到遇到属性名同MySQL的保留字相同导致不能建表的问题,如下SQL语句: CREATE TABLE TBL_ACCOUNT_FROZEN_RECORD ( ID BIGINT NOT NULL AUTO_INCREMENT, TRADE_FLOW_ID ) NOT NULL, ACCOUNT_NO ) NOT NULL, INITIATOR ) NOT NULL, OPERATE_TYPE ) NOT NULL, CREDENTIAL ), MODIFY_DATE TIMESTAMP D…
建表的时候对列和表明添加备注: DROP TABLE IF EXISTS test_table; CREATE TABLE test_table ( ID INTEGER AUTO_INCREMENT PRIMARY KEY COMMENT '主键', NAME VARCHAR(20) COMMENT '姓名' ) COMMENT = '测试表'; 查看表中列的备注信息: SELECT column_name AS '列名', data_type AS '数据类型', character_max…
一.选择原则 1.应该尽量使用可以正确存储数据的最小字段类型 2.选用简单的数据类型,例如:一个是尽量用mysql内置的字段类型来存储日期和时间:另一个存储IP地址尽量用整型:能用整型的尽量不用字符串类型 3.尽量避免使用NULL,例如:打算创建索引的字段,不要设置为NULL 二.常用的字段类型的选择说明 1.日期和时间类型 TIMESTAMP与DATETIME都可以存储相同类型的数据,并且精确到秒,可是TIMESTAMP只使用DATETIME一半的存储空间,并且它可以根据时区变化,具有特殊的自…
Mysql中用SQL增加.删除字段,修改字段名.字段类型.注释,调整字段顺序总结   在网站重构中,通常会进行数据结构的修改,所以添加,删除,增加mysql表的字段是难免的,有时为了方便,还会增加修改表或字段的注释,把同字段属性调整到一块儿.这些操作可以在phpmyadmin或者别的mysql管理工具中完成,但是我们有时为了更方便的管理,会选择写sql语句来实现.     1.增加一个字段  代码如下 复制代码 //增加一个字段,默认为空alter table user add COLUMN n…
刚开始学create table的时候没注意,学到后面发现可以指定默认值.于是写了如下语句: 当我查询的时候发现,查出来的结果是这样的.. 很纳闷有没有,我明明指定默认值了呀,为什么创建出来的表还是空的呢?又跑去网上查了查相关资料,发现语法确实没错,然后请教了一下同事. 同事告诉我这个默认值是这样用的.于是写了一条这样的语句: 再执行查询,结果如下: 到这里大家应该看明白了,这个设置的默认值并不是一开始创建表的初始值,而是以后插入数据时,不指定列的话,默认值不为null,而是你default后面…
一对一 一张表的一条记录一定只能与另外一张表的一条记录进行对应,反之亦然. 学生表:姓名,性别,年龄,身高,体重,籍贯,家庭住址,紧急联系人 其中姓名.性别.年龄.身高,体重属于常用数据,但是籍贯.住址和联系人为不常用数据 如果每次查询都是查询所有数据,不常用的数据就会影响效率,实际又不用 常用信息表:ID(P),姓名,性别,年龄,身高,体重 不常用信息表:ID(P),籍贯,家庭住址,紧急联系人 解决方案:将常用的和不常用的信息分享存储,分成两张表 不常用信息表和常用信息表,保证不常用信息表与常…