본문 바로가기

DB/SQL

(17)
[SQL] 컬럼명으로 테이블 찾기 테이블명이 정확하지 않고 컬럼명만 알고 있는 경우 컬럼명으로 통해서 테이블을 찾을 수 있습니다. SELECT TABLE_NAME, COLUMN_NAME FROM ALL_TAB_COLUMNS WHERE COLUMN_NAME='컬럼명';
[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 값을 리턴하는 함수
[SQL] 날짜데이터(DATE) 형식 SELECT 컬럼이 DATE형식의 데이터일 경우 SELECT 2012년 10월 11일 오전 08:00 이라고 명시된 항목의 값을 select SELECT * FROM 테이블명 WHERE TO_CHAR(컬럼명,'YYYYMMDD') >'20191111' --2019년 11월 11일 이후 데이터 검색
[SQL] rownum rownum: row의 갯수를 선택하여 결과를 산출 where문과 함께 사용 select * from table명 where rownum = 1 --row중에 하나만을 전달해서 보여줌 select * from table명 where rownum
[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 열의 문자열 에서 작은 따옴표 안의 문자열을 찾고..