题
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表。