如何在已有表的mongodb查询指定字段位置增加新字段

在 SegmentFault,学习技能、解决问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。
问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
如图:我要新增city字段在items表中,但默认是添加到最后,如何指定添加到items表中location字段后呢?
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
$table-&string('city')-&after('location');
分享到微博?
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要该,理由是:
在 SegmentFault,学习技能、解决问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。jdbc操作oracle如何给已有表新添加字段?【java吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:690,678贴子:
jdbc操作oracle如何给已有表新添加字段?收藏
java,博为峰java培训,贯穿式课程体系,保证学员胜任企业岗位需求,0元入学.java,0基础120天 成就java牛人,抢!!!java课程免费试听名额,IT总监名师主讲!
大神们快来啊
用update可以添加一列
登录百度帐号alter table 表名 add 字段名 数据类型 default 默认值
说明:数据类型如,varchar(50)
alter table BANK_SOKECT_INFO ADD COLUMN DEPTNO& varchar(8);
如何删除表中字段
ALTER table 表名 DROP column 字段名
ALTER TABLE — 更改表属性
语法
ALTER TABLE table [ * ]
&& ADD [ COLUMN ] column type
ALTER TABLE table [ * ]
&& ALTER [ COLUMN ] column { SET DEFAULT value | DROP DEFAULT }
ALTER TABLE table [ * ]
&& RENAME [ COLUMN ] column TO newcolumn
ALTER TABLE table
&& RENAME TO newtable
ALTER TABLE table
&& ADD table constraint definition
Inputs
table
试图更改的现存表的名称.
现存或新的列名称.
新列的类型.
现存列的新名称.
表的新名称.
table constraint definition
表的新的约束定义. New table constraint for the table输出
ALTER
从被更名的列或表返回的信息.
如果一个列或表不存在返回的信息.
描述
ALTER TABLE 变更一个现存表的定义.ADD COLUMN 形式用与 CREATE TABLE一样的语法向表中增加一个新列/字段。ALTER COLUMN 形式允许你从列/字段中设置或者删除缺省(值)。注意缺省(值)只对新插入的行有效。RENAME 子句可以在不影响相关表中任何数据的情况下更改一个表或者列/字段的名称。因此,表或列/字段在此命令执行后仍将是相同尺寸和类型。ADD table constraint definition 子句用与 CREATE TABLE一样的语法向表中增加一个新的约束。
向表中增加一个 VARCHAR 列:
ALTER TABLE distributors ADD COLUMN address VARCHAR(30);
对现存列改名:
ALTER TABLE distributors RENAME COLUMN address TO
对现存表改名:
ALTER TABLE distributors RENAME TO
向表中增加一个外键约束:
ALTER TABLE distributors ADD CONSTRAINT distfk FOREIGN KEY (address) REFERENCES addresses(address) MATCH FULL
***********************************************
DB2取前十条记录 DB2修改字段长度 DB2增加字段方法
DB2取前十条记录:
DB2 =& select istop from news where id =370 fetch first 10 rows only& DB2
修改字段长度:
DB2 alter table DB2admin.config alter cvalue set data type varchar(255)&& DB2 =& alter table news alter AUTHOR set data type varchar(250)&& DB20000I SQL 命令成功完成。
DB2 =& describe table news& DB2
增加字段方法:
alter table table_name&& add column column_name data type varchar(250)
浏览 71602
浏览: 101508 次
来自: 广州
(window.slotbydup=window.slotbydup || []).push({
id: '4773203',
container: s,
size: '200,200',
display: 'inlay-fix'比如我已经建了个表,我现在增加一列(年龄),我怎么插入年龄值,而以前已有的列的值已经赋值了
简单问题简单回答:
LZ已经用ceate建表了,那么加列的话,有两种方法,一种是删除重建。另一种是新增列。新加列可以象下面的那样写法:
alte tale 表 add
新加列对原有的列没影响,所以后面的不是插入年龄值,而是update更新这个列的值。如下面的写法:
update 表 set 列名=值 whee 条件 ;
不同的数据库,可能用到不同的内部函数,象ORACLE,年龄值可能用到to_date,syase可能用到convet等等,可以查一下相关资料。而且,象年龄这样的字段建议用字符串也非常好用,省去了用转换函数的麻烦,也可以直接比较大小。
alter table 表名 add 列名 类型描述
alter table table1 add field1 varchar(20);
例如:ALTER TABLE doc_exa ADD column_b VARCHAR(20) NULL
你可以参考一下这个
例如:alter table Dep add column DepID Int
在Access里,像表Dep中增加DepID的列,类型为数字...
对于任何数据库来说,报表应用是其不可缺少的一部分。在SQLServer数据库中,提供了一个帮助管理员设计、创建、管理报表的工具,即报表服务器。通过这个报表服务器...
这个需要很多步骤
(1)你需要准备一张表,用于保存我国的法定假日,和国家调整情况
(2)查表看看目标日期是不是法定节假日,如果是排除
(3)查表看看是不是属于规...
答: 一加手机氢OS基于谷歌新推出的material design设计语言开发,在其上又做了一些本地化的优化。希望可以帮到你
答: 1 现代计算机的技术发展史
(1)始于微型机时代的嵌入式应用
电子数字计算机诞生于1946年,在其后漫长的历史进程中,计算机始终是供养在特殊的机房中,实现数值计...
答: 您在网络连接中设的是自动连接
大家还关注
Copyright &
Corporation, All Rights Reserved
确定举报此问题
举报原因(必选):
广告或垃圾信息
激进时政或意识形态话题
不雅词句或人身攻击
侵犯他人隐私
其它违法和不良信息
报告,这不是个问题
报告原因(必选):
这不是个问题
这个问题分类似乎错了
这个不是我熟悉的地区
相关问答:123456789101112131415后使用快捷导航没有帐号?
只需一步,快速开始
查看: 35201|回复: 15
请教怎样用sql 语句实现在指定列后面插入一列。
UID514在线时间 小时积分242帖子离线17593 天注册时间
中级会员, 积分 242, 距离下一级还需 258 积分
UID648在线时间 小时积分512帖子离线17593 天注册时间
高级会员, 积分 512, 距离下一级还需 488 积分
啊……天天都用Enterprise Manager干这活,语句怎么写还真的不太熟练,大概是这样吧:
ALTER TABLE table_name ADD column_name varchar(50) null
但是如何指定插在某列后面就不清楚了……有这个必要?
UID648在线时间 小时积分512帖子离线17593 天注册时间
高级会员, 积分 512, 距离下一级还需 488 积分
What's this?
UID32在线时间 小时积分2175帖子离线17593 天注册时间
银牌会员, 积分 2175, 距离下一级还需 825 积分
m2w先生的回复内容:
谢谢狂人兄弟我的目的是用asp实现吧access自动转到sql的表,但是我想在某些列后加一些标识列,你说的方法只能是在整个表的最后加,不能实现我的要求,我现在用的方法是循环一列一列的建立,这样很慢,如果可以实现指定的添加列,可以把速度提高很多。 我相信一定可以的,手动加过了,没问题,问题就是怎么用语句实现。 谢谢你的帮助。
UID514在线时间 小时积分242帖子离线17593 天注册时间
中级会员, 积分 242, 距离下一级还需 258 积分
谢谢太乙郎先生帮助解码
UID60在线时间 小时积分9302帖子离线17593 天注册时间
to m2w:我删除了前面乱码的两个贴子,但我还是看不懂你的要求,能在讲详细一点吗?
UID648在线时间 小时积分512帖子离线17593 天注册时间
高级会员, 积分 512, 距离下一级还需 488 积分
记录顺序以及列的顺序在数据库中是没有用的,无论什么顺序,用T-SQL读取出来的时候都可以重新排序,所以,恐怕是没有这样的语句吧?
UID514在线时间 小时积分242帖子离线17593 天注册时间
中级会员, 积分 242, 距离下一级还需 258 积分
jjx在上个贴子中说
to m2w:我删除了前面乱码的两个贴子,但我还是看不懂你的要求,能在讲详细一点吗?
现在我有一个事先做好的access数据库,需要导入到sql server, 这点我已经用asp实现了,
其次,我像在这个表里面的某些特定列后加列属性,比如说有一列是性别,列名是gender,内容有男有女,
后面一列是他的属性,用1表示男用2表示女,这个属性列需要后加进去,我用手动加试过了没问题,用asp和循环加判断也实现了,只不过速度非常慢,因为我要加的列属性非常多,但是如果我用sql语句和asp配合,先把整张表导入到sql, 再用asp直接添加,那就会提高一些速度,至少我想的是这样,不知有什么方法。
不知蒋兄是否明白,如果哪里不明白清指出,麻烦了。
UID60在线时间 小时积分9302帖子离线17593 天注册时间
我还是不太懂,你没有列出具体的数据,我只能推测一下
可能你的表示这样的
姓名|性别|职业
张三|女|学生
李四|男|工人
王五|不详|教师
李四|女|学生
你要如何添加属性列,是这样吗?
姓名|性别|性别属性|职业|职业属性 ?
好像不是这样,因为这样的表结构没有意义!
UID514在线时间 小时积分242帖子离线17593 天注册时间
中级会员, 积分 242, 距离下一级还需 258 积分
jjx在上个贴子中说
我还是不太懂,你没有列出具体的数据,我只能推测一下
可能你的表示这样的
姓名|性别|职业
张三|女|学生
李四|男|工人
王五|不详|教师
李四|女|学生
你要如何添加属性列,是这样吗?
姓名|性别|性别属性|职业|职业属性 ?
好像不是这样,因为这样的表结构没有意义!
对,就是这个意思,不过我的表不是这么简单的,比如说:
姓名|工作|& && && && && &&&|工作属性|
aa&&|厨师,经理,会计|1,3,4|
这样在查询时就查属性就行了,这也只是简单的例子,所以我非常想实现,你能帮我么?
UID60在线时间 小时积分9302帖子离线17593 天注册时间
我想说的一点是这样的表设计是不符合规范的,但是在internet好像不符合规范的表设计是它的一个特点。赫赫
规范的表设计可能是这样的
工作属性表
属性id|属性名称
人员属性表
姓名|属性id
----------------------------------------------------
另外,你这个表是如何得到,是已经有以上三个表,然后再汇总的,还是怎样?
可以肯定的一点是,一定需要写存储过程或dts script才可以完成你的任务。要么就是在asp或vb这种客户端实现,当然,效率根据写法不同会有些差别
姓名|工作|& && && && && &&&|工作属性|
aa&&|厨师,经理,会计|1,3,4|
UID514在线时间 小时积分242帖子离线17593 天注册时间
中级会员, 积分 242, 距离下一级还需 258 积分
对呀对呀,和我想的真是很相似,
工作属性表
属性id|属性名称
人员属性表
姓名|属性id
只不过我把这三张表现在合成了一张表表示,也就出现了我所说的问题了,有辙么?实在不行,我就用现在的算法也成。
UID60在线时间 小时积分9302帖子离线17593 天注册时间
我觉得一定要写代码来完成了,不过你的思路可能同我的一样
1、创建新表的结构(手动或代码)
2、获得唯一的人员列表
3、循环,一次取得列表中人员的全部工作属性,插入到新表
大致的代码就是(vb)
dim rsList as new recordSet
dim rsProperty as new recordset
'获得唯一的人员列表
rsList.Open &select distinct 姓名 from 人员表&,con
do until rsList.eof
& & '循环,一次取得列表中人员的全部工作属性
& &rsProperty.open &select 属性id,属性名称 from 人员表 inner join 属性表 on 人员表.属性id=属性表.属性id where 人员表.姓名='& & rsList(&姓名&) & &'&,con
& & dim strPropertyid as string,strPropertyName as string
& & do until rsProperty.eof
& && &&&if strPropertyid&&&& then
& && && && &strPropertyid=strPropertyid & &,& &&&rsProperty(&属性id&)
& && &&&else
& && && && &strpropertyid=rsProperty(&属性id&)
& && &&&end if
& && &&&if strPropertyname&&&& then
& && && && & strPropertyName=strPropertyName & &,& & rsProperty(&属性名称&)
& && &&&else
& && && && & strPropertyName=rsProperty(&属性名称&)
& && &&&end if
& && &&&rsProperty.Movenext
& & rsProperty.Close
& & '插入纪录&&
& &con.execute &Insert into 新表 (姓名,属性id列表,属性名称列表) values ('& & rslist(&姓名&) & &','& & strPropertyId & &','& & strPropertyName & &')&
& & rsList.MoveNext
rsList.close
set rsList=Nothing
Set rsProperty=Nothing
不过我有一个新的思路是,使用触发器,在人员表新增或删除纪录时自动维护新表,你也可以看看
UID514在线时间 小时积分242帖子离线17593 天注册时间
中级会员, 积分 242, 距离下一级还需 258 积分
实在抱歉,这两天休息,没看程序,今天上班
蒋兄的程序写的短小精悍,我可是比不了呀,我实现这个用的是recordset open也同样实现了,没用execute, 所以再想问一下,他们两个那个更好一点?我有点糊涂。
UID514在线时间 小时积分242帖子离线17593 天注册时间
中级会员, 积分 242, 距离下一级还需 258 积分
经过对比蒋兄的程序,我吧我原有的改动了一下,没想到速度一下提升了好多好多,真是非常多。
UID39716在线时间 小时积分593帖子离线17593 天注册时间
高级会员, 积分 593, 距离下一级还需 407 积分
呵呵,execute的确比rs快的多了,rs什么都好,就是太慢
如果m2w希望再快一点的话,可以将sql语句做成存储过程,只传参数,并且存储过程是编译过的(第一次肯定要老兄你来做了),人多的时候速度也会比较明显的
Powered by}

我要回帖

更多关于 oracle指定位置加字段 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信