본문 바로가기

sql

(17)
[SQL] WHERE 1=1 개념, 사용시기, 목적, 주의사항 개념 1=1은 항상 참을 의미 ​ 사용시기 동적으로 변하는 인자 값을 사용하는 SQL문 사용시 필요 (WHERE 2=2 등등 동일) 사용목적 DAO 또는 XML의 where문에 and문을 sql = sql + "AND ID = '111'"; 이와 같이 추가한다고 할 경우 일반 WHERE문의 경우 첫번째 조건인지 아닌지 구분이 필요하지만(첫번째에는 AND가 붙지않기 때문) 동적 WHERE문의 경우는 WHERE 1=1을 선언후 앞쪽에 AND를 붙여 사용하면 몇 개를 사용하든 문제가 되지 않습니다. 일반 WHERE문 동적 WHERE문 SELECT * FROM AAA WEHRE ID = '111' SELECT * FROM AAA WEHRE 1=1 AND ID = '111' 주의 검색을 위한 쿼리에서는 사용하면 ..
[SQL] AS(alias) 구문 개념 및 예제 AS : 컬럼의 별칭을 만들어 그 별칭컬럼에 데이터를 삽입하는 구문 USER_DATA 테이블 ID PW NAME AGE 1 qq 가 20 2 ww 나 22 3 ee 다 24 예제 ) user_data테이블에서 id컬럼 데이터를 tr_id로, pw컬럼 데이터를 tr_pw로 변경하여 결과 검색 SELECT ID AS TR_ID, PW AS TR_PW FROM USER_DATA; 결과 TR_ID TR_PW 1 qq 2 ww 3 ee
[SQL] DECODE 하나의 조건과 그 조건이 성립되지 않을 경우 DECODE ([column_name], [비교할 조건], [리턴값], [default_value]) 여러 조건과 그 조건이 성립되지 않을 경우 DECODE( 컬럼, 조건1, 값1, 조건2, 값2, ..., default ) 컬럼값이 조건1과 동일할 경우 값1을 리턴하고, 조건2와 동일할 경우 값2, 모든 조건과 동일하지 않을 경우 default 값을 리턴하는 함수
[DB] 오라클 SQL 명령어 DDL(Data Definition Language): 데이터 정의어 테이블 생성 create table 테이블명( name varchar2 ... ); 테이블명 변경 ALTER TABLE ​테이블명 RENAME COLUMN 변경할컬럼명 TO 변경후컬럼명; 테이블 삭제 drop table 테이블명 purge --purge를 사용해야만 남은파일없이 삭제 테이블 복제 ​create table 변경후 테이블명 as select * from 변경전 테이블명 ​컬럼 추가 ALTER TABLE 테이블명 ADD (컬럼명 타입); ​--가장 마지막에 추가됨 (위치를 변경하고 싶다면 삭제후 테이블 재생성해야함) 컬럼 속성 변경 ALTER TABLE table_name MODIFY (column_name VARCHAR2(..
[SQL] 날짜데이터(DATE) 형식 SELECT 컬럼이 DATE형식의 데이터일 경우 SELECT 2012년 10월 11일 오전 08:00 이라고 명시된 항목의 값을 select SELECT * FROM 테이블명 WHERE TO_CHAR(컬럼명,'YYYYMMDD') >'20191111' --2019년 11월 11일 이후 데이터 검색
[개발 IT] TOAD 사용방법 및 단축키 명 령 어 실 행 내 용 F1 TOAD 도움말 파일에서 SQL Editor 부분을 보여줍니다. F2 전체 스크린 Editor와 Editor/Results Panel 표시 장치 사이를 토글합니다. SHIFT + F2 전체 스크린 그리드를 토글합니다. F3 다음 어커런스를 찾습니다. SHIFT + F3 이전 어커런스를 찾습니다. F4 팝업 창에서 테이블, 뷰, 프로시저, 함수, 또는 패키지를 보여줍니다. F5 스크립트로 실행합니다. F6 Editor와 Results Panel 사이에 커서를 토글합니다. F7 모든 텍스트를 지웁니다. F8 이전의 SQL 실행문을 재호출합니다.(SQL Statement Recall 창을 불러옵니다) F9 실행문을 실행합니다. CTRL + F9 실행 없이(구문 분석) 실행문을 검..
[SQL] ORA-1427 single-row subquery returns more than one row ORA-1427 single-row subquery returns more than one row subqeury 사용시 하위 쿼리의 호출값이 하나 일상일경우 발생하는 에러 SELECT ID, NAME, JOB, (SELECT * FROM JOB_COMMENT) AS CMT FROM PEOPLE A 위와 같은 쿼리를 사용시 SUBQUERY인 'SELECT * FROM JOB_COMMENT'의 결과 값이 하나 이상일 경우 문제가 발생 해결방법 하나의 값이 호출되도록 변경 예제 1) PK값을 사용하여 하나의 값만 호출하도록 변경 SELECT ID, NAME, JOB, (SELECT COMMENT FROM JOB_COMMENT WHERE ID = A.ID) AS CMT FROM PEOPLE A 예제 2) JO..
[SQL] RIGHT/LEFT(), SUBSTRING_INDEX(), SUBSTRING(), UPPER/LOWER(), REVERSE(), LTRIM/RTRIM(), LENGTH() RIGHT(), LEFT() 정해진 수의 문자 추출 함수 사용법 : SELECT RIGHT(location, 2) FROM my_contacts; SELECT LEFT(location, 2) FROM my_contacts; 해석 : my_contacts 라는 테이블의 location의 열에 있는 문자열 에서 오른쪽에서부터 2개의 문자 선택을 의미, LEFT() 함수 일 경우 왼쪽에서 부터 2개의 문자 선택을 의미 SUBSTRING_INDEX() 특정 문자나 문자열 앞의 모든 문자열을 반환 사용법 : SELECT SUBSTRING_INDEX(location, ',', 1) FROM my_contacts; 해석 : my_contacts테이블의 location 열의 문자열 에서 작은 따옴표 안의 문자열을 찾고..