DB Oracle Where 문 사용(1)
SLELECT * FROM USERTBl;
USERID NAME BIRTHYEAR ADDR MOB MOBILE2 HEIGHT MDATE
-------- ---------- ---------- -------- --- -------- ---------- --------
LSG 이승기 1987 서울 011 1111111 182 08/08/08
KBS 김범수 1979 경남 011 2222222 173 12/04/04
KKH 김경호 1971 전남 019 3333333 177 07/07/07
JYP 조용필 1950 경기 011 4444444 166 09/04/04
SSK 성시경 1979 서울 186 13/12/12
LJB 임재범 1963 서울 016 6666666 182 09/09/09
YJS 윤종신 1969 경남 170 05/05/05
EJW 은지원 1972 경북 011 8888888 174 14/03/03
JKW 조관우 1965 경기 018 9999999 172 10/10/10
BBK 바비킴 1973 서울 010 0000000 176 13/05/05
위와 같이 usertbl 테이블에서 열과 행의 데이터를 가져옵니다.
SELECT * FROM USERTBL WHERE NAME = '김경호';
USERID NAME BIRTHYEAR ADDR MOB MOBILE2 HEIGHT MDATE
-------- ---------- ---------- -------- --- -------- ---------- --------
KKH 김경호 1971 전남 019 3333333 177 07/07/07
SELECT * FROM USERTBL WHERE NAME = '이승기';
USERID NAME BIRTHYEAR ADDR MOB MOBILE2 HEIGHT MDATE
-------- ---------- ---------- -------- --- -------- ---------- --------
LSG 이승기 1987 서울 011 1111111 182 08/08/08
usertbl 테이블의 모든 컬럼을 조회하고 조건설정으로 Name 컬럼에 김경호라는 이름을 검색하면 김경호에 대한 컬럼만 검색된다.
동일한 조건으로 이승기 이름을 검색하면 이승기에 대한 칼럼만 검색된다.
SELECT * FROM USERTBL WHERE BIRTHYEAR >=1970 AND HEIGHT >=182;
USERID NAME BIRTHYEAR ADDR MOB MOBILE2 HEIGHT MDATE
-------- ---------- ---------- -------- --- -------- ---------- --------
LSG 이승기 1987 서울 011 1111111 182 08/08/08
SSK 성시경 1979 서울 186 13/12/12
SELECT * FROM USERTBL WHERE ADDR ='경남' AND HEIGHT <= 180;
USERID NAME BIRTHYEAR ADDR MOB MOBILE2 HEIGHT MDATE
-------- ---------- ---------- -------- --- -------- ---------- --------
KBS 김범수 1979 경남 011 2222222 173 12/04/04
YJS 윤종신 1969 경남 170 05/05/0
다음으로 키가 182cm 이상이고 출생연도가 1970년 이상인 사람의 AND절에 usertbl 테이블의 키 컬럼을 조건으로 사용하면 과 Lee를 모두 만족하는 결과값만 승기와 성시경이 수색된다.
조건문을 Addr의 주소를 경남으로 설정하고 키가 180cm 미만이면 모두 만족하는 김범수와 윤종신을 결과로 검색한다.
SELECT * FROM USERTBL WHERE ADDR ='경남' OR HEIGHT <= 180;
USERID NAME BIRTHYEAR ADDR MOB MOBILE2 HEIGHT MDATE
-------- ---------- ---------- -------- --- -------- ---------- --------
KBS 김범수 1979 경남 011 2222222 173 12/04/04
KKH 김경호 1971 전남 019 3333333 177 07/07/07
JYP 조용필 1950 경기 011 4444444 166 09/04/04
YJS 윤종신 1969 경남 170 05/05/05
EJW 은지원 1972 경북 011 8888888 174 14/03/03
JKW 조관우 1965 경기 018 9999999 172 10/10/10
BBK 바비킴 1973 서울 010 0000000 176 13/05/05
SELECT * FROM USERTBL WHERE BIRTHYEAR >=1970 OR HEIGHT >=182;
USERID NAME BIRTHYEAR ADDR MOB MOBILE2 HEIGHT MDATE
-------- ---------- ---------- -------- --- -------- ---------- --------
LSG 이승기 1987 서울 011 1111111 182 08/08/08
KBS 김범수 1979 경남 011 2222222 173 12/04/04
KKH 김경호 1971 전남 019 3333333 177 07/07/07
SSK 성시경 1979 서울 186 13/12/12
LJB 임재범 1963 서울 016 6666666 182 09/09/09
EJW 은지원 1972 경북 011 8888888 174 14/03/03
BBK 바비킴 1973 서울 010 0000000 176 13/05/05
다음 구문은 위와 유사하나 조건절에서 AND 대신 OR을 사용하여 첫 번째 조건절은 경남에 주소가 있고 키가 180cm 이하인 사람입니다.
마찬가지로 두 번째 경우도 생년월일과 키가 182cm 이하이면 둘 중 하나만 만족하는 값을 검색한다.
SELECT * FROM USERTBL WHERE HEIGHT >= 180 AND HEIGHT <= 183;
USERID NAME BIRTHYEAR ADDR MOB MOBILE2 HEIGHT MDATE
-------- ---------- ---------- -------- --- -------- ---------- --------
LSG 이승기 1987 서울 011 1111111 182 08/08/08
LJB 임재범 1963 서울 016 6666666 182 09/09/09
SELECT * FROM USERTBL WHERE HEIGHT BETWEEN 180 AND 183;
USERID NAME BIRTHYEAR ADDR MOB MOBILE2 HEIGHT MDATE
-------- ---------- ---------- -------- --- -------- ---------- --------
LSG 이승기 1987 서울 011 1111111 182 08/08/08
LJB 임재범 1963 서울 016 6666666 182 09/09/09
위와 같이 키 180~183cm에 만족하는 사람을 검색하면 다음 구문에서 이승기와 임재범이 반환됩니다.
그러나 AND 조건을 사용하는 대신 아래와 같이 Between 180 AND 183 구문을 통해 동일한 결과를 얻을 수 있습니다.
SELECT * FROM USERTBL WHERE ADDR ='경남' OR ADDR='경기' OR ADDR='전남';
USERID NAME BIRTHYEAR ADDR MOB MOBILE2 HEIGHT MDATE
-------- ---------- ---------- -------- --- -------- ---------- --------
KBS 김범수 1979 경남 011 2222222 173 12/04/04
KKH 김경호 1971 전남 019 3333333 177 07/07/07
JYP 조용필 1950 경기 011 4444444 166 09/04/04
YJS 윤종신 1969 경남 170 05/05/05
JKW 조관우 1965 경기 018 9999999 172 10/10/10
SELECT * FROM USERTBL WHERE ADDR IN('경남','경기','전남');
USERID NAME BIRTHYEAR ADDR MOB MOBILE2 HEIGHT MDATE
-------- ---------- ---------- -------- --- -------- ---------- --------
KBS 김범수 1979 경남 011 2222222 173 12/04/04
KKH 김경호 1971 전남 019 3333333 177 07/07/07
JYP 조용필 1950 경기 011 4444444 166 09/04/04
YJS 윤종신 1969 경남 170 05/05/05
JKW 조관우 1965 경기 018 9999999 172 10/10/10
다음 구문에서 where 문의 OR 조건절을 이용하여 경남, 경기, 전남 3개의 주소 중 하나만 지정하여도 조회가 가능하도록 SQL문을 작성하면 위와 같이 조회된다.
.
그러나 변수에 조건을 계속 적용하면 OR이 계속해서 사용되어 질의문이 길어질 수 있습니다.
따라서 IN으로 칼럼 값을 삽입하여 검색하면 동일한 조건문의 결과를 검색할 수 있다.
SELECT * FROM USERTBL WHERE NAME LIKE '김%';
USERID NAME BIRTHYEAR ADDR MOB MOBILE2 HEIGHT MDATE
-------- ---------- ---------- -------- --- -------- ---------- --------
KBS 김범수 1979 경남 011 2222222 173 12/04/04
KKH 김경호 1971 전남 019 3333333 177 07/07/07
SELECT * FROM USERTBL WHERE NAME LIKE '윤%';
USERID NAME BIRTHYEAR ADDR MOB MOBILE2 HEIGHT MDATE
-------- ---------- ---------- -------- --- -------- ---------- --------
YJS 윤종신 1969 경남 170 05/05/05
다음 문장에서 LIKE를 사용하여 첫 문장의 NAME란에 Kim으로 시작하는 사람을 검색하면 김범수, 김경호로 검색됩니다.
두 번째 구문에서는 Yoon으로 시작하는 이름에 대해 Yoon Jongshin만 인쇄되는 것을 볼 수 있습니다.
SELECT * FROM USERTBL WHERE NAME LIKE '__호';
USERID NAME BIRTHYEAR ADDR MOB MOBILE2 HEIGHT MDATE
-------- ---------- ---------- -------- --- -------- ---------- --------
KKH 김경호 1971 전남 019 3333333 177 07/07/07
SELECT * FROM USERTBL WHERE NAME LIKE '%호';
USERID NAME BIRTHYEAR ADDR MOB MOBILE2 HEIGHT MDATE
-------- ---------- ---------- -------- --- -------- ---------- --------
KKH 김경호 1971 전남 019 3333333 177 07/07/07
다음으로 첫 번째 조건문은 세 글자인 숫자 __을 설정하고, LIKE 구문을 통해 비방으로 끝나는 세 글자 이름을 검색하면 김경희만 수배임을 알 수 있다.
두 번째 경우 호로 끝나는 이름을 검색하면 김경호도 같은 방식으로 검색되는 것을 볼 수 있다.
두 구문의 차이가 있을 때 첫 번째 경우는 글자 수에 대한 조건을 지정하고 두 번째 경우는 슬러로 끝나는 이름에 대한 조건을 지정하므로 많은 데이터를 가져올 수 있는 경우 차이가 있습니다.
.
SELECT * FROM USERTBL WHERE NAME LIKE '이%';
USERID NAME BIRTHYEAR ADDR MOB MOBILE2 HEIGHT MDATE
-------- ---------- ---------- -------- --- -------- ---------- --------
LSG 이승기 1987 서울 011 1111111 182 08/08/08
SELECT * FROM USERTBL WHERE NAME LIKE '_승_';
USERID NAME BIRTHYEAR ADDR MOB MOBILE2 HEIGHT MDATE
-------- ---------- ---------- -------- --- -------- ---------- --------
LSG 이승기 1987 서울 011 1111111 182 08/08/08
기존 Like 문법에 적용하면 1번의 경우 이글로 시작해서 NAME란에 검색하면 이승기가 검색되고, 2번의 경우 중간에 win이 들어간 이름에 조건이 주어짐 세 글자로 이승기를 검색하면 확인할 수 있다.
2023년 1월 17일 – (프로그래밍 및 데이터베이스/SQL) – DB Oracle SQL PLUS 사용
DB Oracle SQL PLUS 사용 방법
DB 사용 Oracle SQL PLUS C:>sqlplus Shop/oracle@xe SQL*Plus: 2023년 1월 15일 18:32:36에 버전 11.2.0.2.0 생산 Copyright (c) 1982, 2014, Oracle. 판권 소유. 연결 대상: Oracle Database 11g Express Edition 버전 11.2.0.2.
pinetreeday.tistory.com
2023년 2월 11일 – (프로그래밍 및 데이터베이스/SQL) – DB Oracle Select 문 테이블 생성
DB Oracle Select 문 테이블 생성
DB Oracle select 문 생성 테이블 CREATE TABLE userTbl — 구성원 테이블( userID CHAR(8) NOT NULL PRIMARY KEY, — 사용자 ID(pK) name VARCHAR(10) NOT NULL, — name birthYear INT NOT NULL, — 생년월일 addr CHAR(2) NOT NULL, — G
pinetreeday.tistory.com
HP 이 포스팅의 내용은 제 기준으로 작성되었으니 참고해주시면 감사하겠습니다.
게시 과정의 오류 및 오타와 궁금한 사항에 대한 의견을 남겨주세요.