기록해! 정리해!

2-3 본문

Oracle

2-3

zsuling 2022. 5. 17. 16:06

8) 문두어

insert into enrol(sno,cno,grade,midterm,final) --자바에서는 명령어로 final이 있기때문에 컬럼이름으로 사용할 수 없음
values('400','C123','A',90,90);

 

테이블의 이름 앞 글자를 따라 컬럼의 이름을 만들어줌

예) student - sno, sname ...

       course - con, cname ...

 

9) join (테이블 두개 묶기)

[ANSI-SQL] --권장
select * from student join enrol 
on student.sno=enrol.sno;

[T-SQL, PL-SQL]
select * from student, enrol 
where student.sno=enrol.sno;

 

insert into student(sno,sname,year,dept) 
values('600','영심이','2','산공');
--join을 하면 안나옴,양쪽 둘 다 있는 거만 출력하는 거임(예;우리학생이고 시험을 본 사람만 출력)


select * from student left join enrol 
on student.sno=enrol.sno;

--600번 나옴 (학생이긴한데 시험은 안봄)

 

(1). 이너 조인: 왼쪽 오른쪽 둘 다 있는 값만 나옴

select * from student join enrol
on student.sno=enrol.sno;

-- 600 안나옴


(2). 아우터 조인: 기준을 잡아서 나타내는 것 
select * from student left outer join enrol 
on student.sno=enrol.sno
order by student.sno desc;
--(student가 기준이므로 600나옴)

select * from student right outer join enrol 
on student.sno=enrol.sno
order by student.sno desc;
--(enrol이 기준, 600안나옴)

select * from student full outer join enrol 
on student.sno=enrol.sno
order by student.sno asc;
--(양쪽 다 기준이 돼서 다 나옴, 600나옴)

 

10) 제약조건

1. 참조키 fk (foreign key)

: 참조하는 조건이 없으면 못씀

: 다른 테이블의 pk를 참조함

예) constraint enrol_sno_fk foreign key(sno) references student(sno)

 

2. 유니크제약조건

: 중복은 안되는데 null은 사용가능함

: null은 연산이 안되기 때문에 중복해도됨 

3. not null 제약조건4. check 제약조건

 

-- 제약조건은 정확한 값을 받기 위해서 사용한다

UI, 데이터베이스, 서버 다 넣어야 함 (아무도 믿으면 안돼...!)

 

11) 별칭

select * from student s left join enrol e 
on s.sno=e.sno;
--테이블의 명칭은 풀네임 옆에 쓰기

select s.sno,sname,grade from student s left join enrol e 
on s.sno=e.sno;
-- s.sno 그니까 누구의 sno를 나타낼 것인가

select s.sno as "학 번",sname as "이름",grade from student s left join enrol e 
on s.sno=e.sno;
-- s.sno의 별칭 "학 번" / 따옴표가 있어야 안에 공백을 사용할 수 있음 

-- 컬럼의 명칭은 as ""

select * from student s, enrol e 
where student.sno=enrol.sno;

'Oracle' 카테고리의 다른 글

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