일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 별 찍기 - 11
- 시험 성적
- 1%d
- 10817
- 단계별로 풀어보기
- 평균은 넘겠지
- 10871
- Remix
- 1065
- 가상 화폐
- 자바스크립트
- 세 수
- 알고리즘 문제풀이
- 이더리움
- 1546
- 블록 체인
- 비트 코인
- 백준
- 더하기 사이클
- 솔리디티
- for문 사용해보기
- Baekjoon
- 1110
- 그대로 출력하기
- Mist
- 2448
- 함수 사용하기
- Dapp
- X보다 작은 수
- if문 사용해보기
- Today
- Total
블링블링 범블링
Ch.02 - BASIC SELECT 구문 본문
Database 02 - oracle 11g
SQL (structured Query Language)
- 관계형 데이터베이스에서 데이터를 조작하기 위해 사용하는 표준 검색 언어 방식
SQL에서 관리할 수 있는 Value 종류
- 문자
- 숫자
- 날짜
DATA TYPE
- 해당 column에 포함되는데 데이터 종류에 따라 결정
- CHAR(고정 길이 - 2000 byte), VARCHAR2(가변 길이 - 4000 byte), LONG, DATE, INT
- 영문은 상관없지만, 한글 한 글자는 3 byte 메모리 공간을 사용함
- 한글을 사용하기 위해서는 넉넉하게 VARCHAR2 (가변 길이) 를 사용하자.
- LONG 은 테이블 당 하나의 column 만 가능하다.
< SDDT >
- SELECT : 데이터 검색 - select
- DML : 데이터 조작 - update, delete
- DDL : 데이터 정의
- TCL : 트랜잭션 제어
1. SELECT 구문 Setting
데이터 조회 범위
특정 컬럼 조회
특정 해 조회
특정 컬럼/행 조회
여러 테이블의 특정 행/컬럼 조회(JOIN)
SELECT 구문 작성 시 고려사항 (주의사항)
키워드, 테이블 이름, 컬럼 이름은 "대소문자" 구분을 하지 않는다.
키워드, 테이블 이름, 컬럼 이름은 약자로 줄여 쓰거나 분리할 수 없다.
그러나, Data에 대해서는 "대소문자"를 구분한다.
대부분 키워드는 대문자로 하는 것을 권장한다 (현업에서)
나누어쓰기/들여쓰기 를 하면 가독성이 좋아지고, 편집이 쉬워진다.
단어와 단어 사이 공백
, 와 , 사이 공백 주기
비교 연산자 앞 뒤 공백
등..
데이터 조회 결과 (= result set)
데이터를 조회한 결과를 RESULT SET 이라고 부름
SELECT 구문에 의해 변화된 행들의 집합을 의미
RESULT SET에는 0개, 1개, N개(여러 개) 행이 포함될 수 있음
RESULT SET은 특정한 기준에 의해 정렬될 수 있음
2. SELECT 구문
- 모든 정보 조회 방법 2가지
- SELECT * ---- 현업에서 이걸 쓰면 안 좋아한다.
- SELECT table_name1, table_name2, ..... ---- 이렇게 써야한다. 이유는 구분이 가능해야 수정도 쉽기 때문
- 컬럼 값에 대한 산술 연산
- SELECT EMP_NAME, SALARY*12, ( SALARY + ( SALARY * BONUS_PCT ) ) * 12 FROM EMPLOYEE ;
- 이러면 HEADING이 이루어지기 때문에 가독성이 떨어지고, 이를 해결하기 위해 AS 를 통해 별칭을 사용한다.
- 별칭 사용
- AS 는 생략 가능
- 별칭은 숫자로 시작하면 안된다
- 별칭에 따음표 생략 가능 -- 대문자로 별칭 만들 때
- 별칭에 따음표 생략 불가능
- 별칭에 특수문자 포함 된 경우
- 대소문자를 구분해서 별칭을 표시해야 하는 경우
- 소문자를 별칭으로 사용하고 싶은 경우
- 한글을 별칭으로 사용하고 싶은 경우
- (중요) " " (큰따음표)는 일반 문자열로 보고, ' ' (작은 따음표) 는 데이터로 본다.
- 리터널 (LITERAL)
- 임의로 지정한 문자열
- Select 절에 사용하면 테이블에 존재하는 데이터처럼 사용할 수 있다.
- Dummy column을 사용해서 데이터를 출력할 수 있다.
- DISTINCT
- 하나의 유일한 값으로 출력하게 된다.
- 두 개의 결과를 중복되지 않는 값으로 출력
- WHERE 구문은 요구 사항을 처리한다.
- AND, OR, NOT 연산 ---- (TIP) 요구사항이 주어지면, AND OR NOT 을 적어놓고 끊어가면서 문제를 해결하면 쉽다.
- 연결 연산자 ( || ) 를 사용하면 여러 컬럼을 한 칼럼인 것처럼 연결하거나, 컬럼과 리터널을 연결할 수 있다.
- AND OR NOT
AND |
TRUE |
FALSE |
NULL |
TRUE |
T |
F |
N |
FALSE |
F |
F |
F |
NULL |
N |
F |
N |
OR |
TRUE |
FALSE |
NULL |
TRUE |
T |
T |
T |
FALSE |
T |
F |
N |
NULL |
T |
N |
N |
3. SQL 연산자
OPERATOR |
의미 |
= |
같다 |
>, < |
크다 / 작다 |
>= , <= |
크거나 작다 / 작거나 같다 |
!= |
같지 않다 |
BETWEEN AND |
특정 벙위에 포함되는지 비교 +) AND 대신 사용가능 |
LIKE , NOT LIKE |
문자 패턴을 비교 |
IS NULL , IS NOT NULL |
NULL 여부 비교 |
IN |
비교 값 목록에 포함되는지 여부 비교 |
- LIKE
- 비교하려는 값이 지정한 특정 패턴 (PATTERN)을 만족시키면 TRUE를 반환하는 연산자
- 패턴 지정을 위해 와일드 카드 (WILD CARD) 사용
- % : % 부분에는 임의 문자열 (0개 이상의 임의의 문자) 이 있다는 의미
- _ : _ 부분에는 문자 한개만 있다는 의미
- ESCAPE
- _ 혹은 % 가 패턴 비교를 위한 문자일지 모를 수 있는 경우가 있다.
- 이 때 ESCAPE 구문을 사용해서 특정 문자를 설정하고 그 문자 뒤에 있는 문자를 '비교 문자' 로 취급한다.
- IS NULL / IS NOT NULL
- NULL 은 = 연산이 안되기 때문에 IS NULL 연산자를 쓴다.
- IN
- 비교하려는 값 목록에 일치하는 값이 있으면 TRUE를 반환하는 연산자
- OR 대신 사용 가능
- 연산자 우선순위
- 알 필요 없음
- 그냥 괄호 () 로 처리하는게 확실함
'Technology > 데이터베이스' 카테고리의 다른 글
ch05 (0) | 2018.07.03 |
---|---|
Ch.03 - SQL 함수 (0) | 2018.07.03 |
Ch.01 - Database 의 기초 (DBMS) (0) | 2018.07.03 |
[DB 6장] SQL (0) | 2018.05.01 |
[DB 5장] 관계형 구조, 연산 기호 (0) | 2018.05.01 |