본문 바로가기

oracle SQL

2024.12.04 6일차 수업 문제 1) 80 부서에 근무하는 사원들의 last_name, job_id, department_name, city를 출력하시오.select e.last_name, e.job_id, d.department_name, l.cityfrom hr.employees e, hr.departments d, hr.locations lwhere e.department_id = d.department_idand d.location_id = l.location_idand e.department_id = 80;▶ 하지만 결과가 같다면 더 성능 좋게 셀프 튜닝으로 join 할 수도 있다. (카티션 곱 유발)▶ 문장 튜닝할 때 더 자세하게 배울 예정이다.select e.last_name, e.job_id, d.department.. 더보기
2024.12.03 5일차 수업 ■ group by   - 테이블의 행을 작은 그룹으로 나눌 수 있는 절 ex) 부서별 총액 급여를 구해주세요.select department, sum(salary)from hr.employeesgroup by department_id;▶ department_id(부서별)로 group by를 통해 부서별로 그룹을 지어준다.▶ F10을 누르면 실행계획에 HASH 알고리즘을 통해 group by가 실행됐다고 알 수 있다.▶ 9i R1 버전에서는 group by가 sort group by로 수행하기 때문에 정렬된 결과 집합으로 출력된다.▶ 9i R2 버전부터는 group by가 hash group by로 수행하기 때문에 정렬된 결과 집합으로 출력되지 않는다. (KEY-VALUE) ex) 위에 거를 정렬해서 만.. 더보기
2024.12.02 4일차 수업 1. 모든 DBMS 안에 날짜 형식의 데이터는 숫자형으로 들어가기 때문에 내부에 수치형 자료로 들어가 있다. (날짜 형식도 연산이 가능하다.) ex 1) select sysdate + 5, sysdate - 4from dual; ex 2)  오늘 시간을 문자형으로 바꿔서 초단위까지 보여주고 싶을 경우select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss.sssss')from dual; # hh만 썼을 땐 오전, 오후 구분이 안 간다. 하지만 뒤에 am이나 pm 둘 중 아무거나 써주면 현재 오전인지 오후인지 알려준다.select to_char(sysdate,'yyyy-mm-dd hh:mi:ss.sssss pm')from dual; # 현재 기원전인지 후인지 .. 더보기
2024.11.29 3일차 수업 어제 복습 문제) employees 테이블에 last_name 컬럼의 값 중에 J, A, M으로 시작하는 사원들의 last_name, last_name의 길이를 출력해 주세요. 사원들의 last_name 기준으로 내림차순 정렬할 것 1) like 사용 (like에는 in을 쓰지 못한다. 같은 연산자끼리는 합칠 수 없다.)select last_name,length(last_name)from hr.employeeswhere last_name like 'J%'or last_name like 'A%'or last_name like 'M%'order by 1 desc;2) substr 사용select last_name, length(last_name)from hr.employeeswhere substr.. 더보기
2024.11.28 2일차 수업 1. where절   - 행을 제한하는 절   - 조건절    - 기준 컬럼이 문자열, 날짜열이면 비교값은 작은따옴표로 묶어야 한다.   ex) select * from 소유자.테이블명         where 기준컬럼 = 비교값;    - 날짜 형식은 지역에 따라 기본 날짜 표시 형식이 다르다.       ex) 한국(RR/MM/DD), 미국(DD-MON-RR) ※ 접속하는 지역에 따라 자동으로 바뀌는 지역 SQL 정보select * from nls_session_parameters;  - 비교연산자 (=같다, >크다, >=크거나 같다, )같지 않다)ex1)select * from hr.employeeswhere employee_id = 100;ex2)select * from hr.employeeswh.. 더보기
2024.11.27 첫 수업 1. 터미널에서 관리자 권한으로 접속 방법 (OS 인증 방식)conn / as sysdba  2. 접속한 유저가 누군지 확인하는 법show user 3. oracle 셋업  ▶ sys 관리자로 들어가면 옆에 롤에 sysdba 체크 필수 !! (안 그러면 오류남) ※ 강사님의 당부  1) 2022~2025 트렌드 책 꼭 읽기  2) 일기 꼭 작성하기 (모여서 이력서에 많이 도움됨)  3) 영어는 많이 수학은 조금 친해지기 4. HR 유저에 ACCOUNT_STATUS가 EXPIRED & LOCKED로 되어있으면 접속이 안 된다.   - 따라서  밑에 코드로 락을 풀어줘야 접속이 가능하다.alter user hridentified by hr account unlock; 5. 풀 태아불 스캔  ▶ 처음부터 .. 더보기