공부/Database 복습

1.데이터베이스 SELECT

ChoiDooSic 2021. 7. 17. 23:28

/*
    # SELECT 컬럼명 FROM 테이블명;
    
     - 데이터를 조회하는
     - 컬럼명에 *를 쓰는 것은 모든 컬럼을 뜻한다
     - 쿼리문은 대소문자를 구분하지 않는다
     - 컬럼명/테이블명은 대소문자를 구분하지 않는다
     - 테이블에 저장되는 데이터는 대소문자를 구분한다(ex: 사원명 등...)
*/
SELECT * FROM tabs; -- 사용할 수 있는 모든 테이블들을 불러와준다
SELECT * FROM employees; -- 직원들의 정보를 저장한 테이블
SELECT * FROM departments; -- 부서들의 정보를 저장한 테이블
SELECT * FROM jobs; -- 직급에 대한 정보를 저장한 테이블
SELECT * FROM locations; -- 지역에 대한 정보를 저장한 테이블

(컬럼명에 * 을 찍어줄 경우에 사용할 수 있는 모든 컬럼들을 불러온다)


SELECT employee_id, Email FROM employees;
(employees 테이블의 employee_id와 email만을 불러온다)

 

-- 테이블 컬럼 정보 확인하기
DESC employees;
DESC locations;
DESC jobs;

(테이블의 사용할 수 있는 모든 컬럼 정보들을 확인할 수 있다)

/*
    # NUMBER(n), NUMBER(m,n)
     - 숫자 데이터만 저장할 수 있는 컬럼 타입
     - 숫자가 하나만 적혀있으면 정수를 저장할 수 있고
       두개 적혀있으면 소수점까지 저장할 수 있다
     - NUMBER(10) : 10자리 정수를 저장할 수 있는 컬럼
     - NUMBER(10,2) : 8자리 정수와 2자리 소수를 저장할 수 있는 컬럼 10자리중 2개는 소수다
     
    # VARCHAR2(n)
     - 가변 길이 문자 데이터를 저장하는 컬럼 타입
     - 저장되는 데이터의 크기에 맞춰서 알맞은 공간만 사용하는 파일이다
     - VARCHAR2(10) 크기로 설정된 컬럼에 2글자만 들어온다면 2글자 만큼의 공간만 차지한다 최대10자리로 설정해둠
     - 가변적인 데이터를 저장할 때는 용량을 많이 절약할 수 있다(그러나 계속 길이를 계산해야한다)
    
    # CHAR(n)
     - 고정 길이 문자 데이터를 저장하는 컬럼 타입
     - 설정된 길이보다 적은 양의 데이터가 들어오더라도 설정된만큼의 공간을 모두 차지한다
     - CHAR(10) 크기로 설정된 컬럼에 2글자만 들어온다면 10글자 만큼의 공간을 모두 차지한다
     - 데이터가 낭비될 수는 있지만 크기 계산을 아예 하지 않는다는 장점이 있다(주민번호 같은거에 좋다 변하지않는 길이)
     
    # DATE
     - 날짜 및 시간을 저장하는 컬럼 타입
*/

컬럼명 뒤에 as 를 붙이고 별칭을 붙여줄수 있다.

컬럼명을 붙여주기 전


SELECT 
    employee_id as 사번,
    last_name as 성,
    first_name as 이름,
    department_id as 부서번호,
    salary as 급여
FROM 
    employees;

컬령명을 붙여준 후


 -- 쿼리문에서 산술 연산자 이용하기   
SELECT last_name, salary FROM employees;
SELECT last_name, salary+500 FROM employees;

SELECT last_name, salary*2 FROM employees;
SELECT last_name, salary*0.8 as 깎인월급 FROM employees; -- 별칭에 띄어쓰기하고 싶을때는 ""에 가두자
SELECT last_name, salary*0.8 as "깎인 월급" FROM employees;

SELECT * FROM employees;
SELECT last_name, salary, commission_pct FROM employees;

SELECT salary *commission_pct FROM employees 의 커미션 적용전 모습이다. 


-- NULL값을 연산하게 되면 무조건 NULL이 나온다
-- NVL(컬럼명,대체값): 해당 컬럼에서 NULL값이 나왔을 때 NULL대신 사용할 값을 설정한다
SELECT 
    last_name, 
    salary,
    salary *(1+ NVL(commission_pct,0)) as "커미션 적용"
FROM 
    employees;

SELECT  salary * (1+ NVL(commission_pct,0)) FROM employees 의 커미션 적용 후의 모습이다.

-- 연습2 : 모든 사원들의 사번/이메일/연봉/커미션 적용된 연봉을 출력해보세요. 
--        (salary는 월급입니다. 계산된 컬럼에는 별칭을 사용 반드시 사용할것)
SELECT 
    department_id,
    email, 
    salary *12 as "연봉",
    (salary *12) * (1+ NVL(commission_pct,0)) as "커미션 연봉"
FROM 
    employees;

 

-- SELECT DISTINCT: 같은 값이 한번만 출력된다 // 중복제거
SELECT DISTINCT job_id FROM employees;
SELECT DISTINCT department_id FROM employees;
SELECT DISTINCT last_name FROM employees;

SELECT DISTINCT job_id FROM employees;

의 모습이다 중복되는 job_id 가 없는걸 확인할 수 있다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

'공부 > Database 복습' 카테고리의 다른 글

6.Database 조인  (0) 2021.08.01
5.Database 정렬  (0) 2021.07.26
4.Database 그룹 함수  (0) 2021.07.19
3.Database 함수  (0) 2021.07.19
2.Database WHERE  (0) 2021.07.18