SQL中修改表中数据的语句是什么?

SQL中修改表中数据的语句是什么?,第1张

SQL语言中修改表中数据的命令是update。

Update 语句用于修改表中原有的数据。单独使用,使用where匹配字段,set后面,更新字段值,既可以一次一项,也可以一次多项。语法:UPDATE 表名称 SET 列名称1 = 新值,,列名称2 = 新值 WHERE 列名称3 = 某值。

扩展资料:

Update 语句扩展应用:

更新某一行中的一个列的例子:将表中LastName是 "Wilson" 的元组的 FirstName改为“Fred”:UPDATE Person SET FirstName = 'Fred' WHERE LastName = 'Wilson' 。

更新某一行中的若干列的例子:将表中LastName是 "Wilson" 的元组的Addres改为“Zhongshan 23”City改为“Nanjing”:UPDATE Person SET Address = 'Zhongshan 23', City = 'Nanjing' WHERE LastName = 'Wilson'。

这个问题问的。。。首先,你说的新表,那并不是一个表,甚至连视图也不是,仅仅是个查询结果而已,尽管你在程序中用的是最后的结果,要知道,它并不是真实存在的,只是你数据库中这三个表按一定条件查询出来的东西而已。你不能修改不存在的表。
第二,我看了下你的表结构,是符合第三范式的,表结构设计成这样,本来就是为了避免插入错误,删除错误,如果你连到一块去改,那不是等于设计者的努力白费了?
第三,建议你用下面的方法改,注意,虽然这是一个UPDATE,但是实际上是对三张表的修改,而不是你说的那张“新表”的!!
UPDATE
aa,bb,cc
set
aa字段1=‘’
bb字段2=‘’
cc字段x=‘’
where
aaid=bbid=ccid
你说的“新表”从来就没有存在过,不存在的东西不能改,谢谢。
(这里说的存在是指不是数据库里的实体,不是哲学上的存在,谢谢。。。如果你有兴趣再论断下哲学上的“存在”。。。也行。。。)

一、增:有2种方法

1使用insert插入单行数据:

语法:insert [into] <表名> [列名] values <列值>

例:insert into Strdents (姓名,性别,出生日期) values ('王伟华','男','1983/6/15')

注意:如果省略表名,将依次插入所有列

2使用insert,select语句将现有表中的 数据添加到已有的新表中

语法:insert into <已有的新表> <列名> select <原表列名> from <原表名>

例:insert into addressList ('姓名','地址','电子邮件')select name,address,email

from  Strdents

注意:查询得到的数据个数、顺序、数据类型等,必须与插入的项保持一致

二、删:有2中方法

1使用delete删除数据某些数据

语法:delete from <表名> [where <删除条件>]

例:delete from a where name='王伟华'(删除表a中列值为王伟华的行) 

注意:删除整行不是删除单个字段,所以在delete后面不能出现字段名

2使用truncate table 删除整个表的数据

语法:truncate table <表名>

例:truncate table addressList

注意:删除表的所有行,但表的结构、列、约束、索引等不会被删除;不能

用于有外建约束引用的表

三、改使用update更新修改数据

语法:update <表名> set <列名=更新值> [where <更新条件>]

例:update addressList set 年龄=18 where 姓名='王伟华'

注意:set后面可以紧随多个数据列的更新值(非数字要引号);where子句是可选的(非数字要引号),用来限制条件,如果不选则整个表的所有行都被更新

四、查

语法:select <列名> from <表名> [where <查询条件表达试>] [order by <排序的列

名>[asc或desc]]

1)查询所有数据行和列

例:select from a

说明:查询a表中所有行和

2)查询部分行列--条件查询

例:select i,j,k   from  a   where f=5

说明:查询表a中f=5的所有行,并显示i,j,k3列

3)在查询中使用AS更改列名

例:select name as 姓名 from a where  gender='男'

说明:查询a表中性别为男的所有行,显示name列,并将name列改名为(姓名)显示

4)查询空行

例:select name from a where email is null

说明:查询表a中email为空的所有行,并显示name列;SQL语句中用is null或者is not null

来判断是否为空行

5)在查询中使用常量

例:select name '北京' as 地址 from a

说明:查询表a,显示name列,并添加地址列,其列值都为'北京'

6)查询返回限制行数(关键字:top )

例1:select top 6 name from a

说明:查询表a,显示列name的前6行,top为关键字(oracle 中没有top关键字

用rownum替代)

select      from   a where   rownum<6

7)查询排序(关键字:order by , asc , desc)

例:select name

from a

where grade>=60

order by desc

说明:查询表中成绩大于等于60的所有行,并按降序显示name列;默认为ASC升序

一、首先,打开SQL Server管理工具,使用SQL语句创建一个测试表。

二、然后在测试表中插入三个测试数据。

三、接着 用select from tblUpdate语句,查询刚刚插入的数据。

四、使用update tblUpdate set Col2 批量修改整个表的数据。

五、使用update tblUpdate set Col2 =批量修改指定条数的记录。

UPDATE data SET content=REPLACE(content,'A','B')
where content like '%id%'
如下是access下的replace的帮助
Replace 函数
全部显示
全部隐藏
返回一个 String 值,其中的指定子字符串已经被另一子字符串替换了指定次数。
语法
Replace(expression, find, replace [, start ] [, count ] [, compare ] )
Replace 函数的语法包含以下参数 (参数:为 *** 作、事件、方法、属性、函数或过程提供信息的值。):
参数 说明
expression 必选。其值为包含要替换的子字符串的字符串表达式 (字符串表达式:任一求值为一列连续字符的表达式。表达式的元素可以是:返回字符串或字符串 Variant (VarType 8) 的函数;字符串字面值、常量、变量或 Variant。)。
find 必选。其值为被搜索的子字符串。
replace 必选。其值为用来进行替换的子字符串。
start 可选。其值为 expression 中的位置,将在此开始子字符串搜索。如果省略该参数,则假定为 1。
count 可选。其值为要执行的子字符串替换次数。如果省略该参数,则默认值为 –1,表示进行所有可能的替换。
compare 可选。数字值,表示在计算子字符串时所采用的比较类型。有关相应的值,请参见“设置”部分。

貌似你的表没有Id主键,那么where后面用name吧,这样就只能更改sex与age了。
如果有Id主键的话,where后面就用Id,这样比较好。。。
另外,age列是不是整型的,是的话需要类型转换。。。
string sql = stringFormat("update basic set sex='{1}',age='{2}' where name='{3}'", textBox2TextTrim(),ConvertToInt32(textBox3TextTrim()),)textBox1TextTrim();

数据库中两张表数据同步举例
--建立环境
create table table1 (sno varchar(10),sname varchar(10))
create table table2 (sno varchar(10),sname varchar(10))
go
create trigger t_table1 on table1
after delete,insert,update
as
begin
delete from table2 where sno in (select sno from deleted)
if not exists (select 1 from table2 a,inserted i where asno=isno)
insert into table2
select from inserted
else
update a set asname=isname from table2 a,inserted i where asno=isno
end
go
/插入记录/
insert into table1
select '0001','aa' union all
select '0002','bb' union all
select '0004','dd'
select from table1
select from table2
--table1
/
sno sname
----- -------
0001 aa
0002 bb
0004 dd
--table2
sno sname
------ -------
0001 aa
0002 bb
0004 dd
/
/删除记录/
delete from table1 where sno='0004'
select from table1
select from table2
--table1
/
sno sname
----- -------
0001 aa
0002 bb
--table2
sno sname
------ -------
0001 aa
0002 bb
/
/更新记录/
update table1 set sname='cc' where sno='0002'
select from table1
select from table2
--table1
/
sno sname
----- -------
0001 aa
0002 cc
--table2
sno sname
------ -------
0001 aa
0002 cc
/
/删除测试/
drop table table1,table2


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/13403929.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-29
下一篇 2023-07-29

发表评论

登录后才能评论

评论列表(0条)

保存