以下SQL语句的答案是什么?

时间:2017-09-16 02:00:46

标签: sql database

最近我正在阅读一些在线求职面试问题,并在下面找到关于SQL的多项选择题。

EMPLOYEES有5行。请考虑以下SQL语句序列。

SQL>CREATE TABLE myTable SELECT AS (SELECT * FROM EMPLOYEES);
SQL>INSERT INTO myTable SELECT * FROM myTable;
SQL>INSERT INTO myTable SELECT * FROM myTable;
SQL>INSERT INTO myTable SELECT * FROM myTable;
SQL>INSERT INTO myTable SELECT * FROM myTable

如果SQL语句SELECT COUNT(*)FROM myTable;在执行上面列出的所有语句后执行,将打印的是

a) 80 
b) 25 
c) 20 
d) 5

我认为答案是25,但该在线门户网站正在说正确的答案是80.

但是怎么样,不确定!有人可以帮忙吗?

2 个答案:

答案 0 :(得分:4)

编辑答案:答案是80,因为

  1. 步骤:myTable:5(INSERT INTO myTable SELECT * FROM myEmployees;)
  2. 步骤:myTable:5 + myTable => 10
  3. 步骤:myTable:10 + myTable => 20
  4. 步骤:myTable:20 + myTable => 40
  5. 步骤:myTable:40 + myTable => 80 您可以在此处查看详细信息http://rextester.com/TQHFE11034

答案 1 :(得分:4)

80是正确答案。

之后

 CREATE TABLE myTable AS (SELECT * FROM EMPLOYEES);

MYTABLE中有5行。

INSERT INTO myTable SELECT * FROM myTable之后,MYTABLE中有10行。

INSERT INTO myTable SELECT * FROM myTable之后,MYTABLE中有20行。

INSERT INTO myTable SELECT * FROM myTable之后,MYTABLE中有40行。

INSERT INTO myTable SELECT * FROM myTable之后,MYTABLE中有80行。

此时SELECT COUNT(*) FROM MYTABLE将返回80

SQLFiddle here