sql查询求助

[复制链接]
查看11 | 回复3 | 2007-1-6 21:14:12 | 显示全部楼层 |阅读模式
我创建了两个表格,
SQL> create table students
2(
3 st_idvarchar2(20),
4 namevarchar2(10),
5 agenumber(2),
6 tol_score number(3)
7) ;
SQL> insert into students values('973231','wangbindu',22,501);
SQL> insert into students values('973232','zhuzhijing',21,538);
SQL>insert into students values('973233','gaojing',21,576);
SQL>create table student_skill
2 (
3st_idvarchar2(20),
4skillvarchar2(20)
5);
SQL>insert into student_skill values('973231','篮球');
SQL>insert into student_skill values('973233','足球');
我想得到所有的学生信息如下:
st_id name age tol_score skill
973231wangbinde22
501
篮球
973232zhuzhijing 21
538

973233gaojing21
576
足球
我写的sql:alter table students add skill varchar2(20));
insert into students (skill) select skill from student_skillwhere students.st_id=student_skill.st_id;
语法错误:非法的ALTER。请问我如何写呢?还有如何删除表中的某一列呢?
回复

使用道具 举报

千问 | 2007-1-6 21:14:12 | 显示全部楼层
删除一列
alter table 表名 drop column 列名;
你那个alter命令好像多了一个右括号)
回复

使用道具 举报

千问 | 2007-1-6 21:14:12 | 显示全部楼层
select students.st_id,name,age,tol_score,skill
from students,student_skill
where students.st_id=student_skill.st_id(+)
回复

使用道具 举报

千问 | 2007-1-6 21:14:12 | 显示全部楼层
谢谢楼上的大哥.我还是有一点不明白:(+)是显示全部内容,包括不匹配的内容,因此我觉得应该是where student_skill.st_id=students.st_id(+).因为在tudents的st_id的内容比student-skill多啊.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行