贴一段给你看一下,具体问题欢迎追问。
#查看表信息
desc tb_dept;
或者
show create table tb_dept ;
另外贴一个建表语句给你参考一下。
CREATE TABLE `xy_xzxkxx` (
`id` int(12) NOT NULL AUTO_INCREMENT COMMENT '自增主键',
`xingzhengxukemingcheng` varchar(512) NOT NULL COMMENT '许可事项名称',
`xukeID` varchar(50) DEFAULT NULL COMMENT '许可ID',
`shenbaoshixiangmingcheng` varchar(512) DEFAULT NULL COMMENT '申报事项名称',
`xingzhengxiangduirenmingcheng` varchar(256) NOT NULL COMMENT '行政相对人名称',
`tongyishehuixinyongdaima` varchar(18) DEFAULT NULL COMMENT '统一社会信用代码',
`qiyezhucehao` varchar(50) DEFAULT NULL COMMENT '企业注册号',
`zuzhijigoudaima` varchar(9) DEFAULT NULL COMMENT '组织机构代码',
`juminshenfenzhenghao` varchar(64) NOT NULL COMMENT '居民身份z号',
`fadingdaibiaorenxingming` varchar(256) NOT NULL COMMENT '法定代表人姓名',
`shenpileibie` varchar(16) NOT NULL COMMENT '审批类别',
`xukewenjianbianhao` varchar(128) NOT NULL COMMENT '许可文件编号',
`xukewenjianmingcheng` varchar(256) NOT NULL COMMENT '许可文件名称',
`youxiaoqizi` varchar(10) NOT NULL COMMENT '有效期自',
`youxiaoqizhi` varchar(10) NOT NULL COMMENT '有效期至',
`xukejiguan` varchar(256) NOT NULL COMMENT '许可机关',
`xukeneirong` varchar(2048) NOT NULL COMMENT '许可内容',
`dengjizhuangtai` varchar(1) NOT NULL COMMENT '登记状态',
`difangbianma` varchar(6) NOT NULL COMMENT '地方编码',
`shujulaiyuandanwei` varchar(256) NOT NULL COMMENT '数据来源单位',
`shujugengxinshijianchuo` varchar(30) NOT NULL COMMENT '数据更新时间戳',
`beizhu` varchar(512) DEFAULT NULL COMMENT '备注',
`upload_cycle_date` varchar(20) DEFAULT NULL COMMENT '上传时间节点',
`upload_date` varchar(30) DEFAULT NULL COMMENT '上传时间',
`dept_id` int(20) DEFAULT NULL COMMENT '部门编号',
`createtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '创建时间',
`sts` char(1) DEFAULT '1' COMMENT '状态',
`cwxx` varchar(2000) DEFAULT NULL COMMENT '错误信息',
`sjzt` varchar(10) DEFAULT '1' COMMENT '数据状态',
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=10000002 DEFAULT CHARSET=utf8 AVG_ROW_LENGTH=44 COMMENT='行政许可信息';
Oracle按不同时间分组统计的sql
如下表table1:
日期(exportDate)
数量(amount)
--------------
-----------
14-2月
-08
20
10-3月
-08
2
14-4月
-08
6
14-6月
-08
75
24-10月-09
23
14-11月-09
45
04-8月
-10
5
04-9月
-10
44
04-10月-10
88
注意:为了显示更直观,如下查询已皆按相应分组排序
1按年份分组
select
to_char(exportDate,'yyyy'),sum(amount)
from
table1
group
by
to_char(exportDate,'yyyy');
年份
数量
-----------------------------
2009
68
2010
137
2008
103
2按月份分组
select
to_char(exportDate,'yyyy-mm'),sum(amount)
from
table1
group
by
to_char(exportDate,'yyyy-mm')
order
by
to_char(exportDate,'yyyy-mm');
月份
数量
-----------------------------
2008-02
20
2008-03
2
2008-04
6
2008-06
75
2009-10
23
2009-11
45
2010-08
5
2010-09
44
2010-10
88
3按季度分组
select
to_char(exportDate,'yyyy-Q'),sum(amount)
from
table1
group
by
to_char(exportDate,'yyyy-Q')
order
by
to_char(exportDate,'yyyy-Q');
季度
数量
------------------------------
2008-1
22
2008-2
81
2009-4
68
2010-3
49
2010-4
88
4按周分组
select
to_char(exportDate,'yyyy-IW'),sum(amount)
from
table1
group
by
to_char(exportDate,'yyyy-IW')
order
by
to_char(exportDate,'yyyy-IW');
周
数量
------------------------------
2008-07
20
2008-11
2
2008-16
6
2008-24
75
2009-43
23
2009-46
45
2010-31
5
2010-35
44
2010-40
88
PS:Oracle按时间段分组统计
想要按时间段分组查询,首先要了解level,connect
by,oracle时间的加减
关于level这里不多说,我只写出一个查询语句:
----level
是一个伪例
select
level
from
dual
connect
by
level
<=10
---结果:
1
2
3
4
5
6
7
8
9
10
oracle时间的加减看看试一下以下sql语句就会知道:
select
sysdate
-1
from
dual
----结果减一天,也就24小时
select
sysdate-(1/2)
from
dual
-----结果减去半天,也就12小时
select
sysdate-(1/24)
from
dual
-----结果减去1
小时
select
sysdate-((1/24)/12)
from
dual
----结果减去5分钟
select
sydate-(level-1)
from
dual
connect
by
level<=10
---结果是10间隔1天的时间
下面是本次例子:
select
dt,
count(satisfy_degree)
as
num
from
T_DEMO
i
,
(select
sysdate
-
(level-1)
2
dt
from
dual
connect
by
level
<=
10)
d
where
isatisfy_degree='satisfy_1'
and
iinsert_time<dt
and
iinsert_time>
ddt-2
group
by
ddt
例子中的sysdate
-
(level-1)
2得到的是一个间隔是2天的时间
group
by
ddt
也就是两天的时间间隔分组查询
自己实现例子:
create
table
A_HY_LOCATE1
(
MOBILE_NO
VARCHAR2(32),
LOCATE_TYPE
NUMBER(4),
AREA_NO
VARCHAR2(32),
CREATED_TIME
DATE,
AREA_NAME
VARCHAR2(512),
);
select
(sysdate-13)-(level-1)/4
from
dual
connect
by
level<=34
--从第一条时间记录开始(sysdate-13)为表中的最早的日期,“34”出现的分组数(一天按每六个小时分组
就应该为4)
一下是按照每6个小时分组
select
mobile_no,area_name,max(created_time
),dt,
count()
as
num
from
a_hy_locate1
i
,
(select
(sysdate-13)-(level-1)/4
dt
from
dual
connect
by
level
<=
34)
d
where
ilocate_type
=
1
and
icreated_time<dt
and
icreated_time>
ddt-1/4
group
by
mobile_no,area_name,ddt
另外一个方法:
--按六小时分组
select
trunc(to_number(to_char(created_time,
'hh24'))
/
6),count()
from
t_test
where
created_time
>
trunc(sysdate
-
40)
group
by
trunc(to_number(to_char(created_time,
'hh24'))
/
6)
--按12小时分组
select
trunc(to_number(to_char(created_time,
'hh24'))
/
6),count()
from
t_test
where
created_time
>
trunc(sysdate
-
40)
group
by
trunc(to_number(to_char(created_time,
'hh24'))
/
6)
varchar2(50) 表示该字段类型为varchar2类型,长度为50,可以存单字节字符50个,如字母、数字等,可以存储双字节字符25个,如汉字。
varchar2是Oracle中特有的一种数据库类型,与varchar的区别在于
varchar 存贮为定长
varchar2 存贮为不定长。
即:如果定义了一个字段为varchar(10),那么存贮到这个字段的值,不管有没有10个字符,都存贮为10个字符长度,不足的部份补足空格。而如果定义为varchar2(10),那么按实际值来存贮,即字段值有多长存贮为多长,不补足空格。这样,在进行字段值的比较时,varchar2显然比 varchar字段简单且不易出错。另外,在进行存贮时,varchar2 也比varchar节约存贮空间。因此建议用varchar2来代替varchar类型。除非你能确定这个字段存贮内容总是那么长,那么varchar字段也是可以用的。
varchar2的最大长度是4000
以上就是关于mysql数据库实施怎么写…创建表的部分,不会用脚本,就用图形界面 *** 作的,然后要写报告了,数据库实全部的内容,包括:mysql数据库实施怎么写…创建表的部分,不会用脚本,就用图形界面 *** 作的,然后要写报告了,数据库实、Oracle数据库按时间进行分组统计数据的方法、数据库中字段类型为varchar时,它的长度如何理解等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)