如何使用SQL语句修改表内的数据

如何使用SQL语句修改表内的数据,第1张

修改表中内容

修改用到update语句,语句格式为:UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值

即 update 员工表 set 部门id=01 where 员工id=0004

SQL联合主键

Create Table 表名 (字段1 Int Not Null,

字段名2 nvarchar(13) Not Null Primary Key (字段名1, 字段名2),

字段名3????

字段名N???? )

扩展资料

主键是数据库表的一个重要属性,建立主键可以避免表中存在完全相同的记录,也就是说主键在一张表中的记录值是唯一的。 建立主键有两种方法:一种是在数据库提供的GUI环境中建立,另一种是通过SQL语句执行建立,下面分别介绍。

在数据库提供的GUI环境中建立(以SQL7为例)。输入表信息后按Ctrl键同时选中多行,然后点上面的主键按钮就行了。

通过SQL语句执行建立。又分两种,一是在建表语句中直接写,二是建表之后更改表结构。

在建表语句中直接写:

Create Table 表名 (字段名1 Int Not Null,

字段名2 nvarchar(13) Not Null Primary Key (字段名1, 字段名2),

字段名3????

字段名N???? )

参考资料: 网页链接

在告诉大家如何替换数据内容之前,我建议大家先了解一下SQL Server数据库的数据存储类型:在使用iwms系统的过程中,我们会经常遇到数据内容的替换 *** 作。在告诉大家如何替换数据内容之前,我建议大家先了解一下SQLServer数据库的数据存储类型:SQLServer数据类型:以上是数据库的基础知识,是做网站的朋友都应该知道的内容(无论你使用什么cms),所以建议大家都耐心看一下。数据替换一般都发生在字符串数据字段中,除了ntext类型字段以外的其他字符串数据字段都可以使用以下的sql语句进行替换:update [swf_Upload] set [Dir] = replace([Dir],'200901/14','200901/15')update [swf_Content] set [Description] =replace([Description],'200901/14','200901/15')update [swf_Content_01] set [content] = replace(convert(varchar(4000), [content]),'200901/14','200901/15') UPDATE [数据表名] SET [字段名] = REPLACE([字段名],'老字符串','新字符串')比如,替换iwms文章数据表(iwms_news)中的标题字段(title)的部分内容,我们应该这么写:UPDATE [iwms_news] SET [title] = REPLACE([title],'老字符串','新字符串')上面的sql语句在iwms后台的sql执行里面可以直接执行,基本上可以搞定所有的替换 *** 作,但是由于ntext数据长度的原因,这一方法对ntext类型字段无效。那我们该用什么方法替换ntext类型字段的内容呢?方法有两种:一是类型转换,将ntext类型转换为varchar类型,然后再用replace。适合于单页内容最大长度<4000的文章。update [数据表名] set [字段名] = replace(convert(varchar(4000), [字段名]),'老字符串','新字符串')比如,替换iwms文章数据表(iwms_news)中的标题字段(content,ntext类型字段)的部分内容,我们应该这么写:update iwms_news set [content] = replace(convert(varchar(4000),[content]),'老字符串','新字符串')二是SQLServer存储过程declare @ptr varbinary(16)declare @artId intdeclare @Position int,@len intset @len = datalength('老字符串')declare wux_Cursor scroll Cursorforselect textptr([字段名]),[key字段名] from [数据表名]for read onlyopen wux_Cursorfetch next from wux_Cursor into @ptr,@artIdwhile @@fetch_status=0beginselect @Position=patindex('%老字符串%',[字段名]) from [数据表名] where [key字段名]=@artIdwhile @Position>0beginset @Position=@Position-1updatetext [数据表名].[字段名] @ptr @Position @len '新字符串'select @Position=patindex('%老字符串%',[字段名]) from [数据表名] where [key字段名]=@artIdendfetch next from wux_Cursor into @ptr,@artIdendclose wux_cursordeallocate wux_cursorgo比如,替换iwms文章数据表(iwms_news)中的标题字段(content,ntext类型字段)的部分内容,我们应该这么写declare @ptr varbinary(16)declare @artId intdeclare @Position int,@len intset @len = datalength('老字符串')

mysql可以用以下方法

-- tableb 通过 aid 关联tablea 的id,把tableb的fielda字段写入tablea的fielda字段

UPDATE tablea SET fielda = (select fielda from tableb where tablea.id=tableb.aid)

-- 关联方式一样,把tablea中fielda的字段中的特定字符串替换成tableb中指定字段的值

update tablea set fielda = REPLACE(fielda,'[价格]',

(select price from tableb where tablea.id=tableb.aid)

)

sql server就不能一条语句更新了,要做存储过程来处理


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

原文地址: http://outofmemory.cn/sjk/6769497.html

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

发表评论

登录后才能评论

评论列表(0条)

保存