SELECT

yuju·2022년 10월 20일
0

SQL

목록 보기
2/11
post-thumbnail

📌 현재 접속 사용자 스키마에 존재하는 테이블 목록 확인

SELECT TABLE_NAME FROM TABS;
SELECT * FROM TAB; 

📌 테이블의 구조 확인 : 테이블 속성 - 컬럼명과 자료형

DESC 테이블명;
DESC EMP;
DESC DEPT ;

🎀SELECT

: 하나 이상의 테이블에서 행을 검색하기 위한 명령

SELECT 검색대상, 검색대상, ... FROM 테이블명

: 검색대상 : * (모든 컬럼) - 다른 검색대상과 동시 사용 불가능, 컬럼명, 연산식, 함수 등

SELECT * FROM 테이블명; 

🎗 COLUMN ALIAS : 검색 대상에 별칭(임시 컬럼명) 을 부여하는 기능

  • 검색대상을 명확하게 구분하기 위해 사용
    SELECT 검색대상 [AS] 별칭, 검색대상 [AS] 별칭 ,... FROM 테이블명 ;
    	SELECT 검색대상 별칭, 검색대상 별칭 ,... FROM 테이블명; ( [AS] 생략 가능)
  • 검색대상으로 컬럼값을 이용하여 연산식 사용 가능
    --함수를 사용하게 되면 컬럼명이 그대로 표현되기 때문에 (SAL*12) [AS] 사용

SELECT EMPNO, ENAME, SAL*12 ANNUAL FROM EMP ;

  • 식별자(테이블명, 컬럼명, 별칭 등) 은 스네이크 표기법(단어_단어 )을 사용하여 설정
  • 컬럼 별칭으로 공백 또는 특수문자 사용 불가능
  • 컬럼 별칭을 " " 기호 안에 표현하면 모든 형태의 별칭 표현 가능 - " " 별칭을 표현하기 위한 기호
	 SELECT EMPNO "사원번호", ENAME "사원 이름", SAL*12 "^연봉^"  FROM EMP ; 
  • 검색대상을 , 기호로 구분하여 나열 검색

  • 검색대상에 || 기호를 사용하여 값을 결합 하여 검색

  • SQL 에서 문자값은 ' ' 기호를 사용하여 표현

SELECT NAME ||'의 업무는 ' || JOB ||' 입니다.'  FROM EMP;
  • 날짜 값은 ' ' 안에 [RR/MM/DD] 형식의 패턴으로 표현 // 'YYYY-MM-DD' 도 가능

🎗 DISTINCT : 검색대상의 중복값을 제외하고 유일한 하나의 컬럼값만 검색하는 기능을 제공하는 키워드

SELECT DISTINCT 검색대상, 검색대상,... 테이블명 
  • 오라클은 DISTINCT 키워드에 검색대상을 여러개 나열하여 작성가능

🎗 WHERE : 조건식을 사용하여 조건이 참(TRUE)인 행만 검색하는 기능을 제공

SELECT 검색대상, 검색대상 FROM 테이블명 WHERE 조건식

🎗 BETWEEN AND : 범위연산식을 이용하여 컬럼값이 작은값 부터 큰값 범위에 포함될 경우에 조건식 표현

컬럼명 BETWEEN 작은값 AND 큰값  

🎗 IN : 선택 연산식을 이용하여 컬럼값이 나열된 값들중 하나인 경우에 조건식을 표현

컬럼명 IN (값1, 값2, 값3...) 

🎗검색패턴문자 : 부정확한 값을 검색하기 위해 사용하는 문자

  • 검색값을 = 연산자로 비교하게 되면 [%] 또는 [ _ ] 기호를 일반문자로 처리하여 비교
    [%] : 전체
    [ _ ] : 임의 문자 하나

  • 패턴연산식을 사용하여 검색패턴문자를 사용할 경우에 조건식을 표현
    컬럼명 LIKE '값 또는 검색패턴문자를 포함한 값'

    	사원이름중 'A'가 포함되어 있는 사원
    	SELECT EMPNO, ENAME, JOB,SAL, DEPTNO FROM EMP WHERE ENAME LIKE '%A%';
    
    	사원이름의 두번째 문자가 'L' 인 사원
    	SELECT EMPNO, ENAME, JOB,SAL, DEPTNO FROM EMP WHERE ENAME LIKE '_L%';
  • 검색패턴문자를 사용하지 않아도 패턴 연산식을 이용하여 컬럼값을 비교하여 검색가능

  • 패턴 연산식에서 [ _ ] 문자는 검색패턴문자로 처리하여 검색됨

🎗 ESCAPE : 키워드로 표현 불가능한 문자를 회피문자로 표현하여 검색

_가 포함되어 있는 사원이름
```sql
SELECT EMPNO, ENAME, JOB,SAL, DEPTNO FROM EMP WHERE ENAME LIKE '%\_%' ESCAPE '\' ;
```

🎗 NOT : 조건식의 결과가 참이 아닌경우에 조건식 표현

NOT 조건식 
SELECT EMPNO, ENAME, JOB,SAL FROM EMP WHERE NOT (JOB='SALESMAN');

NULL : 값이 존재하지 않는 것을 표현하기 위한 키워드

  • NULL은 값이 아니므로 연산 불가능 - 검색실패

🎗 IS : NULL 을 구분하기 위한 조건식을 표현

컬럼명 IS NULL 또는 IS NOT NULL

🎗 ORDER BY : 컬럼값을 비교하여 행이 정렬되도록 검색하는 기능을 제공

SELECT 검색대상, 검색대상, ... FROM 테이블명 [WHERE 조건식]; 
ORDER BY {컬럼명| 연산식| 별칭| COLUMN_INDEX} {ASC|DESC}...,;
  • 정렬 컬럼값이 같은 경우 다른 컬럼 값을 비교하여 정렬되도록 정렬 설정을 나열하여 작성 가능
  • 오름차순 정렬인 경우 ASC 생략가능
    -SELECT 구문에서 검색대상에는 자동으로 첨자(INDEX :위치를 표현하는 숫자)가 부여
    --> 오라클에서 첨자가 1부터 1씩 증가는 숫자값으로 표현(<-> 다른 프로그램은 0부터 시작)

0개의 댓글