createtableas,createtableas上亿数据

http://www.itjxue.com  2023-01-14 02:41  来源:未知  点击次数: 

hive里用create table as select创建表的列名问题

create table as select 不可以指定列名。

列名为 _c1、_c2 在访问的时候需要加上 ` 符号,所以应该这样写:select `_c1` from xxx。

如果你不想列名为 _c1,可以先 create table xxx(a string, b int),然后 insert into table xxx select ...

sql2000 create table as 的用法

create

table

as是ORACLE复制表的语法。

SQLSERVER比较简单,直接用SELECT

INTO就好了INTO后边的新表是不需要提前建立的。

SELECT

*

INTO

TABLE2

FROM

TABLE1

WHERE

语文成绩数学成绩

AND

语文成绩英语成绩

AND

数学成绩英语成绩

用create table 表名 as 创建表时可以指定表空间吗

答案是肯定的,语句如下:

create table tb_jg_sd tablespace emsdatan as select * from tb_jg where jgfl='sd';

这个语句一次完成建表和数据插入,无需回滚,效率是很高的,而下面分步进行的语句效率就低多了:

create table TB_JG

(

CITY VARCHAR2(10) not null, --城市

CITY_CODE VARCHAR2(10) not null, --城市简码

SSXS VARCHAR2(10) not null, --市县

XS_CODE VARCHAR2(10) not null, --市县简码

ZJ_CODE VARCHAR2(10) not null, --机构代码

ZJ_MC VARCHAR2(50) not null, --机构名称

JGFL VARCHAR2(10) not null, --机构分类(邮政/速递)

CXFL VARCHAR2(10) not null, --城乡标志(1:城市 2:农村)

CXFL VARCHAR2(10) not null --直达标志(1:直达 2:偏远非直达)

) tablespace emsdatan;

insert into tb_jg_sd select * from tb_jg where jgfl='sd';

commit;

创建索引也可以指定表空间,如下列语句:

alter table TB_EVT_ROUTE_BAG_RELA

add primary key

(BAG_ID,ROUTE_CRT_ORG_CODE,ROUTE_RCV_ORG_CODE,ROUTE_ACTN_CODE,ROUTE_SEQ_NUM,ROUTE_KIND_CODE,

ROUTE_CRT_DATE,LABEL_STRIP,LABEL_KIND_CODE)

using index tablespace emsidx;

create index ITB_EVT_ROUTE_BAG_RELA on TB_EVT_ROUTE_BAG_RELA

(ROUTE_CRT_ORG_CODE,ROUTE_RCV_ORG_CODE,ROUTE_ACTN_CODE,ROUTE_SEQ_NUM,ROUTE_KIND_CODE)

tablespace emsidx;

Oracle中,为什么同样的SELECT查询语句,加了CREATE TABLE AS后速度更快了?

这两个操作不是同一类,select还涉及到结果集缓存返回。回答楼上的,CTAS不会记录日志(或者只会记录非常少量的日志)。不过最好还是通过10046分析下SQL的执行统计信息。

excel vba create table as语名显示语法错误

SQL语法错误:

CREATE?TABLE?语句

用于创建新表。

语法

CREATE?[TEMPORARY]?TABLE?table?(field1?type?[(size)]?[NOT?NULL]?[WITH?COMPRESSION?|?WITH?COMP]?[index1]?[,?field2?type?[(size)]?[NOT?NULL]?[index2]?[,?...]]?[,?CONSTRAINT?multifieldindex?[,?...]])

CREATE?TABLE?语句包含以下部分:

部分?说明?

table?要创建的表的名称。?

field1,?field2?要在新表中创建的字段的名称。必须至少创建一个字段。?

type?新表中?field?的数据类型。?

size?以字符数表示的字段大小(仅适用于文本字段和二进制字段)。?

index1,?index2?定义单字段索引的?CONSTRAINT?子句。??

multifieldindex?定义多字段索引的?CONSTRAINT?子句。

如果你的意图是?从另一个数据库中的select语句中创建一个新表 ,那么,请参考以下SQL语句:

SELECT...INTO?语句

创建生成表查询?(生成表查询:一种查询(SQL?语句),它创建一个新表,然后通过从一个现有表中复制记录,在新表中创建记录(行)。)。

语法

SELECT?field1[,?field2[,?...]]?INTO?newtable?[IN?externaldatabase]

FROM?source

SELECT...INTO?语句包含以下部分:

部分?说明?

field1,?field2?要复制到新表中的字段的名称。?

newtable?要创建的表的名称。如果?newtable?与现有表同名,则发生可捕获错误。?

externaldatabase?外部数据库?(外部数据库:要链接或导入到当前数据库的表的源,或要导出的表的目的地。)的路径。有关路径的说明,请参阅?IN?子句。?

source?从中选择记录的现有表的名称。它可以是单个或多个表或查询。

示例:

SELECT?*?INTO?b?FROM?a

(责任编辑:IT教学网)

更多

推荐HTML/Xhtml文章