create 语句的语法是相同的,数据类型是不同的。
但使用子查询建立表的语法是不同的。
SQL SERVER上使用子查询建立的语句:
SELECT empno, ename, sal*12 ANNSAL, hiredate into dept30 FROM emp WHERE deptno = 30;
ORACLE 上使用了查询建立表的:
CREATE TABLE dept30
AS
SELECT empno, ename, sal*12 ANNSAL, hiredate
FROM emp
WHERE deptno = 30;
SELECT empno, ename, sal*12 ANNSAL, hiredate
FROM emp
WHERE deptno = 30;
DB2 上使用了查询建立表的:
1.create table dept30 as ( SELECT empno, ename, sal*12 ANNSAL, hiredate FROM emp WHERE deptno = 30 ) definition only;
2.insert into dept30 SELECT empno, ename, sal*12 ANNSAL, hiredate FROM emp WHERE deptno = 30;
在DB2 里也可以使用这个语句来复制表中的数据。Copy table: create table emp_bak like emp;
修改表的语句对比:
SQL SERVER上增加列的语句:
ALTER TABLE dept30
ADD job VARCHAR(9);
ORACLE上增加列的语句:
ALTER TABLE dept30
ADD (job VARCHAR2(9));
DB2上增加列的语句:
ALTER TABLE dept30
ADD job VARCHAR(9);
SQL SERVER上修改列的语句:
ALTER TABLE dept30
ALTER column ename VARCHAR(15);
ORACLE上修改列的语句:
ALTER TABLE dept30
MODIFY (ename VARCHAR2(15));
DB2上修改列的语句:
D:ALTER TABLE dept30
ALTER column ename set data type VARCHAR(15);