기록해! 정리해!

2- 예제1 본문

Oracle

2- 예제1

zsuling 2022. 5. 17. 13:12

 drop  table enrol;  --얘부터 지워야함
 drop  table student;
 drop  table course;

 create table student(
 sno varchar2(3) not null  primary  key ,  --컬럼 옆에 pk가 기본
 sname nvarchar2(10),
 year varchar2(10),
 dept nvarchar2(10) 
);

insert into student(sno,sname,year,dept)
values('100','나연묵','4','컴퓨터');
insert into student(sno,sname,year,dept)
values('200','이찬영','3','전기');
insert into student(sno,sname,year,dept)
values('300','정기태','1','컴퓨터');
insert into student(sno,sname,year,dept)
values('400','송병호','4','컴퓨터');
insert into student(sno,sname,year,dept)
values('500','박종화','2','산공');

select * from student;
select * from student where dept='컴퓨터'; 
select * from student where year='4';
select * from student where year='1' and dept='컴퓨터';

--sno가 100번인 학생의 학번과 이름을 출력하시오
select sno, sname from student where sno ='100';

--sno가 100번 또는 sno가 300번인 학생의 레코드를 출력하시오
 select * from student where sno = '100' or sno = '300'; --or 뒤에도 컬럼의 명시를 해줘야함
 select * from student where sno in ('100','300');

--이름에 '기'란 글자가 포함되어 있는 컴퓨터과 학생의 레코드를 출력하시오
 select * from student where sname like'%기%' and dept='컴퓨터';
 
 --학과가 전기과 또는 산공과인 학생의 레코드를 출력하시오
 select * from student where dept='전기' or dept='산공';
 
 --컴퓨터과가 아닌 학생의 이름과 학과를 출력하시오
 select sname, dept from student where dept!='컴퓨터';
 select sname, dept from student where dept<>'컴퓨터'; 
 
 --학과가 전기과 또는 산공과가 아닌 학생의 레코드를 출력하시오
 select * from student where dept!='전기'and dept!='산공';
 select * from student where dept not in ('전기','산공'); 

 select * from student where not (dept='전기' or dept='산공');

 

 --이름을 기준으로 내림차순 정렬
 select * from student order by sname desc;
 
 --학년을 기준으로 내림차순 정렬 후 번호를 이용하여 오름차순 정렬하시오
 select * from student order by year desc, sno asc;

 

-- 100번 학생의 이름을 나현묵으로 변경하시오
update student set sname='나현묵' where sno='100';

-- 전기과를 전자공학과로 변경하시오
update student set dept='전자공학' where dept='전기';

-- 400번 학생의 레코드를 이름은 둘리, 학년은 5학년으로 변경하시오
update student set sname='둘리', year='5' where sno='400';

-- 600번 영심이, 5학년, 산공과로 추가하시오
insert into student(sno,sname,year,dept)
values('600','영심이','5','산공');

-- 이름의 시작이 '박'으로 시작하는 학생을 삭제하시오
delete from student where sname like'박%';

 

'Oracle' 카테고리의 다른 글

2-SQL 기본문법 정리  (0) 2022.05.18
2-3  (0) 2022.05.17
2-2  (0) 2022.05.17
2-1  (0) 2022.05.17
1-SQL 기본문법 정리  (0) 2022.05.16
Comments