YSHUSH

SQL이란? 본문

Coding/SQL

SQL이란?

코딩; 2022. 1. 22. 12:22

Structured  = 구조적인

Query            = 질의

Language    = 언어

 

database container들은 table에 담기며 CRUD는 동작의 기본이다.
CRUD : Insert, Delete , Select, Update

이중 Selsect가 동작의 90%를 차지한다.

 

DB에서 가장 중요한 것은 table 이고 80 - 90%정도를 차지한다.table은 행(row)과 열(colum)로 이루어져 있다.

SQL 에서 문자열 입력할때는 VARCHAR2에 바이트 용량을 입력한다.
문자는 작은따옴표로 감싼다, 영문은 한글자당 1BYTE, 한글은 3BYTE

 

수업때는 sqldeveloper를 사용했다.

 

˙ table의 형식

SELECT (값, 컬럼명, 함수, SUB QUERY)
FROM (테이블명, SUB QUERY)

˙sqldeveloper내의 employee테이블을 가지고 연습하기

SELECT * FROM TAB;  -- hr계정에 있는 모든 테이블을 볼 수 있는 쿼리

SELECT * FROM employees;

select EMPLOYEE_ID, FIRST_NAME, SALARY
from EMPLOYEES;     -- 선택적으로 볼 수 있음

SELECT LAST_NAME, SALARY, SALARY + 300
from EMPLOYEES;

SELECT LAST_NAME, SALARY * 12
from EMPLOYEES;

-- String str = "hello", str1 = "world"     str = str + str1
--                                                str || str1
SELECT FIRST_NAME || ' ' || SALARY
from EMPLOYEES;

-- ALIAS : 별명을 지어주는 것, ALIAS를 묶어줄때는 큰따옴표를 쓴다.
SELECT employee_id AS "사원번호", salary as 월급, first_name 이름
from EMPLOYEES;

-- distinct : 중복행을 삭제
SELECT DISTINCT JOB_ID
FROM EMPLOYEES;

DESC EMPLOYEES;		-- DESC는 테이블 명세를 볼 수 있도록 함

-- 과제
SELECT EMPLOYEE_ID, LAST_NAME, SALARY, JOB_ID
FROM EMPLOYEES;

SELECT LAST_NAME, SALARY, SALARY + 300
FROM EMPLOYEES;

SELECT EMPLOYEE_ID, LAST_NAME, SALARY, SALARY * COMMISSION_PCT
FROM EMPLOYEES;

SELECT LAST_NAME AS 이름, SALARY AS 급여
FROM EMPLOYEES;

SELECT LAST_NAME AS NAME, SALARY * 12 AS "ANNUAL SALARY"
FROM EMPLOYEES;

SELECT LAST_NAME, JOB_ID
FROM EMPLOYEES;

SELECT LAST_NAME, 'is a', JOB_ID
FROM EMPLOYEES;

SELECT LAST_NAME, ':', '1 Year salary =', SALARY * 12
FROM EMPLOYEES;

SELECT DISTINCT JOB_ID
FROM EMPLOYEES;

˙연습 예제

-- 문제1) EMPLOYEES Table의 모든 자료를 출력하여라.
SELECT  
    * FROM employees;
    
-- 문제2) EMPLOYEES Table의 컬럼들을 모두 출력하라.    
DESC employees;
DESC departments;

-- 문제3) EMPLOYEES Table에서 사원 번호, 이름, 급여, 담당업무를 출력하여라.
SELECT employee_id, FISRT_NAME, salary, JOB_ID
FROM employees;

-- 문제4) 모든 종업원의 급여를 $300증가 시키기 위해서 덧셈 연산자를 사용하고 결과에 SALARY+300을 디스플레이 합니다.
SELECT employee_id, salary, salary+300 AS "salary + 300"
FROM employees;

-- 문제5) EMP 테이블에서 사원번호, 이름, 급여, 보너스, 보너스 금액을 출력하여라. 
-- (참고로 보너스는 월급 + (월급*커미션))
SELECT employee_id, first_name, salary, NVL(salary * commission_pct, 0) AS 보너스,  NVL(commission_pct, 0),
       salary +  NVL(salary * commission_pct, 0) AS "실제 수령 금액"
FROM employees;

/*
    NVL(컬럼명, 컬럼의 값이 NULL인 경우 여기에 설정된 값을 출력)
*/

-- 문제6) EMPLOYEES 테이블에서 LAST_NAME을 이름으로 SALARY을 급여로 출력하여라.
SELECT last_name AS 이름, salary as "급 여"
FROM employees;

-- 문제7) EMPLOYEES 테이블에서 LAST_NAME을 Name으로 SALARY * 12를 Annual Salary(연봉)로 출력하여라
SELECT last_name Name, salary*12 AS "Annual Salary(연봉)"
FROM employees;

-- 문제8) EMPLOYEES 테이블에서 이름과 업무를 연결하여 출력하여라. 
SELECT first_name || ' ' || job_id 
FROM employees;

-- 문제9) EMPLOYEES 테이블에서 이름과 업무를 “KING is a PRESIDENT” 형식으로 출력하여라. 
SELECT first_name || ' is a ' || job_id 
FROM employees;

-- 문제10) EMPLOYEES 테이블에서 이름과 연봉을 “KING: 1 Year salary = 60000” 형식으로 출력하여라. 
SELECT first_name || ': 1 Year Salary = ' || salary * 12 AS "이름과 연봉"
FROM employees;

-- 문제11) EMPLOYEES 테이블에서 JOB을 모두 출력하라(중복생략).
SELECT DISTINCT job_id
FROM employees;

SELECT DISTINCT department_id
FROM employees;

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

join  (0) 2022.01.22
order by, group by 예제  (0) 2022.01.22
정렬(order by)과 통계(count, sum, avg, max, min)  (0) 2022.01.22
조건절 예제  (0) 2022.01.22
조건절 (where, in, between, like)  (0) 2022.01.22