a9 发帖数: 21638 | 1 这能行吗?
可以用两个字段吧?
月份-自动顺序号”,在FORM中如何设置FORMAT? 谢谢各位大侠。。 |
|
s***c 发帖数: 1926 | 2 用过7.4和8.1。
7.4版本比较奇怪,不能改变column的字段长度,使用8.0以上版本的jdbc Driver速度奇
慢。
8.0以上版本用得挺爽的。 |
|
d****f 发帖数: 313 | 3 我现在有一个SAMPLE表,结构如下:
POINTID, SAMPLENO, TOP, BOTTOM
FER-01, U-1, 1, 2
FER-01, U-2, 2.1, 3
FER-01, U-3, 3.1, 4
FER-02, U-1, 1, 2
FER-02, U-2, 2.1, 3
FER-02, U-3, 3.1, 4
另外有一个LAB表,结构如下
POINTID, DEPTH, SAMPLENO
FER-01, 1.5, ???
FER-02, 2.5, ???
也就是说要对LAB表中的深度值DEPTH,查对应POINTID的TOP和BOTTOM,看其落在哪个
SAMPLENO的范围内,然后填上SAMPLENO?
感觉若是VBA编程似乎总有办法,但是否可以用sql实现?谢谢各位! |
|
a9 发帖数: 21638 | 4 update lab set sampleno=b.sampleno from sample a,lab b where a.pointid=b.
pointid and a.top < b.depth and b.depth < a.bottom |
|
c*****d 发帖数: 6045 | 5 count(*)为什么一定要找索引?
不可能的原因有,
1. 如果这个表没有一个col有index,肯定是full table scan
2. 至少在oracle,b-tree index里字段如果为null,index不会有相应的键值。如果
count(*),就算count(index_col)也不能用索引 |
|
w*m 发帖数: 1806 | 6 LOAD DATA
INFILE 'input_File.csv’
INTO TABLE tableName
FIELDS TERMINATED BY ","
(field1,
field2,
field3,
field4)
....
question: 可不可以在字段后面加上一个"select id from..."来自动赋值给某一字段? |
|
y****w 发帖数: 3747 | 7 图形界面下的批处理。这些天正好做过的,
1. 假如你要处理给定1000个表,做schema change,比如一些字段从int到varchar,或
者相反,根据什么条件决定。必须完整保留数据,相关需要做type casting. ---前提是这种转换在dbms当前版本并不支持。
2. schema比较的时候比较SP的内容--好像有bug. 还有些识别不出来。
toad很强,掩盖了很多下面的东西,大大降低了dba工作的难度。我的point不是否定
toad,而是说toad是个捷径,新手与其大力气扣命令脚本不如先好好研究这个. |
|
c*****d 发帖数: 6045 | 8 时间字段上的range ---逻辑
data blocks range ---物理
一般情况下是不会一一对应的
很可能一个block上有今天的数据,也有100年以前的数据 |
|
c*****d 发帖数: 6045 | 9 时间字段上的range ---逻辑
data blocks range ---物理
一般情况下是不会一一对应的
很可能一个block上有今天的数据,也有100年以前的数据 |
|
y****w 发帖数: 3747 | 10 做个表,比如叫做bulk_request,上面放个trigger可以根据insert的内容bulk insert
。你只要给他们insert就行了。 善后的可以用pipe或某字段或另一个表通知他们干完
活儿了。怕滥用的话加些constraint。
have to
other
ways |
|
c*****d 发帖数: 6045 | 11 ambitious已经说的很清楚了,没有Index就只能全表扫描
解决方法就是在时间字段上创建index
你这样的需求,50 million行的数据relational db轻松搞定
根本用不到binary file
这里就是一个论坛,热心人很多,但是没人有义务帮你,不管是老中还是老外
我也挺后悔用中文写这么多 |
|
y****w 发帖数: 3747 | 12 我觉得这个题目出的蛮有水平的:
1. tree结构设计。效率与灵活性如何兼顾。
2. 注意那个32k,可以考察下对dbms大字段支持的了解,是不是可以inline一部分,80
/20准则。
3. 接着可以考怎么写sql,一般的到recusrive的。基本上developer需要知道的query写
法基本上都能考察到。
4. 这个model涉及的东西是每个人都非常熟悉的。 |
|
gy 发帖数: 620 | 13 I did a test on this, and the conclusion is "字段id和原来表中的物理排列顺序
相关"
Here is the test code:
-- 1. First create a table with only one column
CREATE TABLE dbo.test(col varchar(5));
-- 2. Insert some test data
DECLARE @id int
SET @id = 1
WHILE(@id <= 5000)
BEGIN
INSERT INTO dbo.test(col)
VALUES(LEFT(CAST(NEWID() AS VARCHAR(50)), 5));
SET @id = @id + 1;
END
SELECT * FROM dbo.test
-- 3. Now, add the identity column:
ALTER TABLE dbo.test
ADD TID INT IDENTITY;
-- 4. Check the result compared w... 阅读全帖 |
|
c*****d 发帖数: 6045 | 14 clustered table是b-tree结构
heap table不是
另外你这个问题根本和b-tree一点关系没有,就是这个字段有一个auto increment |
|
c*******r 发帖数: 3289 | 15 一个貌似简单的问题,可是我找不到连乘的函数:一个表,有region, year_month,
pct字段,用来记录每个地区每月销售比上月变化百分比。需要的输出是按地区按年计
算每年递增百分比,
select multiply(1+pct)
from table
group by region, year(year_month)
有没有这样一个multiply的函数? |
|
z******4 发帖数: 4716 | 16 学习数据库最大的难度是太多概念,太多名词,新手很容易迷失。而且到处都是学习资
料,那些事有必要记住,那些是要参考,对新手来说,难以判断。
今天我就来,用魔派速成大法学习数据库
好,对于大多数新人来说,数据库是什么,可能都没有概念,但是excel不熟悉的,太
少了吧,不熟悉excel的,赶紧先补课。
我就用Excel来比喻,如何学习数据库
一个Excel里面,会有几个sheet,每一个sheet里面,有行有列,这些是基本的,大家
都懂吧
现在我要记录一下销售信息
新建一个Excel文件,sheet1取名叫客户,格式如下
姓名 年龄 地址 联系电话
客户1
客户2
在另外一个sheet里面,记录销售信息
好了,这东西太简单,没啥好讲的,大家记住就好了,下面就把excel的信息 映射成数
据库名词
行 - Row
列 - Column
sheet - table
excel文件 - tablespace
到这里新手头脑一定很清楚,这没什么,对吧,接下来用一些场景来进一步阐述数据库
结构,这些名词是一定要理解记忆的
1. 数据字典
假如,我有很多个sheet... 阅读全帖 |
|
c*****d 发帖数: 6045 | 17 我估计你第一次是从别处拷贝粘贴过来的
在字段前面有非法字符 |
|
c*********e 发帖数: 16335 | 18 我记得在ssis里面的flow chart什么的里面,有个什么选项把"a,b"看作一个字段。忘
了。回头查查。 |
|
c*****d 发帖数: 6045 | 19 先回答female managers的问题吧
你的sql是对的,我的sql返回的是所有的female supervisors
我昨天没看到department中mgr_ssn这个字段
Stafford |
|
|
c*****d 发帖数: 6045 | 21 首先,用join就能实现
select b.start_int, b.end_int
from AAA a, BBB b
where a.start_int <= b.start_int
and a.end_int>=b.end_int
and a.id=12345;
其次,你说“select * from AAA where id=12345. 从AAA中大概挑出2000行左右”
id难道不是PK,返回一条结果?
再次,BBB表有3千多万行,有没有索引?在哪个字段上? |
|
l******y 发帖数: 60 | 22 多谢coolbid大拿。我怎么糊涂到不用join呢?难怪被DBA鄙视。我原来用的数据库也就
几万条,最多10万条,这次很震撼。
AAA中的id不是PK(它是另一个表的PK,这个表的FK),返回近2000条记录。BBB的索引
建在另一个我不涉及的字段上。
join 的效率是不是要比subquery和exists高?如何判断?多谢指点! |
|
l******y 发帖数: 60 | 23 谢谢coolbid, 第二步创建函数的建议非常好。
我从BBB中挑出来的记录预计在千分之一(3万条)以内,如果分别给BBB start_int和
end_int字段创建索引,效率会提高多少呢(如何计算)?多谢! |
|
p*****c 发帖数: 2858 | 24 大家好,小弟最近开发一个库存系统的时候,遇到了一点点技术瓶颈,无奈小弟才疏学
浅,百搜不得其解,只好来这里向大家讨教了。
数据库用的是mysql。
比如说,我有一个表存放库存数据,就简单两个字段product id与quantity;
卖出去了,就
1.begin transaction;
2.update quantity=quantity-1;
3.commit;
退回来了,就
1.begin transaction;
2.update quantity=quantity+1;
3.commit;
当负载量很低时,这样是没问题的。
但是一旦需要并发操作,就会发现事务处理不生效。
比方说,有一个产品,原有quantity 100。这时同时导入了3个订单,各订购一个,结
果quantity 就是99.而不是97.
想请问大家一般遇到这种应用的时候,是怎么设计语句的?
或者有没有什么机制可以避免?
我一直很好奇amazon/bestbuy的库存系统是怎么做的,但是无奈没有相关资料。
恳请指点迷津。
谢谢 |
|
p*****c 发帖数: 2858 | 25 对,不过多出来的字段和这个问题无关。
而因为用了ORM之后,所有的sql语句都被抽象化了。
出现问题我调试的时候,是把最基本的sql都打印出来查看,然后就归纳成这几条了。
我现在突然觉得,是不是因为,update数据的时候我没有给这个表上锁所以才会出这个
问题。
但是如果上read lock。估计整个系统都会瘫痪吧,因为很多其他需要读取库存数据的
进程很多啊。 |
|
m**c 发帖数: 192 | 26 假设requirement里面没有很强的data integrity的要求。
两个table里面的字段完全一样。里面的数据也一样,都是百万级别的。一个table里面
定义了foreign key,另外一个table里面没有定义foreign key。同一个SQL query哪一
个速度比较快? |
|
t*********u 发帖数: 26311 | 27 再问一个
像这样用某个同名的字段进行join的操作
例如 a(name, id)
b(rank, name)
最简单情况 假设 FULL JOIN 和 INNER JOIN都是一个效果
join后有没有直接方法 产生一个view是 name,id,rank的?
而不是用rename,然后再select的方法
谢谢 |
|
l******b 发帖数: 39 | 28
and
times
首先,我不是大牛啊.大牛是Beijing ...
但是,我可以跟你探讨一下这个问题的解法.
为了说明我的思路, 我先建个表, 然后往里面插入10条记录.
create table t10(time int, score int);
insert into t10(time, score) values(1,25);
insert into t10(time, score) values(2,16);
insert into t10(time, score) values(3,50);
insert into t10(time, score) values(4,29);
insert into t10(time, score) values(5,45);
insert into t10(time, score) values(6,64);
insert into t10(time, score) values(7,44);
insert into t10(time, score) values(8,62);
insert into t10(time, score) ... 阅读全帖 |
|
c*****d 发帖数: 6045 | 29 bitmap不是一种join方式,他只是一种索引,只不过支持and/or/not
query planner会根据具体索引结构建立最佳方案,选择最佳的一个index
但是,你没办法让两个btree index作and/or/not
在你这个例子中,可以创建单独last name字段的索引,或者email上的索引,或者(
last_name,email) or (email, last_name)上建立composite index,如果你创建了这
些索引,当然storage上是浪费了,但是提高了查询效率。我们很多表都是5-10个索引
INDEX |
|
u**d 发帖数: 211 | 30 在你这个案例里,关键在于你的 query 包含了 SELECT *
根据语义 * 就要把每个 record 里所有字段都返回。就意味着任何 plan 最终都要访
问 base table。所以 optimizer 会选择,在查询第一个 index 之后,直接访问 base
table,再对剩下的 predicates 做过滤。
要想达到你想象的效果,首先 base table 要有 primary key (类似 Lucene 里 Doc
ID 的概念)。其次,SELECT 语句只选择 primary key。这样 optimizer 只会访问
indexes,因为 indexes 包含了处理改查询的所有信息,而不会再访问 base table 了
。在对所有 indexes 做 intersect 的时候,有些系统未必会一定选择 merge join,
也可能选择 hash join。这也说的通,因为 hash join 有很多特殊的优化,比 merge
join 好,即使看起来还要建 hash table 似乎多余。如果你坚信 merge join 一定会
更好,那就用 hint ... 阅读全帖 |
|
c*****d 发帖数: 6045 | 31 首先,这种设计就是没事找事。
日期型的就用日期型,容易操作,比如dateadd, + 1 day, trunc, etc
显示给用户的时候只要用to_char(ym1, 'yyyymm')就屏蔽了dd
其次,Oracle没有DATEADD这么个函数
如果现在这个字段是数值型的
where ym1 BETWEEN
TO_NUMBER(TO_CHAR(add_months(dob,12*12),'YYYYMM')) AND
TO_NUMBER(TO_CHAR(add_months(dob, 13*12),'YYYYMM')) |
|
c*****d 发帖数: 6045 | 32 如果这个sql就用一次,直接写就好了
update table1 set column_a=1, column_b=1, .... where column_a>1 or column_b
> 1 ....
如果经常用,并且column name不规则
在oracle里面从数据字典user_tab_columns读取字段位置和名字
然后用sql语句拼起来 |
|
c*****d 发帖数: 6045 | 33 即便在customername字段上有索引
like '%xxx%'也不会使用该索引 |
|
c*****d 发帖数: 6045 | 34 即便在customername字段上有索引
like '%xxx%'也不会使用该索引 |
|
c*****d 发帖数: 6045 | 35 index是在哪个字段上?
另外你的x=y是x column = y column,还是x column = y value
我试了几个case,也确认了exec plan在使用索引
但是并没有出现zero divided的问题
create clustered index on (id,a,b)
create clustered index on (a,b) |
|
c*****d 发帖数: 6045 | 36 index是在哪个字段上?
另外你的x=y是x column = y column,还是x column = y value
我试了几个case,也确认了exec plan在使用索引
但是并没有出现zero divided的问题
create clustered index on (id,a,b)
create clustered index on (a,b) |
|
e**1 发帖数: 452 | 37 各位大拿;
请问sql如何实现以下功能。 谢谢
表1
id, name, dept
1 a aa
2 b bb
3 c cc
4 d dd
表2
name, dept
a aa
b bb
e ee
c cc
c dd
d dd
期望操作 ‘只要发现表2中的dept字段不同,就将表2中的记录插入表1’
之后得到
表1
id, name, dept
1 a aa
2 b bb
3 c cc
4 d dd
5 e ee
6 c dd
谢谢 |
|
发帖数: 1 | 38 表很简单,只有三个字段, 没有DOB:-)
Id INT
ParentId INT
ChildId INT
显然开山老祖宗的ParentId为NULL,末代小孙孙的ChildId为NULL.
数据结构上,每一行是一个链表元素,需要给其排序。 |
|
发帖数: 1 | 39 表很简单,只有三个字段, 没有DOB:-)
Id INT
ParentId INT
ChildId INT
显然开山老祖宗的ParentId为NULL,末代小孙孙的ChildId为NULL.
数据结构上,每一行是一个链表元素,需要给其排序。 |
|
y****w 发帖数: 3747 | 40 DBMS很多支持这种关系,但无论程序员还是DBA,没人喜欢没人用就是了。
:表很简单,只有三个字段, 没有DOB:-)
:Id INT |
|
y*h 发帖数: 25423 | 41 又想起来一个问题, Dell OEM的Windows光盘在非Dell机上无法安装因为它能自动
识别BIOS里的特殊信息, 但是为什么能在VMWare的虚拟机里安装呢? 虚拟机的
BIOS也没有Dell的特殊信息字段在里面啊 |
|
t*****s 发帖数: 1309 | 42 OEM激活不是靠key,而是靠系统里证书和BIOS SLIC字段的匹配,所以你OEM版的key是
没用的 |
|
|
|
a***a 发帖数: 161 | 45 ip multicast group 是由 ip address 和 port 一起标识的,
但用于加入 multicast group 的 igmp 报文里面只有 ipaddr
的字段,没有关于 port 的信息。这是怎么回事? |
|
t********k 发帖数: 808 | 46 是先处理clob,用setString把String变量的值放到
clob里
然后用setClob
因为把所一文章里的文字放到clob字段内 |
|
t********k 发帖数: 808 | 47 实际上我曾试过oralce.sql.CLOB
但一用这,我连从数据库中取clob字段的值都出错
就是下面语句
oralce.sql.CLOB clob = (oracle.sql.CLOB)rs.getClob(1)
一执行到这
后面的语句都不执行了
没抛出异常
却去执行finally里的语句了
真是不懂
用下面的没事
Clob clob = rs.getClob(1)
另外我的同事用oracle.sql.CLOB没事
我的语句和他的没什么两样
Faint死我了 |
|
c*****s 发帖数: 214 | 48 完整的例子太长,程序大概是这样。
写(假设用commons-fileupload):
org.apache.commons.fileupload.FileItem fileItem = ...;
//我的程序很多是在jakarta
turbine框架里,拿到FileItem很容易。如果你也想用commons-fileupload请参考文档,
应该不难。
InputStream fileIn = fileItem.getInputStream();
...
Statement statement = dbcon.createStatement(...)//ResultSet类型不要READ_ONLY
ResultSet rs = statement.execute(...);
...
java.sql.Blob blob = rs.getBlob("file_content"); //假设字段是Blob类型
OutputStream blobOut = blob.setBinaryStream();
org.apache.commons.io.CopyUtils.copy(fileIn, |
|
p***p 发帖数: 559 | 49 用了AUTO_INCREMENT的字段作主键,然后select LAST_INSERT_ID()
不清楚并发操作会有问题么,还是要锁定表
是 |
|
z****e 发帖数: 54598 | 50 index真心不刁,用过数据库的人都知道
一旦遇到海量数据,上不上index的效率差异是很明显的
多写几个查找的代码就知道了,有些时候客户要求检索的字段没有index
就应该及早说出来 |
|