SQL根據現有表一張表,想一張表,的這張表結構要

時間 2021-10-16 11:01:39

1樓:

看你用的什麼資料庫:

sql server :

select * into table_new from table_old ; 複製結構和資料

select * into table_new from table_old where 1=2;只複製結構

oracle:

create table table_new as select * from table_old;複製結構和資料

create table table_new as select * from table_old where 1=0;只複製結構

db2:

--複製表結構

create table table_name_new as (select * from table_name_old) definition only;

--插入資料

insert into table_name_new (select * from table_name_old);

mysql:

----- 複製表結構及資料到新表

create table 新表 select * from 舊錶

----- 只複製表結構到新表

create table 新表 select * from 舊錶 where 1=2

2樓:

//複製了表student 的表結構到 studets中了

select top 0 * into studets from student

3樓:

sqlserver:select * into b from a where 1 <> 1 或者select top 0 * into b from a

a是原表,b是現有表。

oracle:create table b as select * from a where 1 <> 1

4樓:無極園

create table newtable as

select * from oldtable where 1=2

sql update 的更新值**於另外一個表,如何實現?

5樓:匿名使用者

1、建立兩個測試表,

create table test_up_a(id number, value varchar2(100));

create table test_up_b(id number, value varchar2(100));

2、分別往兩個表中插入資料;

insert into test_up_a values(1,'a1');

insert into test_up_a values(2,'a2');

insert into test_up_a values(3,'a3');

insert into test_up_a values(4,'a4');

insert into test_up_a values(5,'a5');

insert into test_up_a values(6,'a6');

insert into test_up_b values(1,'bbbb1');

insert into test_up_b values(2,'bbbb2');

insert into test_up_b values(5,'bbbb5');

commit;

3、分別檢視兩個表中資料;

select 'tbl_a', t.* from test_up_a t

union all

select 'tbl_b', t.* from test_up_b t

4、執行更新指令碼,可以發現test_up_a.value值已變化;

update test_up_a t

set t.value =

(select b.value

from test_up_b b

where t.id = b.id

and rownum = 1)

6樓:我tm不管

update 表a,表b set 表a.欄位2=表b.欄位4 where 表a.欄位1=表b.欄位3

正確答案,錯了管飯

7樓:行雯姚秀媚

update

好像是不能同時更新兩個表的

樓主想同時更新這兩個表而採用單個更新是因為2個表的約束關係其實還有一個辦法

就是先把兩個表的約束關係都停用了

然後用2條語句將2個表分別更新,更新完了以後再啟用兩個表的約束關係就可以了

8樓:匿名使用者

這樣就可以了:

update 表a as a,表b as b set a.欄位1=b.欄位 where a.欄位c=b.欄位c;

針對問題補充:

update 表a as a,表b as b set a.欄位2=b.欄位4 where a.欄位1=b.欄位3;

9樓:親愛的老爺

update 表a set 欄位1 in(select 值 from 表b)

用in返回結果集而不是單一結果

不太明白 是這個意思麼?

10樓:匿名使用者

update a set a.欄位2 = b.欄位2 from 表a,表b where a.欄位1 = b.欄位1

sql中引用一個表的查詢結果作為條件來查詢另一個表如何實現?

11樓:匿名使用者

1、用baisqlserver作為測試,建立學生、教師、班

du級三張zhi表。每張表都有一個id,int型別dao的專(自增長),作為每屬個表的主鍵。

2、新增測試資料,並建立班級與學生、教師與班級的中間表。insert into dbo.student(sname) values('張三'),插入多條,由於id自增長所以sid自動填充了。

類似將教師和班級也新增上測試資料。

3、建立班級教師表class_teacher,班級學生表class_student。

4、然後將1和2 放到1班,3和4放到2班。5和6 不放(可以理解為剛入學沒有分配班級)。然後將3個老師分配到3個班級insert into dbo.

class_teacher values (1,1)insert into dbo.class_teacher values (2,2)insert into dbo.class_teacher values (3,3)。

5、這樣,1班和2班各有兩名同學,3班沒有同學,有兩個同學沒有分配班級,每一個老師都分配了班級。現在要查詢所有班級學生情況。

12樓:樂樂愛知道

exists 這個裡面得要包含和外面表的關係的。

select 消費

號,sum(金額)金額 from 護理版卡權消費 twhere exists (

select distinct a.消費號 from 護理卡消費歷史 a left join 護理卡消費 d on a.消費號=d.消費號

where a.服務名稱 in (select b.服務名稱 from 服務類別 b where b.服務專案類別='面部護理')

and t.消費號=a.消費號 )

group by 金額,消費號

13樓:

exists 這個裡面得bai要包含和外du面表的關係的。zhiselect 消費號,sum(金額

dao)金額 from 護理版卡權消費 twhere exists (

select distinct a.消費號 from 護理卡消費歷史 a left join 護理卡消費 d on a.消費號=d.消費號

where a.服務名稱 in (select b.服務名稱 from 服務類別 b where b.服務專案類別='面部護理')

and t.消費號=a.消費號 )

group by 金額,消費號

你這樣試試

sql怎麼將一張表的欄位賦值給另一張表

插入資料insert into tbytz userid select userid from tbuser更新資料則在tbuser和tbytz兩個表要有一個關係。如tbuser.a1 tbytz.a2update tbytz set tbytz.userid select userid from ...

資料庫從一張表向另一張表怎麼插入資料

千鋒教育 下面以mysql資料庫為例分情況一一說明 兩張表 inserttest和inserttest2,前者中有測試資料 1.如果2張表的欄位一致,並且希望插入全部資料,可以用這種方法 insert into 目標表 select from 表 insert into inserttest sel...

在SQL中怎樣將多張表的資料插入一張表中

我tm不管 insert into tablea a,b,c select a,b,c from tablebunion all select a,b,c from tablecunion all select a,b,c from tabled這是個原因,具體情況得看你建表的情況和你表欄位的情況!...