1 2 3 4

sql语法题(答案非唯一,能想到越多越好)

SQL> SELECT * FROM A;
     CST_ID CST_NAME
----------- --------------------------------------------------
          2 姓名2
          3 姓名3
          4 姓名4
          5 姓名5
          6 姓名6
          7 姓名7
          8 姓名8
          9 姓名9
         10 姓名10
         11 姓名11
10 rows selected

SQL> SELECT * FROM B;
     CST_ID CST_NAME
----------- --------------------------------------------------
          1 客户1
          3 客户3
          5 客户5
          7 客户7
          9 客户9

1.观察B表的数据规则,然后再增加插入不少于10条记录。

declare
  i number(6):=9;
begin
  loop
    i:=i+2;
    exit when i=31;
    INSERT INTO B(CST_ID,CST_NAME) VALUES(i,'客户'||i); 
  end loop;
end;
SQL> select * from B;
     CST_ID CST_NAME
----------- --------------------------------------------------
         11 客户11
         13 客户13
         15 客户15
         17 客户17
         19 客户19
         21 客户21
         23 客户23
         25 客户25
         27 客户27
         29 客户29
          1 客户1
          3 客户3
          5 客户5
          7 客户7
          9 客户9
15 rows selected

2.删除A表比B表多出的CST_ID记录。

DELETE FROM A WHERE A.CST_ID 
IN (SELECT A.CST_ID FROM A LEFT JOIN B
ON A.CST_ID=B.CST_ID
WHERE A.CST_ID=B.CST_ID);
DELETE FROM A 
WHERE EXISTS(
SELECT B.CST_ID FROM B 
WHERE B.CST_ID=A.CST_ID
)
SQL> select * from A;
     CST_ID CST_NAME
----------- --------------------------------------------------
          2 姓名2
          4 姓名4
          6 姓名6
          8 姓名8
         10 姓名10

3.把A中与B表不相同的数据全部更新到B表。

posted @ 2020-03-31 16:43  多走多看  阅读(223)  评论(0编辑  收藏  举报