一、 数据库中的表A(NAME char(10) ,GRADE int )中有如下内容: NAME GRADE
AAAA 80
BBBB 60
CCCC 70 表B(Name char(10), age int) 中有如下内容:
NAME AGE
AAAA 26
BBBB 24
CCCC 26
DDDD 261、写一SQL语句,得到下面的查询结果:
NAME GRADE AGE
AAAA 80 26
BBBB 60 24
CCCC 70 26
DDDD NULL 26
2、A表和B表关联,根据NAME用A表的GRADE值更新B表的AGE字段,运行后
B表的内容为
AAAA 60
BBBB 80
CCCC 86
DDDD 24
3、往A表中插入一条数据 (LMC,’30’)。其中’30’是字符型的数据,要求写出SQL语句
AAAA 80
BBBB 60
CCCC 70 表B(Name char(10), age int) 中有如下内容:
NAME AGE
AAAA 26
BBBB 24
CCCC 26
DDDD 261、写一SQL语句,得到下面的查询结果:
NAME GRADE AGE
AAAA 80 26
BBBB 60 24
CCCC 70 26
DDDD NULL 26
2、A表和B表关联,根据NAME用A表的GRADE值更新B表的AGE字段,运行后
B表的内容为
AAAA 60
BBBB 80
CCCC 86
DDDD 24
3、往A表中插入一条数据 (LMC,’30’)。其中’30’是字符型的数据,要求写出SQL语句
2好像是数据不对
3直接插入就行,隐行转换
SQL>
1 select b.name,a.grade,b.age
2 from b left outer join a
3* on a.name=b.name
SQL> /NAME GRADE AGE
-------------------- ---------- ----------
AAAA 80 26
BBBB 60 24
CCCC 70 26
DDDD 262.SQL> update b set b.age=(select a.grade from a where a.name=b.name);
3.insert into a values('LMC','30');
已创建 1 行。SQL> select * from a;NAME GRADE
-------------------- ----------
AAAA 80
BBBB 60
CCCC 70
LMC 30
--第一题
SELECT B.NAME,NVL(A.GRADE,'NULL'),B.AGE FROM B LEFT JOIN A ON B.NAME=A.NAME
--第二题
UPDATE B
SET B.AGE=(SELECT A.GRADE FROM A WHERE A.NAME=B.NAME)
--第三题
INSERT INTO A VALUES('LMC','30')
select B.NAME,A.GRADE,B.AGE
from A,B
WHERE A.NAME(+)= B.NAME;
第二题:
update b
set age = (select nvl(t.GRADE,age) from (select B.NAME, A.GRADE, B.AGE
from A, B
WHERE A.NAME(+) = B.NAME) t
where t.name = b.name)