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

2021-10-16 11:01:52 字數 4047 閱讀 3283

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一張表中一條sql語句如何count多條資料

下面這樣就行了 select count b from awhere 1 1 and b 1 or b 2 or b 3 group by b select count from a select count b1 count b2 count b3 from a 直接bai加入du 就是了。zhi...

SQL怎麼將表中的資料拼接到另一張表中

如果兩表字段相同,則可以直接這樣用。insert into table a select from table b 如果兩表字段不同,a表需要b中的某幾個字段即可,則可以如下使用 insert into table a field a1,field a2,field a3 select field ...

sql語句怎麼從一張表中查詢資料插入到另一張表中

以下 1 insert into a id ids,name type,time select id null,name dd getdate from b where type dd 2 declare num int,i int set i 0 set num select 字段 專 from ...