국비수업/수업정리

오라클 SQL / 6

밀김 2023. 4. 27. 10:10
728x90

 

 

 

 

 

 

 

 

 

 

 

 

- 함수를 만들땐 사용자가 이해할수 있게 만들어야 한다

 

- 캐시 : 컴퓨터 내부의 임시 저장 공간

 

- 데이터를 한꺼번에 다 가져와서 필요한 부분만 보는것보다는 그냥 데이터 로드할때 필요한 부분만 가져오는게 효율적이다

 

- 자바가 할일은 사용자 입출력 (껍데기)

 

- DB는 사용자의 요구사항을 실행시켜줌

 

 


 

 

 

 

 

< 중복값 제거 DISTINCT > 

 

 

 

 


 

 

 

 

< SELECT문의 구절 >

 

 

이 순서 무족권 외우기!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

 

- 필터링은 WHERE / 집계는 GROUP BY / 정렬은 ORDER BY 

 

- WHERE가 맨 앞에 있다는것은 필터링 먼저 하겠다는 뜻

 

- 무조건 필터링 하고!!(내가 원하는 정보만 가져옴) 집계하고 정렬

 

- HAVING : HAVING 절은 GROUP BY 절과 함께 사용되어 그룹화된 결과 집합에 대한 조건을 지정하는 SQL 절입니다.

GROUP BY 절은 데이터를 그룹화하고 그룹화된 데이터에 대한 집계 함수를 계산합니다. HAVING 절은 GROUP BY 절에서 그룹화된 결과 집합에 대한 필터링 조건을 지정합니다.

 

 

 

 

 

 

 

< ORDER BY  : 정렬 > 

 

- ASC : 오름차순 정렬 / DESC : 내림차순 역정렬

 

해석 : 멤버 테이블에서 정렬해라 이름을 역순으로

 

 

 

두번쨰꺼 해석 : 멤버 테이블에서 나이를 역순으로 조회하고,네임은 오름차순으로 조회

 

 

 

 

 

 

 

 

< 집계함수 >

 

 

 

- SELECT AVG(AGE) FROM MEMBER; //셀렉트한다. 평균을. 근데 어떤 평균? 나이. 멤버 테이블에서 

 

- SELECT COUNT(ID) FROM MEMBER; //회원수 구하기

 

- SELECT COUNT(ID) FROM MEMBER GROUP BY AGE; //나이별 회원수 구하기

 

- 집계함수는 다른 컬럼이 올수 없다 (다른 녀석과 같이 사용될수 없음) 다만, * 제외!!!

SELECT AGE, COUNT(ID) FROM MEMBER GROUP BY AGE; 

 

- SELECT COUNT(AGE) FROM MEMBER ORDER BY AGE DESC; 

나이를 집계할꺼다 멤버테이블에서 그리고 그 집계한 나이들을 역순으로 정렬한다

 

- SELECT AGE, COUNT(ID) FROM MEMBER GROUP BY AGE HAVING COUNT(ID) >=2;

회원중에서 아이디랑 나이가 2 이상인 애들만 집계하겠다 

SELECT AGE, COUNT(ID) FROM MEMBER GROUP BY AGE HAVING COUNT(ID) >=2 ORDER BY AGE DESC;

이렇게 쓸수도 있음

 

 

 

- -- 나이가 30 이상인 회원을 조회하시오 -- 
SELECT * FROM MEMBER WHERE AGE >= 30;

-- 회원의 평균 나이보다 나이가 많은 회원을 조회하시오 --

SELECT NAME,AGE, COUNT(ID) FROM MEMBER GROUP BY NAME ,AGE  HAVING AGE>=30  ORDER BY AGE DESC ; 

이 두개를 한꺼번에 합친거 SELECT * FROM MEMBER WHERE AGE >= (SELECT AVG(AGE) FROM MEMBER);

 

 

 

 

 

 

 

 

728x90