<SELECT-WHERE 절의 IN, NOT IN 연산자>

 

  • employees테이블에서 직원중에 salary가 4000이거나 3000이거나 2700인 직원정보를 출력한다.

1
2
3
4
SELECT *
FROM employees
WHERE salary = 4000
OR salary = 3000 OR salary = 2700;
cs

 

 

 

  • IN연산자는 연산을 줄여준다.

1
2
3
SELECT *
FROM employees
WHERE salary IN (400030002700);
cs

 

 

 

 

 

 

<IN 예제>

 

  • employees테이블에서 salary가 10000, 17000, 24000인 직원정보를 출력

1
2
3
SELECT *
FROM employees
WHERE salary IN (100001700024000);
cs

 

 

 

  • employees테이블에서 department_ID가 30, 50, 80, 100, 110이 아닌 직원정보를 출력

1
2
3
SELECT *
FROM employees
WHERE department_id NOT IN (305080100110);
cs

 

 

 

 

'Learning > SQL' 카테고리의 다른 글

LIKE 연산자  (0) 2020.06.15
BETWEEN  (0) 2020.06.12
AND, OR  (0) 2020.06.12
SELECT-WHERE 절  (0) 2020.06.12
SELECT 문  (0) 2020.06.12

<SELECT-WHERE절의 AND, OR>

 

  • employees테이블에서 department_id가 60이거나 (department_id가 80이면서 salary가 10000이상)인 직원정보 출력

1
2
3
4
SELECT *
FROM employees
WHERE department_id=60 OR
(department_id=80 AND salary >= 10000);
cs

 

괄호에 의해 'department_id가 80이면서 salary가 10000이상'인 직원정보와 department_id가 60인 직원정보가 출력된다.

 

 

 

  • employees테이블에서 (department_id가 60이거나 department_id가 80)이고 salary가 10000이상인 직원정보 출력

1
2
3
4
SELECT *
FROM employees
WHERE ( department_id=60 OR
department_id=80) AND salary >= 10000;
cs

 

괄호에 의해 department_id가 60이거나 80이고 salary가 10000이상인 직원정보가 출력된다. salary가 10000이상이면서 department_id가 60인 직원은 없다.

 

 

 

 

  • employees테이블에서 hire_date가 2008년 4월 4일 이후이거나 salary가 13000이상이고 job_id가 AD_VP인 직원 정보 출력

1
2
3
4
SELECT *
FROM employees
WHERE hire_date > '08/04/04' OR salary >= 13000
AND job_id = 'AD_VP';
cs

 

괄호가 없는 경우 AND가 먼저 계산된다.

salary가 13000이상이거나 job_id가  AD_VP인 직원정보와, hire_date가 2008년 4월 4일인 직원정보가 출력된다.

 

 

 

 

  • employees테이블에서 hire_date가 2004년 1월 1일 이전이고 salary가 5000이하인 직원정보를 출력

1
2
3
4
SELECT *
FROM employees
WHERE NOT(hire_date > '04/01/01' OR salary > 5000);
--(hire_date<='04/01/01' AND salary <=5000)
cs

 

hire_date가 2004년 1월 1일 이전이고 salary가 5000이하인 직원정보가 출력된다.

 

 

 

 

 

<AND OR 예제>

 

  • employees테이블에서 salary가 4000을 초과하면서, job_id가 IT_PROG인 직원정보를 출력

1
2
3
SELECT *
FROM employees
WHERE salary > 4000 AND job_id='IT_PROG';
cs

 

 

 

  • employees테이블에서 salary가 4000을 초과하면서, job_id가 IT_PROG이거나 FI_ACCOUNT인 직원정보를 출력

1
2
3
SELECT *
FROM employees
WHERE salary > 4000 AND (job_id='IT_PROG' OR job_id='FI_ACCOUNT');
cs

 

 

 

 

'Learning > SQL' 카테고리의 다른 글

BETWEEN  (0) 2020.06.12
IN, NOT IN  (0) 2020.06.12
SELECT-WHERE 절  (0) 2020.06.12
SELECT 문  (0) 2020.06.12
오라클 XE, SQL Developer 설치 후 설정  (0) 2020.06.12
    • WHERE절은 FROM절 다음에 위치한다.

 

    • employees테이블에서 department_id가 90인 직원정보를 출력

1
2
3
SELECT *
FROM employees
WHERE department_id=90;
cs

 

 

 

 

  • employees테이블에서 salary가 24000인 직원정보를 출력
1
2
3
SELECT *
FROM employees
WHERE salary=24000;
cs

 

 

 

  • WHERE절 사용시 주의점

    • 문자(String)과 날짜(Date) 값은 항상 작은따옴표(')로 표시

    • 명령어는 대소문자를 구분하지 않지만 문자열은 대소문자를 구분한다. (Case-Sensitive)

    • 날짜값은 날짜포맷에 벗어나지 않도록 (Format-Sensitive)

    • 오라클의 날짜포맷은 RR/MM/DD (RR은 2자리 년도)

 

 

1.WHERE+문자열

  • employees테이블에서 first_name이 Steven인 직원정보를 출력
1
2
3
SELECT employee_id, first_name, last_name, job_id
FROM employees
WHERE first_name='Steven';
cs

 

 

 

  • first_name은 자료형이 문자열이기 때문에 Steven에는 작은따옴표를 써줘야한다.

 

 

 

2.WHERE+날짜

  • employees테이블에서 hire_date가 2003년 6월 17일 이후인 직원정보를 출력
1
2
3
SELECT *
FROM employees
WHERE hire_date>='03/06/17'--년도/월/날짜
cs

 

 

 

 

3.WHERE절 비교연산자

    • 날짜 비교

1
2
3
SELECT *
FROM employees
WHERE hire_date>='03/06/32'--년도/월/날짜
cs

 

(32일은 없기 때문에 에러가 난다.)

 

    • 숫자비교

  • employees테이블에서 salary가 10000이상인 직원정보를 출력
1
2
3
SELECT *
FROM employees
WHERE salary>=10000;
cs

 

 

    • 문자비교 (알파벳순)

  • employees테이블에서 first_name이 King보다 큰 직원정보를 출력 (l, m, n, o, p, q...)
1
2
3
SELECT *
FROM employees
WHERE first_name>'King';
cs

 

 

예제)

    • employees테이블에서 employee_id가 100인 직원 정보 출력

1
2
3
SELECT *
FROM employees
WHERE employee_id=100;
cs

 

 

    • employees테이블에서 first_name이 David인 직원 정보를 출력

1
2
3
SELECT *
FROM employees
WHERE first_name='David';
cs

 

 

    • employees테이블에서 employee_id가 105 이하인 직원 정보를 출력

1
2
3
SELECT *
FROM employees
WHERE employee_id<=105;
cs

 

 

    • job_history테이블에서 start_date가 2006년 3월 3일 이후인 정보를 출력

1
2
3
SELECT *
FROM job_history
WHERE start_date>'06/3/3';
cs

 

 

    • departments테이블에서 location_id가 1700이 아닌 모든 부서를 출력

1
2
3
SELECT *
FROM departments
WHERE location_id<>1700--!=1700
cs

 



 

'Learning > SQL' 카테고리의 다른 글

BETWEEN  (0) 2020.06.12
IN, NOT IN  (0) 2020.06.12
AND, OR  (0) 2020.06.12
SELECT 문  (0) 2020.06.12
오라클 XE, SQL Developer 설치 후 설정  (0) 2020.06.12

<SELECT-데이터 조회>

  • 대소문자 구분없이 명령문 입력

  • select + 열의 이름 + from + 테이블 이름

 

  • SELECT문에 적은 열의 순서대로 출력

    1
    2
    SELECT * FROM departments;
    select location_id,department_id from departments;
    cs

     

 

  • as뒤에는 열의 이름을 별칭으로 설정

    1
    2
    select location_id as "지역번호",department_id as "부서번호" 
    from departments;

 

 

  • as, 큰 따옴표는 생략 가능하다.

    1
    2
    SELECT * FROM departments;
    select location_id 지역번호 from departments;
    c

 

 

 

<작성 규칙>

  • 한줄 또는 여러줄 사용 가능하다.

  • 한 문장이 끝나면 반드시 세미콜론 ; 을 적어야한다.

  • 들여쓰기도 상관없이 작성가능하다.

  • 권장: 명령어를 대문자로, 나머지를 소문자로 작성하면 가독성이 좋아진다.

  • 별칭으로 할 열의 이름에 특수문자나 공백을 사용할 때에는 따옴표로 처리해야한다.

    1
    2
    select location_id as "지역 번호",department_id as "부서 번호" 
    from departments;
    cs

 

 

  • 주석처리

    1
    2
    3
    4
    5
    -- 한줄의 주석입니다. 단축키는 CTRL+/
    /*
    여러줄 주석
    을 다는 방법
    */
    c

     

 

 

 

1.테이블의 모든 행과 열을 읽어오기 ( * )

1
SELECT * FROM departments;
cs

 

2.특정 열만 읽어오기

1
SELECT department_id, department_name FROM departments;<
c

 

 

 

 

3.산술 연산자 사용 (+,-,*,/)

    • 우선 순위는 (), *, /, +, -순이다.

       

      1
      SELECT employee_id, first_name, salary FROM employees;
      cs

      1
      2
      SELECT employee_id, first_name, salary, salary+100, salary + (salary*0.1
      FROM employees;
      c

       

 

 

 

 

 

    • --널은 입력되지 않은, 사용가능하지 않은, 알수 없는 값

    • --널값은 제로(0) 또는 공백("")과는 다르다. 널 값은 계산을 할 수 없다.

       

       

      1
      2
      SELECT last_name,job_id, salary, commission_pct, commission_pct + 10 
      FROM employees;
      cs

       

       

 

 

 

 

5.중복된 값 제거: distinct

 

 

1
2
SELECT DISTINCT job_id
FROM employees;
c

 

 

 

 

 

 

 

<SELECT-WHERE 예제>

 

  • employees테이블에서 id, first name, last name 출력

    1
    2
    SELECT employee_id, first_name, last_name
    FROM employees;
    c

     

 

 

 

 

  • employees테이블에서 first name, salary, salary*1.1 as 뉴셀러리 출력

     

    1
    2
    SELECT first_name, salary, salary*1.1 AS "뉴셀러리"
    FROM employees;
     

 

 

 

 

  • employees테이블에서 employee_id는 '사원번호', first_name은 '이름', last_name은 '성'으로 출력

     

    1
    2
    SELECT employee_id as "'사원번호'", first_name as "'이름'", last_name as "성"
    FROM employees;
     

 

 

 

 

<연결 연산자 ||>

 

  • employees테이블에서 last_name과 job_id를 "is a" 문장으로 연결하여 "직업 정보"라는 이름의 열에 함께 출력

 

1
2
SELECT last_name || ' is a ' ||job_id as "직업 정보"
FROM employees;
c

 

 

 

 

  • employees테이블에서 employee_id, first_name과 last_name는 공백으로 연결하여 함께 출력
1
2
3
SELECT employee_id, first_name|| ' ' ||last_name
FROM employees;
 
cs

 

 


 
  • employees 테이블에서 first_name과 last_name 사이에 공백을 넣고 email을 출력하되, 이메일 뒤에 @company.com을 붙이기

    1
    2
    SELECT employee_id, first_name|| ' ' || last_name, 
    email || '@company.com'
    FROM employees;
    cs

 

 

 

'Learning > SQL' 카테고리의 다른 글

BETWEEN  (0) 2020.06.12
IN, NOT IN  (0) 2020.06.12
AND, OR  (0) 2020.06.12
SELECT-WHERE 절  (0) 2020.06.12
오라클 XE, SQL Developer 설치 후 설정  (0) 2020.06.12

<설치>

  • https://blog.naver.com/drv98 참고

  • Oracle Database Express 설치하기

  • Oracle SQL developer설치

    • https://www.oracle.com/tools/downloads/sqldev-v192-downloads.html 로 접속

    • Windows 64-bit with JDK 8 included 다운로드 (Java jdk가 있는 경우 그 아래에 있는 Windows 32-bit/64-bit 버번을 다운로드한다.)

    • 압축을 풀고 sqldeveloper 폴더 자체를 C드라이브로 옮기기

    • 설치해서 실행하는 프로그램이 아니므로 exe파일 우클릭-시작에 고정

    • 새접속-Name: Oracle-XE, 사용자 이름: SYSTEM, 비밀번호: XE설치시 설정한 비밀번호 (비밀번호 저장)

  • 로그인 후 서버에서 원하는 데이터 입력하기/가져오기/저장하기 (SQL로)

 

<Oracle SQL Developer 설정>

  • 환경설정-글꼴, 객체뷰어 설정

  • 실행은 Ctrl+Enter. 

 

  • HR: 연습용 계정을 비밀번호 1234로 맞춰서 unlock을 했고, 그 HR계정으로 접속 (새 접속 만들기에서 비밀번호는 sql문에 썼던 1234가 된다.)

 

  • 연습계정이 생성되었고 오라클에서 미리 만들어놓은 테이블들을 활용할 수 있다.

 

 

  • 스크립트 실행(F5)는 한페이지 전체를 실행한다.

  • Ctrl+Space: 자동완성 기능

 

  • SELECT: 데이터 검색 명령어, *: ALL, FROM 뒤에는 테이블을 적어준다.

 

 

<SCOTT 계정 설치>

  • cmd를 관리자 권한으로 실행

  • sqlplus 입력 후 엔터
  • password는 움직이지 않으므로 SYSTEM계정에 맞는 비밀번호를 정확하게 입력 후 엔터

 

 

  • 다음 scott.sql 경로를 복사 C:\oraclexe\app\oracle\product\11.2.0\server\rdbms\admin\scott.sql

 

 

  • cmd창에서 @입력후 경로를 붙여넣고 엔터

 

  • 비밀번호 1234

 

  • SCOTT계정과 테이블들이 생성된 것을 볼 수 있다.

 

  • HR연습계정에서 테이블들 살펴보기. 다른 테이블에서 참조한 외래키를 자신의 기본키로 사용할 수 있다. 

 

  • 새로 만들기-데이터베이스 파일

 

 

 

  • 파일 저장

 

 

'Learning > SQL' 카테고리의 다른 글

BETWEEN  (0) 2020.06.12
IN, NOT IN  (0) 2020.06.12
AND, OR  (0) 2020.06.12
SELECT-WHERE 절  (0) 2020.06.12
SELECT 문  (0) 2020.06.12

+ Recent posts