程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SyBase數據庫 >> SyBase綜合文章 >> Sybase復制表結構和其他主流數據庫的區別

Sybase復制表結構和其他主流數據庫的區別

編輯:SyBase綜合文章

Sybase復制表結構相信大家都比較熟悉了,下面就將對Sybase復制表結構和其他數據庫系統的復制表結構方法進行比較,供您參考。

因為數據庫SQL語句在各大產品中帶有“方言性”,即SQLSERVER Sybase都是用了T-SQL,MySQL是用的標准SQL,Oracle有有自己的PL/SQL。由於這種“方言性”的差異導致很多SQL語句在移植的時候產生困難,在異構數據庫的時候顯得很尴尬。當然對於DBA來說,無非是查查語法而已的事。但是終究是不方便。這裡就跟大家分享下我自己實驗整理的,復制表結構即數據的各數據庫中的語法分析。

先來說說SQLSERVER大家最熟悉的。

--當數據庫中沒有新表的情況,比如有了A,沒有B表。

select * into B from A --復制表及數據

select * into B from A where 1>1 --只復制表結構

--當數據中已經有了B表的情況,上面就不適用了。

insert into B select * from A --復制表數據,為了避免。B表理論上應該沒有數據,如果有,可能會造成違反主鍵。

insert into B select * from A where id>10 --加上where條件可以指定復制數據,上面沒有表的情況也可以這樣做。

這裡要說的是,sybase和SQLSERVER是一樣的。因為從某種角度來說,Sybase就是SQL的原型。

接下來是MySQL。稍微語法有不同。

--數據庫中沒有B表的情況

create table B select * from A

create table B select * from A where 1<>1 --只復制表結構

--有B表的情況和sqlserver基本相同

insert into B select * from A

Oracle 基本上合MYSQL是一樣的,不過語法要求更嚴謹。當然MySQL也可以這樣寫。

--數據庫中沒有B表的情況

create table B as select * from A

create table B as select * from A where 1<>1 --只復制表結構

create table B like A--復制表結構

--有B表的情況基本相同

insert into B select * from A

這些都是較為初級的SQL語句,但是也比較適用,以後會分析一些其他的常用SQL語句。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved