본문
Part 1. Database
1. SQL
1) DataBase 개요
- 한 조직의 여러 응용 시스템에서 공용할 수 있도록 중복되는 데이터를 최소화하여 통합/저장한 운영 데이터 집합
- 파일 시스템의 문제점 : 데이터 중복, 다수 사용자들의 정보 공유에 대한 문제
- 파일 시스템의 문제점을 보완하기 위해 데이터베이스 등장
- SQL : 현재 가장 널리 사용되는 데이터베이스 언어
- 특징
· 중복되는 데이터를 최소화 할 수 있음
· 데이터를 효율적으로 공유할 수 있음
· 데이터 보안 향상 : 권한에 따라 데이터의 접근이 제한 됨
· 데이터를 편리하게 관리할 수 있음 : 데이터 백어, 복구등 지원
2) 자료형 및 DB 주요 용어
- SQL(Structured Query Language) : 데이터베이스와 통신하는 언어
- 유형
· DQL : 검색시 사용 (Select)
· DML : 변경시 사용 (Update, Insert, Delete)
· DDL : Object의 생성과 변경 (Create, Drop, Alter)
· TCL : Transaction(작업단위) 종료 및 취소 (Commit, Rollback, Savepoint)
· DCL : 권한 부여 및 취소 (Grant, Revoke 등)
- Oracle 자료형의 종류(자주 사용하는)
· Char : 고정길이의 문자, 4000byte
· varchar2 : 가변길이의 문자, 4000byte
· number : 숫자 값, -38 ~ +38 number(P,s) : P는 전체자리수 , s는 소수점 이하 자리수)
· Date : 날짜 값
- Null 값의 정의
: 컬럼에 값이 지정(할당)되지 않은 상태를 나타내는 값, 0(zero)나 공백과는 다름
- 주요 용어
· Table : 논리모델의 Entity를 물리 모델로 매핑한 것
· Row : Entity를 나타내기 위한 정보(Column)들의 집합, Record, Tuple
· Column : Entity의 원자성을 갖는 고유한 하나의 속성을 나타냄, Attribute를 물리 모델로 매핑한 것
· Primary Key : 각 Row를 유일하게 식별 가능 하도록 만드는 1개 컬럼 또는 2개 이상의 컬럼 의 조합,
테이블당 1개만 존재 가능
· Foreign key : 다른 테이블의 priomary key를 참조하는 1개 컬럼 또는 2개 이상의 컬럼의 조합,
테이블당 0개 이상 존재 가능, Null이거나 참조하는 primary key의 값과 일치해야 함
3) 기본적인 SQL - Select
- select 문 기본 : 원하는 데이터를 조회하기 위한 SQL
SELECT column FROM table ;
- 중복행 제거 : DISTNCT
: 조회하는 모든 컬럼의 조합이 일치하는 행을 제거, 컬럼별로 중복 제거는 불가능, SEECT절에 1번만 기술
4) 선택적 데이터 조회 및 정렬
- WHERE절(조건절) : 테이블에 저장된 데이터 중에서 원하는 데이터만 선택적으로 검색하는 기능
컬럼 이름, 연산자, 상수, 산술 표현식을 결합하여 표현 가능
여러개의 제한 조건은 논리 연산자로 연결
- 비교 연산자
· = 같다
· !=, <> 같지 않다
· > 크다
· >= 크거나 같다
· < 작다
· <= 작거나 같다
-- 부서번호가 50이면서 연봉이 5천 이상인 사람 select * from emp where deptid = 50 and sal >= 5000 ;
-- NULL 비교 시 select * from emp where deptid is not null and sal >= 5000 ;
is not null 또는 is null로 써준다!!
- BETWEEN A AND B : 비교하려는 값이 A와 B에 포함되면 TRUE를 반환하는 연산자
-- 연봉이 10000~20000사이 출력 select empid, fname, sal from emp where sal between 10000 and 20000 ;
- IN : 비교하려는 값 목록(a,b,c)에 일치하는 값이 있으면 TRUE 반환
- Like : 비교하려는 값이 지정한 특정 패턴을 만족시키면 TRUE 반환,
· % : 0개 이상의 임의의 문자를 의미
· _ : 1개의 임의의 문자를 의미
- 논리 연산자
· AND : 모든 조건이 참을 때, 참 값을 반환
· OR : 모든 조건 중 하나 이상이 참일 때, 참 값을 반환
· NOT : 조건과 반대되는 결과를 반환(NULL 제외)
-- 부서번호가 50이면서 연봉이 5천 이상인 사람 select * from emp where deptid = 50 and sal >= 5000 ;
- Order by : 실행 결과를 특정 컬럼 기준으로 정렬할 때 사용, SELECT 구문의 마지막에 위치
· ASC : 오름차순(기본값)
· DESC : 내림차순
--근속년수를 구하고 정렬 select empid, fname, hdate, sysdate, round((months_between(sysdate, hdate)/12),1) 근속년수 from emp order by 근속년수 asc, hdate desc ;
5) 단일행 함수
: 기본적인 Query 문을 더욱 강력하고 편리하게 사용하도록 도와줌
- 반환 결과에 따라 단일 행 함수와 그룹 함수로 구분
· 단일 행 함수 : INPUT-N개 , OUTPUT-N개
· 그룹 함수 : INPUT-N개 , OUTPUT-1개
- 단일 행 함수 : 한 행당 하나의 결과 값을 반환, 데이터 값을 조작하는데 주로 사용
- 문자 함수
· INITCAP : 문자열의 첫 번쨰 문자를 대문자로 변환
· LOWER : 문자열 전체를 소문자 변환
· UPPER : 문자열 전체를 대문자 변환
· CONCAT : 두 문자의 결함, ||와 동일
-- 문자열 결합 -- Concat을 이용한 공백 삽입 시에는 Concat을 2번 사용 select empid, concat(fname, concat(' ', lname)) "이름" from emp where deptid = 80 order by "이름" asc;
· SUBSTR : 문자열 일부 추출, SUBSTR('SQL*Plus', 5, 4) → Plus
· INSTR : 특정문자가 출현하는 첫번 째 위치를 반환
· LPAD : 오른쪽 정렬 후 왼쪽으로 지정문자 삽입
· RPAD : 왼쪽 정렬 후 오른쪽으로 지정문자 삽입
· LENGTH : 문자열 길이 반환
- 숫자 함수
· ROUND : 지정한 자리 이하에서 반올림
· TRUNC : 지정한 자리 이하에서 절삭
· MOD(M,N) : M을 N으로 나눈 나머지
· CEIL : 지정한 값보다 큰 수 중에서 가장 작은 정수
· FLOOR : 지정한 값보다 작은 수 중에서 가장 큰 정수
- 날짜 함수
· SYSDATE : 시스템의 현재 날짜
· MONTHS_BETWEEN : 날짜와 날짜 사이의 개월을 개산
· LAST_DAY : 월의 마지막 날짜를 계산
'Database 개발자 과정' 카테고리의 다른 글
2. SQL(2) (0) | 2014.12.23 |
---|