⁂ Oracle DB/: 기본 익히기

[Oracle] #5-2 조인(Join)
1. 테이블 조인 - 여러 테이블을 하나의 테이블처럼 사용하는 조인 - 두 개 이상의 테이블을 결합하여 데이터를 추출하는 기법 - 두 테이블의 공통값을 이용하여 컬럼을 조합하는 수단 ● [테이블 조인의 종류] 1) inner join - 두 테이블에 공통으로 존재하는 칼럼을 이용하는 방식 - inner 생략가능 - 기본 2) left outer join - 왼쪽 테이블의 모든 데이터와 오른쪽 테이블의 동일 데이터를 추출 - outer 생략가능 3) right outer join - 오른쪽 테이블의 모든 데이터와 왼쪽 테이블의 동일 데이터를 추출 - outer 생략가능 ● [ (+)기호를 이용한 테이블 조인 ] (+)기호는 일치되지 않는 행이 존재하는 않은 쪽에 붙인다, where을 사용한다 select ..

[Oracle] #5-1 모델링(테이블 시나리오, 테이블 정의서) 개념 정리
* NCS 학습모듈 - 데이터 입출력 구현 참조 1. 관계형 DB 모델링 연습 - 모델링을 위해서 업무 분석을 한다. - ER-WIN : 관계형 DB 모델링을 도식화할 수 있는 프로그램 2. 학사관리 업무분석 학사관리를 하기 위해선 어떤 데이터들이 필요할까? - 학생이 수강신청을 하고, 수강신청 과목의 목록, 수강신청 과목의 총 학점 - 해당 과목을 수강신청한 학생목록 이 중에서 우리는 [학생, 과목, 수강신청] 의 데이터를 추출해서 시나리오를 작성하려한다. 3. 테이블 시나리오 1) 좋은 테이블 설계하기 홍길동, 무궁화, 개나리 라는 학생이 수강신청을 한 것을 테이블 시나리오로 작성해보았다. 위의 테이블은 잘못 설계되었다. 왜냐하면 Null 값이 많이 발생되며 개나리의 수강과목이 추가될수록 칼럼이 계속..

[Oracle] #4-4 오라클과 마리아DB의 자료형
1. 표준형 자료형 Oracle 게시글에 지금까지 사용하는 sungjuk 테이블의 값들은 제각기 자료형을 지정해주었다. 예를 들어 sno은 int형으로, uname은 varchar(50)으로. 그런데 오라클 내부 sungjuk 테이블을 확인하면 내가 지정한 자료형으로 되어있지 않다. sno은 int가 아니라 number로, uname은 varchar가 아니라 varchar2로 되어있다. 이처럼 표준화된 자료형을 넣어주면 각각의 프로그램이 자료형을 알아서 변환해서 가져간다. 그래서 오라클 DB에서 사용하는 자료형을 마리아 DB에 가져가면 인식하지 못한다. 표준화된 자료형을 사용하면 각기 다른 프로그램에서도 각기 사용할 수 있다. 이제 오라클과 마리아DB에서 사용하는 각기 다른 자료형에 대해 한번 알아보자...

[Oracle] #4-3 Oracle 함수 : nvl, 모조칼럼(rownum, rowid)
1. nvl() 함수 이 함수는 마리아DB에서 ifnull() 함수와 같다. nvl()을 사용하면 null값을 지정해줄 수 있다. 형식) nvl(칼럼명, 값) nvl(kor, 0) -- kor 값이 null이면 0의 값을 대입한다 문제) 주소가 'Incheon'인 행의 국어점수 최대값, 인원수를 조회하시오 select nvl(max(kor),0), count(*) from sungjuk where addr='Incheon' and kor=(select max(kor) from sungjuk where addr='Incheon'); select count(*)+1 -- 0+1 from sungjuk where addr='Incheon'; select max(kor)+1 -- null, null은 연산이 되..
[Oracle] #4-2 Oracle에서 자주 쓰이는 함수 모음
1. 집계 함수 max(column) 최대값을 구하는 함수 min(column) 최소값을 구하는 함수 avg(column) 평균값을 구하는 함수 sum(column) 합계를 구하는 함수 mod(a, b) a를 b로 나눈 나머지값을 구하는 함수 count(*) 총 레코드 수를 세는 함수, null값도 포함 count(컬럼명) 컬럼명을 기준으로 총 레코드 수를 세는 함수, null값은 제외 2. 문자열 함수 lower('Hello World') hello world, 해당 컬럼의 값을 소문자로 변환하는 함수 upper('Hello World') HELLO WORLD, 해당 컬럼의 값을 대문자로 변환하는 함수 inicap('go go go!') Go Go Go!, 첫글자와 공백이후 첫글자는 대문자로 변환하는 ..
[Oracle] #4-1 서브쿼리
서브쿼리? 서브쿼리란 SQL문 속에서 또 다른 SQL문을 사용하는 것을 말한다. 테이블 내에서 다시 한 번 쿼리문에 의해 레코드가 조회되고 검색된다. 입력된 성적 데이터들 중 국어 점수의 평균을 조회해보았다. select kor from sungjuk; select avg(kor) from sungjuk; select round(avg(kor),0) from sungjuk; -- 66 select round(avg(kor),0) as avg_kor from sungjuk; 66점이 나왔다. 이제 데이터들의 국어점수 중 평균 이상의 점수인 국어 점수를 구해보려한다. 그럴땐 쉽게는 아래와 같은 코드를 사용해도 되지만, select uname, kor from sungjuk where kor>=66; 이것은 ..