오랜만에 오라클을 실행했더니 다음과 같은 오류가 발생했다. 계정의 정해진 비밀번호 기한 때문에 7일후에 계정 비밀번호가 만료된다는 의미인다. 해결방법은 비밀번호를 변경하거나, 비밀번호 기한을 늘려주는 것이다. 해결방법 비밀번호 변경아래 명령어로 계정 비밀번호를 변경하면 된다. 이전과 동일한 비밀번호를 사용해도 된다.alter user 계정명 identified by 비밀번호; 비밀번호 기한 변경ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;그런데 위의 명령어를 실행하니 ORA-01031: insufficient privileges 오류가 발생한다. 위 오류는 이전에도 포스팅한 적이 있는데, 권한 부족으로 발생하는 문제이다. 근데 근본 해결못함 ,, ..
차장님이 내가 사용한 조인 말고 다른 조인을 사용하는 것이 더 좋다라고 말씀하셔서 할 번 정리할 필요성을 느꼈다. 쿼리를 작성할 때 정확한 조인 방식을 선택하고, 검색 조건을 좀 더 세세하게 걸어줘 성능을 향상시킬 것을 조언해주셨다. Join 이란서로 다른 두 테이블을 연관된 한 컬럼을 통해 연결하는 방법이다. 조인의 종류는 여러가지가 있으며, 각 조인은 데이터를 어떻게 결합하는지에 따라 차이가 있다. 각 조인의 선택은 데이터의 구조와 원하는 결과에 따라 달라질 수 있다. 실제 데이터와 조건에 맞는 조인 방법을 선택하여 원하는 결과를 얻을 수 있다.각 조인 구조를 아래의 테이블과 데이터로 예시를 들어보겠다.Inner Join (내부 조인)내부 조인은 두 개의 테이블에서 일치하는 행만을 선택하여 결과를 반..
SQL 에서 대소문자 구별없이 검색하고 싶을 경우UPPER(대상문자)LOWER(대상문자) UPPER / LOWER 을 사용하면 된다.UPPER 의 경우, 입력된 문자를 모두 대문자로 변경해주고LOWER 의 경우, 입력된 문자를 모두 소문자로 변경해준다. 때문에 대/소문자의 구별이 없어진다.
SQL 에서 coalesce 함수는 여러 개의 인자 중에서 NULL 이 아닌 첫 번째 값을 반환하는 역할을 하는 함수이다. 일반적으로 아래와 같은 형태로 사용한다. COALESE( value1, value2, ...) COALESE ( 'A', 'B', 'C', 'D') -> A COALESE ( NULL , 'B', 'C', 'D') -> B COALESE ( NULL, NULL, 'C', 'D') -> C COALESE ( NULL, NULL, NULL, NULL) -> NULL NULL 일 경우 값을 다른 값으로 변경하여 출력하는 것은 NVL 이다.
오라클에서 왼쪽, 오른쪽에 특정 문자를 채워서 문자열 길이를 맞출 때 사용한다. 지정한 자릿수보다 데이터의 길이가 작을 경우 나머지 공간을 특정 문자로 채운다. LPAD, 데이터의 자릿수, 빈 공간에 채울 문자(선택) RPAD, 데이터의 자릿수, 빈 공간에 채울 문자(선택) -- 빈 공간에 채울 문자를 지정하지 않으면, 공백문자로 띄운다. SELECT LPAD('empno', 7, '0') RPAD('empno', 7, '0') 만약 empno 의 값이 92001일 경우, 존재하는 데이터 값의 길이는 5이다. lpad, rpad 에서 지정한 데이터의 자릿수는 7이니 남은 빈공간 2는 ‘0’으로 채우게 된다. LPAD 의 경우 데이터의 왼쪽을 채운다. → 0092001 의 결과. RPAD 의 경우 데이터의..
원래 순서대로 작성해야하는데... 이미 늦었지만 SQL 기본구조를 정리해놓는게 좋을 것 같아 작성한다. 안쓰면 또 까먹기에.. 기본 쿼리 구조 SELECT SELECT 열1, 열2, ... FROM 테이블 WHERE 조건; SELECT : 조회할 컬럼 FROM : 조회할 테이블 WHERE : 조회 조건, 예를 들어, 어떤 컬럼의 데이터가 'people' 인 데이터들을 조회하고싶다면 아래와같이 작성하면 된다. WHERE column_nm = 'people' INSERT INSERT INTO 테이블 (열1, 열2, ...) VALUES (값1, 값2, ...); 열과 값의 순서를 일치시켜야 한다. 컬럼명을 따로 작성하지 않을경우, 전체 컬럼에 대해 값들이 들어간다. 컬럼명을 따로 작성하면 해당 컬럼에 값들이..
ORDER BY SQL에서 검색된 결과를 정렬하기 위해서는 ORDER BY 를 사용한다. SQL 문장의 가장 마지막에 사용하며, 정렬하고 싶은 컬럼에 ASC/DESC 를 사용해 입력한다. 입력하지 않을 경우 ASC 를 기본으로 한다. SELECT * FROM Customers ORDER BY LastName ASC; 여러개 사용할 경우 ',' comma 콤마로 연결해주면 된다. 그럼 적은 순서를 우선순위로 정렬된다. SELECT * FROM Customers ORDER BY A desc, B, C ASC
단일행 함수 (Single-Row Functions): 단일행 함수는 각 행(row)에 대해 개별적으로 계산되며, 각 입력 값에 대해 단일 출력 값을 생성합니다. 주로 데이터의 변환, 연산, 포맷팅에 사용됩니다. 일반적인 예로는 문자열 함수(UPPER, LOWER), 날짜 함수(TO_DATE, EXTRACT), 수학 함수(SQRT, ABS), 형 변환 함수(CAST, TO_NUMBER) 등이 있습니다. 개별 행 단위로 작동: 단일행 함수는 테이블의 각 행에 대해 개별적으로 작동합니다. 즉, 입력 데이터의 각 행(row)에 대해 개별적으로 계산되며, 각 행의 입력 값에 대해 단일 결과 값을 반환합니다. 한 번에 하나의 결과: 각 행에 대해 한 번만 계산되므로, 출력 결과도 각 행마다 하나씩 반환됩니다. 이..
CHAR Char 타입은 최대 2000byte의 고정길이 문자열 데이터 타입이다. 지정된 길이에 관계 없이 항상 고정된 길이로 저장된다. Char(10)은 항상 10 문자를 저장한다. VARCHAR = VARCHAR2 가변 길이 문자열을 저장한다. 저장된 데이터의 실제 길이마늠 공간을 사용한다. Varchar2(10)에 "Hello" 라는 문자열을 저장하면 실제로 5개의 문자만 사용된다.
Delete(/Modify) Action : Cascade, Set Null, Set Default, Restrict (Master 부모 테이블) 1. Cascade : Master 삭제 시 Child 같이 삭제 2. Set Null : Master 삭제 시 Child 해당 필드 Null 3. Set Default : Master 삭제 시 Child 해당 필드 Default 값으로 설정 4. Restrict : Child 테이블에 PK 값이 없는 경우만 Master 삭제 허용 5. No Action : 참조무결성을 위반하는 삭제/수정 액션을 취하지 않음 Insert Action : Automatic, Set Null, Set Default, Dependent (Child 자식 테이블) 1. Automat..