본문 바로가기
학원수업/1월

01/03 국비학원 27회차-오라클수업(데이터 모델링, Toad로 sql문 작성)

by 코딩마스터^^ 2023. 1. 3.

데이터 모델링

 

데이터 모델링 프로그램인 ERWin을 사용해서 데이터 모델링을 한다.

 

개체는 네모

관계는 마름모

 

primary key는 #

 

1 : 1

1 : n

n : n

???

 

관계 : 행위 entity

 

없는것을 부르면 부적합한 식별자라는 오류가 뜬다.

 

프라이머리키는 인덱스가 있어서 정렬이된다. 인덱스는 디폴트가 오름차순이다.

 

다른애들은 인덱스가 없다. 정렬이 안된다.

그래서  order by ename asc

를 해야된다.

 

옵티마이저에게 보내는 힌트문이 있다.

 

주석이 아니다. -- 이게 주석이다

/* */ 이것은 힌트문이다.

 

dept.deptno라고 표시해준다. 어디의 부서번호인지.

 

양쪽테이블에 부서번호가 존재하나 인덱스인 컬럼명을 쓰는것이 더 빠르다. 

인덱스가 있으면 더 빠르게 찾을 수 있다.

 

카타시안의 곱이다.- 일어날 수 있는 모든 경우의 수이다.

 

부서표의 부서번호와 사원표의 부서번호가 일치할때

그리고 사원이름이 스미스일때

부서명 사원이름 등등을 가져온다...

 

pk 이름바꾸기

체크 테이블만 두기 

스키마도 제거하기

데이터베이스 아무것도 없다

머터리얼 뷰 다빼주기

뷰도 다빼주기

인덱스 프라이머리키만 두고 체크 다해제

컬럼은 위에꺼만

트리거 꼭 다 빼기!!! 있으면 데이터 삽입 안됨

남겨두고 Generate누르기

제너레이트하면 이미 있다고 뜸. 근데 무시하고 오케이 누르면 들어간다.

키위에 student가 만들어졌다.

 

 

ROUND()

 

오라클에서 형전환 함수가 있다.

to_char() 날짜 -> 문자, 숫자-> 문자

 

to_number(문자) -> 숫자타입으로 전환

 

함수는 리턴값이 있다.

함수는 파라미터를 맞춰야한다. 갯수와 타입 모두를 맞춰야한다

 

인라인뷰??

컬럼명에 없는 애를 조건절에 쓰고싶을때 인라인뷰를 사용한다.

 

오라클 SQL에서 GROUP BY 절을 사용하여 그룹별 건수나 합계를 얻을 수 있다. 그룹별 집계된 결과 중 원하는 조건의 결과만 필터링하기 위해서는 HAVING 절을 사용하여 필터 조건을 사용할 수 있다.

 

HAVING 절과 WHERE 절의 다른 점은 HAVING 절은 GROUP BY 절과 함께 사용해야 하며 집계 함수를 사용하여 조건절을 작성하거나 GROUP BY 컬럼만 조건절에 사용할 수 있다.

 

출처 : https://gent.tistory.com/366

그룹 바이 사용해서 간단하게 처리할수있다.

 

둘은 결과가 같다

 

그룹함수??

 

도전문제
tmep의 자료를 salary로 분류하여 30,000,000이하는 'D',
30,000,000 초과 50,000,000이하는 'C'
50,000,000 초과 70,000,000이하는 'B'
70,000,000 초과는 'A'라고 등급을 분류하여 등급별 인원수를
알고 싶다.
어떡하지?

 

between을 써서 1000이상 3000이하 급여 사원 뽑을때

 

]

변수선언 r_nick

 

**아이디 중복검사***
아이디가 존재안하면 -1 반환
아이디가 비번 모두 일치하면1
아이디와 비번이 일치하지않으면 0

 

아이디가 변수와 일치할때 1을 반환

인라인뷰로 컬럼에 없는 result도 반환할 수 있다.

아니면 -1을 반환 

제일 먼저 키위와 비교해서 일치하는것이 올 수 있게 order by desc해주었다.

 

댓글