




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
update select最常用的update语法是:UPDATE SET = , SET = 如果我的更新值Value是从一条select语句拿出来,而且有很多列的话,用这种语法就很麻烦第一,要select出来放在临时变量上,有很多个哦第二,再将变量进行赋值。列多起来非常麻烦,能不能像Insert那样,把整个Select语句的结果进行插入呢?就好象下面insert into table1(c1, c2, c3)(select v1, v2, v3 from table2)答案是可以的,具体的语法如下:UPDATE SET (, ) = (SELECT (, )FROM WHERE = )WHERE ;下面是这样一个例子:两个表a、b,想使b中的memo字段值等于a表中对应id的name值 表a:id, name 1 王 2 李 3 张 表b:id,ClientName 1 2 3 (MS SQL Server)语句:update b set ClientName = from a,b where a.id = b.id(Oralce)语句:update b set (ClientName) = (SELECT name FROM a WHERE b.id = a.id)update set from 语句格式当where和set都需要关联一个表进行查询时,整个update执行时,就需要对被关联的表进行两次扫描,显然效率比较低。对于这种情况,Sybase和SQL SERVER的解决办法是使用UPDATE.SET.FROM.WHERE.的语法,实际上就是从源表获取更新数据。在 SQL 中,表连接(left join、right join、inner join 等)常常用于 select 语句,其实在 SQL 语法中,这些连接也是可以用于 update 和 delete 语句的,在这些语句中使用 join 还常常得到事半功倍的效果。Update T_OrderForm SET T_OrderForm.SellerID =B.L_TUserIDFROM T_OrderForm A LEFT JOIN T_ProductInfo B ON B.L_ID=A.ProductID用来同步两个表的数据!Oralce和DB2都支持的语法:UPDATE A SET (A1, A2, A3) = (SELECT B1, B2, B3 FROM B WHERE A.ID = B.ID)MS SQL Server不支持这样的语法,相对应的写法为:UPDATE ASET A1 = B1, A2 = B2, A3 = B3FROM A LEFT JOIN B ON A.ID = B.ID个人感觉MS SQL Server的Update语法功能更为强大。MS SQL SERVER的写法:UPDATE A SET A1 = B1, A2 = B2, A3 = B3 FROM A, B WHERE A.ID = B.ID在Oracle和DB2中的写法就比较麻烦了,如下:UPDATE A SET (A1, A2, A3) = (SELECT B1, B2, B3 FROM B WHERE A.ID = B.ID)WHERE ID IN (SELECT B.ID FROM B WHERE A.ID = B.ID)=SELECT.INTO 以及insert into.select总结SELECT.INTO 语句 创建制表检索. 语法 SELECT field1, field2, .INTO新表IN外部数据库 FROM源 SELECT.INTO 语句可分为以下几个部分:部分 说明 field1, field2 欲复制至新表的字段的名称。 NewTable 欲创建的表的名称。它应遵循标准命名公约.如果 NewTable 的名称与现存表的名称相同时,将会发生可以捕捉到的错误。 Externaldatabase 进入外部数据库的路径。有关路径的描述,请参阅 IN 子句。 source 从其中选择记录的现存表的名称。它可以是单一表或多重表或一个查询。 查看:/sql/sql/2006-4-8/select_insert.htm(用SELECT复制记录和表)说明 可以使用生成表查询来存档记录、生成表的复制备份、或生成输出至另一个数据库的表的副本、或用作定期显示数据的报表的依据。例如,可以每月运行一次同样的生成表查询,生成地区的销售月报。 注意 或许你想要为新表定义一个主键。创建新表时,新表中的字段将继承查询基本表中每一个字段的数据类型及大小,但不传递其他的字段或表属性。 使用 INSERT INTO 语句 而不用创建追加检索来把数据加入当前表中。 在运行生成表查询之前,若要知道会选择哪些记录,可以先看一看使用相同选择条件的 SELECT 语句的结果。SELECT.INTO 语句示例 此示例选择在员工表中的所有记录,然后复制到命名为 Emp Backup 的新表中。 Sub SelectIntoX() Dim dbs As Database Dim qdf As QueryDef 在您的计算机中修改此行使其正确指到 Northwind 的路径。 Set dbs = OpenDatabase(Northwind.mdb) 对运费超过 $100 的订单, 选择员工表中的所有记录, 并且复制到称作员工备份的新表中。 dbs.Execute SELECT Employees.* INTO _ & Emp Backup FROM Employees; 删除 QueryDef 因为这是一个演示。 dbs.Execute DROP TABLE Emp Backup; dbs.Close End Sub在access中插入数据到另外的表: (蓝色理想 萧萧小雨)大家都知道Select into 吧。 比如: = select into tableB select * from tableA where userName=abc = 会创建新表tableB,把tableA中符合条件的纪录插入到tableB中。 这是在一个mdb文件里操作的。 现在我想把A.mdb里的表tableA里的符合条件的纪录插入到B.mdb里的tableB中, 你有什么好办法吗? 哈哈,我开始想的也是先检索tableA的A.mdb,然后循环记录集插入到B.mdb。 这需要打开两个Connection。 后来我发现一招(高手不要说OLD啊) 首先得知道B.mdb的物理地址。这里用toDBFile变量表示(可以用Server.MapPath取得) = sql=insert into tableB IN & toDBFile & select * FROM tableA where userName=abc = 只要建立一个到A.mdb的连接。执行这个SQL语句就一切OK了。-insert into (select . from . where . with check option) values SQL create table test(id varchar2(20) not null primary key,mc varchar2(60); Table created SQL insert into (select id,mc from test where id=1) values(1,111111); 1 row inserted SQL select * from test; ID MC - - 1 111111 SQL insert into (select id,mc from test where id=1) values(1,111111); insert into (select id,mc from test where id=1) values(1,111111) ORA-00001: 违反唯一约束条件 (ROME.SYS_C0027236) SQL insert into (select id,mc from test where id=1) values(2,222222); 1 row inserted SQL insert into (select id,mc from test where id=10) values(3,333333); 1 row inserted SQL select * from test; ID MC - - 1 111111 2 222222 3 333333 SQL insert into (select id,mc from test where id=10 with check option) values(5,555555); insert into (select id,mc from test where id=10 with check option) values(5,555555) ORA-01402: 视图 WITH CHECK OPTIDN where 子句违规 SQL insert into (select id,mc from test where 1=1 with check option) values(5,555555); 1 row inserted SQL select * from test; ID MC - - 1 111111 2 222222 3 333333 5 555555-PostgreSQL名称 SELECT INTO 从当前表或视图中创建一个新表 SELECT ALL | DISTINCT ON ( expression , . ) expression AS name , . INTO TEMPORARY | TEMP TABLE new_table FROM table alias , . WHERE condition GROUP BY column , . HAVING condition , . UNION ALL | INTERSECT | EXCEPT select ORDER BY column ASC | DESC | USING operator , . FOR UPDATE OF class_name , . LIMIT count | ALL OFFSET | , start 输入 所有输入的域都在SELECT中有详细描述。 输出 所有输入的域都在SELECT中有详细描述。 描述 SELECT INTO从一个查询中创建一个新表。 比较典型的是这个查询从一个现存的表中提取数据,但实际上任何SQL查询都可以。 注意: CREATE TABLE AS功能上和SELECT INTO命令相等。-常见用途制作备份 下面的示例制作一个Persons 表的备份。SELECT * INTO Persons_backup FROM Persons IN子句可用于复制表到另一个数据库。SELECT Persons.* INTO Persons IN Backup.mdb FROM Persons 如果你只希望复制一些字段,你也可以在SELECT语句后列出字段清单。SELECT LastName,FirstName INTO Persons_backup FROM Persons 你也可以添加一个子句。下面的示例通过从Persons 表筛选居住于 Sandnes 的人,用两列 (FirstName and LastName) 创建一个Persons_backup SELECT LastName,Firstname INTO Persons_backup FROM Persons WHERE City=Sandnes 从多于一个表选择数据也是可能的。下面的示例创建一个包含Employees和Orders两个表数据的新表 Empl_Ord_backup。SELECT Employees.Name,Orders.Product INTO Empl_Ord_backup FROM Employees INNER JOIN Orders ON Employees.Employee_ID=Orders.Employee_ID-select into 和 insert into select 两种表复制语句之间的差别select * into destTbl from srcTbl in
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GT3-Sphingosine-d18-1-生命科学试剂-MCE
- GPER-Bcl-2-IN-1-生命科学试剂-MCE
- 2025湖南长沙市财盛国际贸易有限公司招聘2人考前自测高频考点模拟试题完整答案详解
- 2025南昌铁路科技有限公司招聘高铁(普铁)设备维保技术人员模拟试卷及答案详解(新)
- 传统制造业数字化转型的路径探讨
- 2025年浙江杭州市萧山区第三人民医院招聘编外人员1人考前自测高频考点模拟试题及答案详解(必刷)
- 2025河南陆军第八十三集团军医院招聘34人考前自测高频考点模拟试题及答案详解(名师系列)
- 2025广东珠海市香洲区劳动人事争议仲裁委员会选聘特邀调解员10人考前自测高频考点模拟试题及答案详解(必刷)
- 2025江西职业技术大学高层次人才招聘51人考前自测高频考点模拟试题参考答案详解
- 跨文化沟通与冲突解决工具
- 涂装技能师考试题及答案
- 国庆节前安全培训课件
- 获得性长尖端扭转性室速朱俊讲课文档
- 2025年烟草专卖局公开遴选面试高分策略及模拟题答案
- 2025年陕西省事业单位招聘考试卫生类护理学专业知识试题
- 乳制品行业智能化奶源管理与追溯方案
- 医务人员职业道德准则(2025年版)全文培训课件
- 恒瑞医药2023ESG社会责任报告:关注员工成长共建美好家园
- 急性高原反应救治课件
- 医院网络信息安全培训
- 《构成设计基础》全套教学课件
评论
0/150
提交评论