‘壹’ 第八十二章 sql命令 UPDATE(一)
为指定表中的指定列设置新值。
UPDATE 命令更改表中列的现有值。
可以直接更新表中的数据,也可以通过视图进行更新,或者使用括在括号中的子查询进行更新。
通过视图进行更新受制于需求和限制,如 CREATE view 中所述。
UPDATE 命令为包含这些列的一个或多个现有基表行提供一个或多个新列值。
将数据值赋给列是使用值赋值语句完成的。
默认情况下,值赋值语句更新表中的所有行。
更常见的是, UPDATE 根据条件表达式指定对特定的行(或行)进行更新。
默认情况下, UPDATE 操作遍历表中的所有行,并更新满足条件表达式的所有行。
如果没有行满足条件表达式, UPDATE 将成功完成并设置 SQLCODE=100 (不再有数据)。
可以指定 WHERE 子句或 WHERE CURRENT OF 子句(但不能同时指定两者)。
如果使用了 WHERE CURRENT OF 子句, UPDATE 将更新游标当前位置的记录。
定位操作请参见 WHERE CURRENT OF 。
UPDATE 操作将 %ROWCOUNT 局部变量设置为更新的行数,将 %ROWID 局部变量设置为更新的最后一行的 ROWID 值。
默认情况下, UPDATE 操作是一个全有或全无事件。
要么更新所有指定的行和列,要么不更新。
INSERT OR UPDATE 语句是 INSERT 语句的变体,执行插入和更新操作。
首先,它尝试执行一个插入操作。
如果插入请求失败由于违反唯一键(字段( s )的一些独特的关键,存在这一行已经有相同的值( s )为插入指定的行),然后它会自动变成一个更新请求这一行,并插入或更新使用指定的字段值来更新现有的行。
默认情况下,多行UPDATE是一个原子操作。
如果不能更新一行或多行,则 UPDATE 操作失败,不会更新任何行。
IRIS设置 SQLCODE 变量,该变量指示 UPDATE 的成功或失败,如果操作失败,还设置 %msg 。
要更新表,更新必须满足所有表、列名和值要求,如下所示。
表:
列名和值:
唯一的例外是将 SERIAL (%Library.Counter) 字段添加到具有现有数据的表时。
对于这个添加的计数器字段,现有的记录将具有NULL值。
在这种情况下,可以使用 UPDATE 将 NULL 更改为整数值。
可以通过多种方式为指定的列分配新值。
当将标量表达式值赋给列列表时,每个指定的列必须有一个标量表达式。
在为隐式列列表赋值时,必须按照 DDL 中定义的列的顺序为每个可更新字段提供一个值。
(没有指定不可更新的 RowID 列。)
这些值可以是指定新值的文字,也可以是指定现有值的字段名。
不能指定占位符逗号或省略尾随字段。
只能使用主机变量在嵌入式 SQL 中执行此值赋值。
与所有其他值赋值不同,这种用法允您延迟指定哪些列要更新到运行时(通过在运行时填充数组)。
所有其他类型的更新都要求必须在编译时指定要更新的列。
此语法不能用于链接表;
尝试这样做会导致 SQLCODE=-155 错误。
‘贰’ 修改表结构的sql命令
SQL语句中修改表结构的命令是ALTER TABLE。ALTER TABLE 语句用于在已有的表中添加、修改或删除列。
案例:表结构CREATE TABLE `login_user` ( `id` int(32) NOT NULL AUTO_INCREMENT, `name` varchar(225) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '名字'。
sql命令:
1、update :用于更新表中的数据
update table_name
set goods_name=a,goods_id=b,...
WHEREsome_column=some_value;
2、delete:用于删除表中的行
delete from table_name where some_column=some_value;
注:where语句是指定哪条记录被更新,如果省略了则所有记录都被更新。
‘叁’ SQL语言中修改表中数据的命令是什么
SQL语言中修改表中数据的命令可以使用update。
UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值;
更新修改语句 update table_name set col_name = xx where col_name = oo。
(3)数据库更新表的命令扩展阅读
SQL语言修改数据库,移动数据库文件
ALTER DATABASE Publish SET OFFLINE/*将Publish数据库设置为离线(脱机)状态*/
ALTER DATABASE Publish
MODIFY FILE
(
NAME = 'Publish_n1'
FILENAME = 'D:Publish.ndf'
) /*数据库文件位置*/
ALTER DATABASE Publish SET ONLINE/*将数据库设置为联机状态*/
‘肆’ 、SQL语言中,删除、创建基本表的命令,删除、更新、增加数据的命令
创建数据库:Create database bookstore;删除数据库:drop database bookstore;UPDATE databases是更新数据库。
‘伍’ VFP的update和replace有什么不同
update是SQL中的数据更新命令,replace是VF中的数据更新命令。
update不需要打开表,repl命令需要先打开表。
update不加条件是更新表中所有记录,repl不加条件是更新当前记录,要加上all短语才是更新所有记录。update好象只适用于VFP8.0以上。
‘陆’ 表数据修改的sql命令,必须有的关键词分别是
表数据修改的sql命令是update,只有update语句才可以更新数据库中表数据的内容。
‘柒’ MySQL更新2个表里面数据的命令(向大神们请教)
假设你要更新 ID =1,如果用MYSQL是可以实现的(目判州数前只有MYSQL支持这样的语法)。参考下面的语法。
UPDATE employee t1,info t2
SET t1.name='abc'掘首, t1.password='123', t2.tell='123456', t2.address='zxy'
WHERE t1.ID=t2.ID and t1.ID = 1;
但是按照SQL标准,在其它数据库里SQL 语句不支持 用UPDATE来同时更新两张表。你这么做可移植性不好。而且和迹键拆成两条来比较也没优势的地方。
用其它数据库你必须拆成两条UPDATE,假设你要更新 ID =1的 一个人的两部分信息那么可以参考下面的方法。
UPDATE employee SET name='abc', password='123', WHERE ID = 1
UPDATE info SET tell='123456', address='zxy' WHERE ID = (select ID from employee where ID=1);
‘捌’ mysql更新表的语句有哪些
update set命令用来修改表中的数据。update set命令格式:笑搏update 表名 set 字段=新值,… where 条件。
举例如下:mysql> update MyClass set name='Mary' where id=1;单表的MySQL UPDATE语句:UPDATE [LOW_PRIORITY] [IGNORE] tbl_name SET col_name1=expr1 [col_name2=expr2] [WHERE where_definition] [ORDER BY] [LIMIT row_count]。
多表的UPDATE语句:UPDATE [LOW_PRIORITY] [IGNORE] table_references SET col_name1=expr1 [, col_name2=expr2] [WHERE where_definition]。
UPDATE语法可以用新值更新原有表行中的各列。SET子句指示要修改哪些列和要给予哪些值。WHERE子句指定应更新哪些行。如果没有WHERE子句,则更新所有的行。如果指定宏升枯了ORDER BY子句,则按照被蔽洞指定的顺序对行进行更新。LIMIT子句用于给定一个限值,限制可以被更新的行的数目。
‘玖’ 数据库增删改查的基本命令
以下是总结的mysql的常用语句,欢迎指正和补充~
一、创建库,删除库,使用库
1.创建数据库:create database 库名;
2.删除数据库:drop database 库名;
3.使用数据库:use 库名;
二、创建数据表
1.创建表语句:create table 表名(字段名1 字段类型 字段约束,字段2 字段类型 字段约束...);
2.创建与现有表一样字段的新表:create table 表名 like 已有表名;
3.将查询结果创建新表:create table 表名 select * from 现有表 where...(查询语句);
三、查看表结构,查看建表语句,删除表
1.查看表结构:desc 表名;
2.查看建表语句:show create table 表名;
3.删除表:drop table 表名;
四、修改表结构
1.对数据表重命名:alter table 表名 rename 新表名;
2.增加字段:alter table 表名 add 字段名 字段类型 字段约束; (PS:可用first/after函数调整字段位置)
3.删除字段:alter table 表名 drop 字段名;
4.修改字段类型及约束:alter table 表名 modify 字段名 新类型 新约束;(PS:如不加新约束,会将建表时的约束清空,主键、外键、唯一约束除外)
5.修改字段名称:alter table 表名 change 字段名 新字段名 新字段类型 新约束条件;
6.修改数据库引擎:alter table 表名 engine=;(PS:主要有InnoDB和MyISAM,InnoDB对经常修改表数据友好,MyISAM对经常查询表友好)
7.增加主键:alter table 表名 add primary key(字段名);
8.删除主键:alter table 表名 drop primary key;
9.增加外键:alter table 表名 add constraint 外键名 foreign kek(字段名) references 主表(主键);
10.删除外键:alter table 表名 drop foreign key 外键名;
11.删除唯一约束:alter table 表名 drop index 字段名;
12.设置自动增长的初始位置:alter table 表名 auto_increment=n;
五、向表中插入数据
1.向表指定字段插入多条数据:insert into 表名(字段1,字段2...) values(数据1,数据2...),(数据1,数据2...),(数据1,数据2...),(数据1,数据2...);
2.将查询结果插入表:insert into 表名 select 字段名 from 表名(查询语句);
3.加载外部数据到表:Load data local infile ‘数据路径’Into table 表名 Fields terminated by ‘分隔符’Ignored 1 lines;
六、更新表数据、删除表数据
1.更改满足条件的字段数据:update 表名 set 字段计算1,字段计算2... where 条件;
2.删除满足条件的数据:delele from 表名 where 条件;
3.删除所有数据:方式一:delete from 表名; 方式二:truncate table 表名; 方式一会逐条进行删除,速度较慢,方式二直接删除,速度快;另外对自增字段,方式一不能重置自增字段的初始位置,方式二可以重置自增字段的其实位置;
‘拾’ 如何:更新数据库中的记录
可以使用 TableAdapter.Update 方法更新(编辑)数据库中的记录。 TableAdapter.Update 方法根据传入的参数提供了若干次执行不同操作的重载。 了解调用这些不同方法签名的结果非常重要。 说明 如果您的应用程序不使用 TableAdapter,您就可以使用命令裂橘对象更新数据库中的记录(例如, ExecuteNonQuery)。 有关使用命令对象更新数据的更多信息,请参见下面的“使用命令对象更新记录”。 下表描述了各种 TableAdapter.Update 方法的行为: 方法 说明TableAdapter.Update(DataTable) 尝试将 DataTable 中的所有更改保存到数据库中。 (这包括从表中移除所有删除的行、将插入的行添加到表中、更新表中已更改的所有行。) TableAdapter.Update(DataSet) 虽然该参数带有一个数据集,但 TableAdapter 仍尝试将 TableAdapter 的关联 DataTable 中的所有更改保存到数据库中。 (这包括从表中移除所有删除的行、将插入的行添加到表中、更新表中已更改的所有行。) 说明 TableAdapter 的关联 DataTable 是最初配置 TableAdapter 时创建的 DataTable。 TableAdapter.Update(DataRow) 尝试将指示 DataRow 中的更改保存到数据库中。 TableAdapter.Update(DataRows()) 尝试将 DataRow 数组中任意行中的更改保存到数据库中。 TableAdapter.Update("new column values", "original column values") 尝试保存由原始列值标识的单行中的更改。 通常,当应用程序使用数据集以独占方式存储数据时,您使用的是带有 DataSet、 DataTable 或 DataRow 的TableAdapter.Update 方法。 通常,当应用程序使用对象存储数据时,您使用的是带有列值的 TableAdapter.Update 方法。 如果TableAdapter 没有带列值的 Update 方法,就表示已将 TableAdapter 配置为使用存储过程,或者已将它的 GenerateDBDirectMethods 属性设置为 false。 尝试从 “数据集设计器”内将TableAdapter 的 GenerateDBDirectMethods 属性设置为 true,然后保存该数据集以重新生成 TableAdapter。 如果判扒TableAdapter 仍没有带列值的 Update 方法,该表就可能没有提供足够多的架构信息以区分各行(例如,未在表中设置任何主键)。 使用TableAdapter 更新现有记录 根据应用程序的需要,TableAdapter 提供了更新数据库中记录的不同方法。 如果应用程序使用数据集存储数据,则可以在所需的 DataTable 中简单地更新记录,然后调用 TableAdapter.Update 方法并传入 DataSet、 DataTable、 DataRow 或 DataRow 数组。 上表描述了不同的 Update 方法。 用带有 DataSet、DataTable、DataRow 或 DataRows() 的 TableAdapter.Update 方法更新数据库中的记录 通过直接编辑 DataTable 中的 DataRow,掘源昌编辑所需的 DataTable 中的记录。 有关更多信息,请参见 如何:编辑数据表中的行。 在 DataTable 中对行进行编辑后,请调用 TableAdapter.Update 方法。 通过传入完整的 DataSet、 DataTable、 DataRow 数组或单个 DataRow,您可以控制要更新的数据量。 下面的代码显示如何编辑 DataTable 中的记录,然后调用 TableAdapter.Update 方法将更改保存到数据库中。 (此示例使用 Northwind 数据库 Region 表。) ' Locate the row you want to update. Dim regionRow As NorthwindDataSet.RegionRow regionRow = NorthwindDataSet._Region.FindByRegionID(1) ' Assign the new value to the desired column. regionRow.RegionDescription = "East" ' Save the updated row to the database Me.RegionTableAdapter.Update(Me.NorthwindDataSet._Region) // Locate the row you want to update. NorthwindDataSet.RegionRow regionRow; regionRow = northwindDataSet.Region.FindByRegionID(1); // Assign the new value to the desired column. regionRow.RegionDescription = "East"; // Save the updated row to the database. this.regionTableAdapter.Update(this.northwindDataSet.Region); 如果应用程序使用对象存储应用程序中的数据,您就可以使用 TableAdapter 的 DBDirect 方法将数据从对象中直接发送到数据库。 这些方法可让您将各列的单个值传递为方法参数。 调用此方法用传入该方法的列值更新数据库中的现有记录。 以下过程使用 Northwind Region 表作为示例。 使用带有列值的 TableAdapter.Update 方法更新数据库中的记录 调用TableAdapter 的 Update 方法,以参数的形式为每一列传入新值和原始值。 说明 如果没有实例可用,请实例化您要使用的 TableAdapter。 Dim regionTableAdapter As New NorthwindDataSetTableAdapters.RegionTableAdapter regionTableAdapter.Update(1, "East", 1, "Eastern") NorthwindDataSetTableAdapters.RegionTableAdapter regionTableAdapter = new NorthwindDataSetTableAdapters.RegionTableAdapter(); regionTableAdapter.Update(1, "East", 1, "Eastern"); 使用命令对象更新记录 下面的示例使用命令对象直接更新数据库中的现有记录。 有关使用命令对象执行命令和存储过程的更多信息,请参见 将数据获取到应用程序。 以下过程使用 Northwind Region 表作为示例。 使用命令对象更新数据库中的现有记录 创建新的命令对象;设置它的 Connection、CommandType 和CommandText 属性;然后打开一个连接,并执行该命令。 Dim sqlConnection1 As New System.Data.SqlClient.SqlConnection("YOUR CONNECTION STRING") Dim cmd As New System.Data.SqlClient.SqlCommand cmd.CommandType = System.Data.CommandType.Text cmd.CommandText = "UPDATE Region SET [RegionDescription] = @RegionDescription WHERE [RegionID] = @RegionID" cmd.Parameters.AddWithValue("@RegionDescription", "East") cmd.Parameters.AddWithValue("@RegionID", "1") cmd.Connection = sqlConnection1 sqlConnection1.Open() cmd.ExecuteNonQuery() sqlConnection1.Close() System.Data.SqlClient.SqlConnection sqlConnection1 = new System.Data.SqlClient.SqlConnection("YOUR CONNECTION STRING"); System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand(); cmd.CommandType = System.Data.CommandType.Text; cmd.CommandText = "UPDATE Region SET [RegionDescription] = @RegionDescription WHERE [RegionID] = @RegionID"; cmd.Parameters.AddWithValue("@RegionDescription", "East"); cmd.Parameters.AddWithValue("@RegionID", "1"); cmd.Connection = sqlConnection1; sqlConnection1.Open(); cmd.ExecuteNonQuery(); sqlConnection1.Close(); 安全性 您必须具有访问正尝试连接到的数据库的权限,以及更新所需表中记录的权限。 请参见任务 如何:删除数据库中的记录 如何:将新记录插入数据库 如何:将数据从对象保存到数据库概念 TableAdapter 概述 准备应用程序以接收数据 将数据获取到应用程序 在Visual Studio 中将控件绑定到数据 在应用程序中编辑数据 验证数据 保存数据其他资源 Visual Studio 的数据应用程序概述 连接到 Visual Studio 中的数据