如何更改SQL中某列的值
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何更改SQL中某列的值相关的知识,希望对你有一定的参考价值。
String st1 = rs.getString("friend");
现有从数据库中读取的String类型的数据 想对它进行修改
用哪个语句?
你用update table set 字段=“” where id =“id”就可以了
这个里面字段是?
我写上面之后报错
sql:update table tablename t set filename =值1 where t.name='条件'。
解释:更改某列,说明有条件,所有必须通过“where”条件语句定位到列。定位成功后,通过set方法给固定字段赋值即可。
上面sql语句的意思:更改tablename 表中name值为“条件”的记录,将“filename ”的值改为“值1”。 参考技术A 建议你看看sqlserver的联机帮助,里面讲的很详细
UPDATE
更改表中的现有数据。
语法
UPDATE
table_name WITH ( < table_hint_limited > [ ...n ] )
| view_name
| rowset_function_limited
SET
column_name = expression | DEFAULT | NULL
| @variable = expression
| @variable = column = expression [ ,...n ]
[ FROM < table_source > [ ,...n ] ]
[ WHERE
< search_condition > ]
|
[ WHERE CURRENT OF
[ GLOBAL ] cursor_name | cursor_variable_name
]
[ OPTION ( < query_hint > [ ,...n ] ) ]
< table_source > ::=
table_name [ [ AS ] table_alias ] [ WITH ( < table_hint > [ ,...n ] ) ]
| view_name [ [ AS ] table_alias ]
| rowset_function [ [ AS ] table_alias ]
| derived_table [ AS ] table_alias [ ( column_alias [ ,...n ] ) ]
| < joined_table >
< joined_table > ::=
< table_source > < join_type > < table_source > ON < search_condition >
| < table_source > CROSS JOIN < table_source >
| < joined_table >
< join_type > ::=
[ INNER | LEFT | RIGHT | FULL [OUTER] ]
[ < join_hint > ]
JOIN
< table_hint_limited > ::=
FASTFIRSTROW
| HOLDLOCK
| PAGLOCK
| READCOMMITTED
| REPEATABLEREAD
| ROWLOCK
| SERIALIZABLE
| TABLOCK
| TABLOCKX
| UPDLOCK
< table_hint > ::=
INDEX ( index_val [ ,...n ] )
| FASTFIRSTROW
| HOLDLOCK
| NOLOCK
| PAGLOCK
| READCOMMITTED
| READPAST
| READUNCOMMITTED
| REPEATABLEREAD
| ROWLOCK
| SERIALIZABLE
| TABLOCK
| TABLOCKX
| UPDLOCK
< query_hint > ::=
HASH | ORDER GROUP
| CONCAT | HASH | MERGE UNION
| LOOP | MERGE | HASH JOIN
| FAST number_rows
| FORCE ORDER
| MAXDOP
| ROBUST PLAN
| KEEP PLAN
例如:
UPDATE authors
SET state = 'ZZ'
FROM (SELECT TOP 10 * FROM authors ORDER BY au_lname) AS t1
WHERE authors.au_id = t1.au_id本回答被提问者采纳 参考技术B 你用update table set 字段=“” where id =“id”就可以了 参考技术C 不明白你的意思?是更改 从数据库中取出后的值呢,还是更改数据库中的值。更改数据库的值 用 update 语句,更改取出后的值呢,就不用说了吧。 参考技术D rs("friend") = "值";
如何对Oracle数据库表中某列的所有数据进行字符串操作?
【中文标题】如何对Oracle数据库表中某列的所有数据进行字符串操作?【英文标题】:How to do a string operation on all data of a column in an Oracle database table? 【发布时间】:2013-09-16 18:01:56 【问题描述】:我有一个如下表(表名 IDN_CONSUMERS),
| USER_ID | USERNAME |
| 001A | ABC/Anne |
| 034K | ABC/John |
| DF23 | ABC/Peter |
我需要删除所有用户名的ABC/部分,并将修改后的值放回表中,所以最终的结果应该是这样的,
| USER_ID | USERNAME |
| 001A | Anne |
| 034K | John |
| DF23 | Peter |
我尝试了以下脚本,但由于我不明白的原因它无法正常工作。谁能帮我解决这个问题?
DECLARE
NEWUSERNAME VARCHAR2(512);
BEGIN
FOR ID IN (SELECT USER_ID FROM IDN_CONSUMERS) LOOP
SELECT SUBSTR((SELECT USERNAME FROM IDN_CONSUMERS WHERE USER_ID='||ID||'), 4) INTO NEWUSERNAME FROM DUAL;
UPDATE IDN_CONSUMERS SET USERNAME='||NEWUSERNAME||' WHERE USER_ID='||ID||';
END LOOP;
END;
【问题讨论】:
【参考方案1】:无需编写循环或单独存储新的用户名值。
UPDATE IDN_CONSUMERS SET USERNAME = SUBSTR(USERNAME, 4);
【讨论】:
【参考方案2】:更通用的解决方案,使用REGEXP_REPLACE:
UPDATE idn_consumers
SET username = REGEXP_REPLACE(username, '.*/');
这确实假设用户名字段中只有一个“/”字符。它不假定要删除的字符串总是 4 个字符长,或者它们都是相同的长度。
如果您的数据可以包含多个“/”,您可以使用:
UPDATE idn_consumers
SET username = REGEXP_REPLACE(username, '[^/]*/','',1,1);
例如:
SQL> SELECT REGEXP_REPLACE('ABC/An/ne', '[^/]*/','',1,1) new_name FROM dual;
NEW_NAME
--------
An/ne
【讨论】:
以上是关于如何更改SQL中某列的值的主要内容,如果未能解决你的问题,请参考以下文章