SQL语句菜鸟问题

来源:百度知道 编辑:UC知道 时间:2024/05/04 19:01:31
select * into b from a where 1<>1
上面是复制表的语句 这里条件1<>1有什么用 不太明白
insert into b(a, b, c) select d,e,f from b
上面这个是拷贝表的语句
拷贝表和复制表有何不同 晕
谁可以解释下吗~?

select * into b from a where 1<>1
第一个是复制A表的表结构到新的B表

insert into b(a, b, c) select d,e,f from b
第二个是复制B表的数的D,E,F列的数据备份一份追加到B表的A,B,C列

是否输入错误?
如果这样的话,复制A表的数的D,E,F列的数据追加到B表的A,B,C列
insert into b(a, b, c) select d,e,f from A

如果要备份A表结构及数据
select * into b from a --where 1<>1 去掉条件就行了。

1<>1 是取得一个永远不成立的条件,筛选得到0条记录。

一样的意思,这个就是全部复制,只考虑表是否为空

Insert into table(已经存在) select (旧表列) from (旧表)

select (旧表列) into (新表,可以不存在) from (旧表)

拷贝的数据是一样的

第一段代码中的WHERE1<>1的意思是当1不等于1的时候将查询的结果插入B表中,但是由于1在任何情况下都和1相等,所以它不会插入任何数据,只是复制了表的结构。而在第二段代码中就插入了数据,其实复制和拷贝是一个意思,复制(COPY)的读音和拷贝很相似!

第一种写法是表整体复制,包括表结构。

1<>1 这个写法如果理解为1不等于1,那就是想让这个sql语句不执行。
另一种理解就是如三楼说的,分配足够表空间用以生成一张全新的数据表结构

后面的复制仅仅是将数据进行复制,理论上的只要对应的表字段数据类型符合就可以复制,而不去判断表结构

简单点就是不想让该程序执行任何操作.因为1<>1永远不会成立..

了解了吧?