-
create user 계정이름 identified by 계정비번;
하면 당연히 계정이 생성 되어야 하는데 에라가 똮!!
1행에 오류: ORA-65096: 공통 사용자 또는 롤 이름이 부적합합니다.
검색해보니...
오라클 12c로 넘어오면서 계정이름 앞에 c##을 붙여줘야 공통 사용자를 생성가능...
-- create new user
CREATE USER c##[아이디] IDENTIFIED BY [비밀번호];사용자가 생성되었습니다.
-- grant priviledges
GRANT CONNECT, RESOURCE, DBA TO c##[아이디];권한이 부여되었습니다.
-- drop user c##[아이디] cascade
1. OT 계정으로 접속 설정 후 접속 1. ot_schema.sql 파일 적용
2. ot_data.sql 파일 적용
해당 파일 적용 중 "ORA-01843: 지정한 월이 부적합합니다." 에러 발생 원인을 검색해 보니 NLS_DATE_FORMAT이 맞지 않아서 생기는 오류였다.
NLS_DATE_FORMAT을 다음 명령어로 확인해보니
select sysdate from dual;
입력하고자 하는 테이터 포맷은 to_date('21-SEP-16','DD-MON-RR') 형태인데 "YYYY-MON-DD" 형식으로 되어있어 INSERT가 되지 않았다.
입력하고자 하는 데이터 포맷에 맞게 아래 명령어로 수정 후 에러 해결!
alter session set nls_date_format='DD-MON-RR';
1주차 과제
--1) SELECT * FROM EMPLOYEES NATURAL JOIN (SELECT EMPLOYEE_ID FROM EMPLOYEES me WHERE EMPLOYEE_ID = '103'); --2) SELECT * FROM EMPLOYEES NATURAL JOIN (SELECT EMPLOYEE_ID FROM EMPLOYEES) WHERE EMPLOYEE_ID = '103';
1번과 2번 중 어는 쿼리의 수행 속도가 빠른가?
1번의 서브쿼리에서는 EMPLOYEE 테이블에서 EMPLOYEE_ID 103번을 추출 후
EMPLOYEE 테이블에서 EMPLOYEE_ID가 103번인 데이터와 동일한 데이터를 찾아 조인
2번의 서브쿼리에서는 EMPLOYEE 테이블에 존재하는 모든 EMPLOYEE_ID 조회 후
EMPLOYEE_ID가 동일한 데이터를 전체적으로 조인한 후 103번인 데이터를 한번 더 찾기 때문에
2번 쿼리의 수행 속도가 더 느릴것 같다.
'Database' 카테고리의 다른 글
데이터베이스 설계에서 중요한점 (0) 2024.04.02 NATURAL JOIN이란? (0) 2020.06.04 부분범위처리 (0) 2020.05.30 같은 테이블의 컬럼 값을 참조하여 null 값 Update (0) 2019.12.24