관리 메뉴

프로그래밍 삽질 중

SQL 기초 (1) 데이터 타입 및 출력방법 (결과 값 존재) 본문

과거 프로그래밍 자료들/SQL(Oracle)

SQL 기초 (1) 데이터 타입 및 출력방법 (결과 값 존재)

평부 2021. 3. 16. 17:22

※ 데이터 타입

1) 숫자형 : NUMBER(p, s)  * 표준은 아님, 보통 많이 쓰임

2) 문자형 데이터 타입 : CHAR(s), NCHAR(s), VARCHAR(s), NVARCHAR(s) *s는 숫자

3) 날짜형 데이터 타입 : DATE, TIMESTAMP, INTERVAL

- DATE : 고정된 7바이트 할당, 크기 지정X

- TIMESTAMP : DATE의 확장형 

 

[날짜형 데이터 타입 예시 및 결과]

1
SELECT SYSDATE, SYSTIMESTAMP FROM DUAL;
cs

 

 

※ SELECT 절 문법

- SELECT [DISTINCT] [조회할 열1이름] [열2이름] [열3이름] ...

  FROM [조회할 테이블 이름];

- DISTINCT : 생략 가능, 마지막은 항상 ; 붙이기(자바와 동일)

- 명령어나 객체 이름 등의 대소문자를 구분하지 않으나 인스턴스 값들을 구분함

(보통 입력 시 대문자를 많이 사용)

 

※ 데이터 전체 검색하기

- *로 테이블 전체 열 출력하기

[예시]

1
SELECT * FROM Employees;
cs

 

※ 데이터 부분 검색하기

1) 데이터 부분 열 출력하기

- Employee 테이블의 사원번호, 사원 성, 이메일, 고용날짜 조회

1
2
SELECT EMPLOYEE_ID, LAST_NAME, EMAIL, HIRE_DATE
FROM Employees;
cs

 

2) all로 중복되는 열 제거 없이 출력하기(이름, 핸드폰번호) 

1
SELECT ALL FIRST_NAME, PHONE_NUMBER FROM Employees;
cs

 

3) 중복 데이터를 삭제하는 경우 (열이 1개)

1
SELECT DISTINCT FIRST_NAME FROM Employees;
cs

 

4) 중복 데이터를 삭제하는 경우(열이 여러 개)

1
SELECT DISTINCT LAST_NAME, HIRE_DATE FROM Employees;
cs

 

※ 열에 새로운 값 추가해서(AS 입력하고 싶은 이름) 출력하기(계산식) 

- 직업 ID, 임금, 연봉 5%인상 추가

1
2
SELECT JOB_ID, SALARY, SALARY*12+SALARY*0.005 AS "연봉 5%인상"
FROM Employees;
cs

 

※ 순서대로 정렬하기(ORDER BY - 기본적으로 오름차순(ASC), 내림차순(DESC) 지정해야 함

- 임금을 기준으로 내림차순(1)

- 오름차순 내림차순 동시에 사용 가능(2) : 직업 ID 오름차순, 임금 내림차순

1
2
//(1)
SELECT
 SALARY FROM Employees
ORDER BY SALARY DESC;

//(2)

SELECT * FROM Employees ORDER BY JOB_ID ASC, SALARY DESC;

cs

 

 

※ 필요한 데이터만 출력하기 - WHERE문 붙이기

- 부서 번호가 100인 사원들의 데이터 출력하기

1
2
SELECT * FROM Employees
WHERE department_id = 100;
cs