티스토리 뷰
현재 접속 DB계정에 생성되어있는 테이블 확인
SELECT * FROM tab;
테이블 구조 확인
DESC table_name;
SELECT 절에서 중복데이터를 제거하는 키워드
DISTINCT
예)SELECT DISTINCT column_name FROM table_name;
컬럼에 대한 별명 부여(alias)
-column_name as alias_name
-column_name alias_name
-column_name "alias_name"
어떤 방식으로 사용하든 상관없으나 특수문자를 사용해야할때는 "" 사용
합성연산자 ||
Column 2개를 한 Column으로 출력하고 싶을때 사용.
조회결과에 무언가를 더하고싶을때 사용
예)SELECT column_name || column_name FROM table_name;
예)SELECT column_name || ' ' || column_name FROM table_name;
데이터타입 비교
-NUMBER 와 타 데이터타입과의 비교는 전부 NUMBER 로 형변환 후 비교
-NUMBER와 비교하는 문자열에 숫자값이 아닌 값이 들어가있으면 오류
예) 5 > '3' 참, 5 > '7' 거짓, 5 > '용' 오류
-때문에 CHAR타입이나 VARCHAR2타입의 데이터를 비교연산할때 숫자 상수를 사용할 경우 주의를 요한다.
-CHAR와 CHAR 비교시 더 큰 데이터타입에 맞게끔 작은 쪽의 크기를 공백으로 늘린 후 비교
예)CHAR(10)의 'ㅋㅋㅋ'와 CHAR(5)의 'ㅋㅋㅋ'은 크기가 같음.
-CHAR와 VARCHAR2 비교시 일반적 문자열비교.
문자열끼리의 비교
-왼쪽부터 한글자씩 아스키코드로 비교함.
-뒤쪽크기는 상관없이 첫번째 비교부터 결과가 결정됨. 즉 뒷쪽문자열이 더 많더라도 앞쪽값이 작으면 그대로 작은값.
예)'ㅋㅋㅋ'과 'ㅋㅋㅋ1'비교시 왼쪽 3개 'ㅋㅋㅋ'은 서로 같기에 넘어가고 '1'이 더 있는 뒷쪽값이 더 큰값
예)'하하' > '유재석' 비교시 '하'와 '유'를 비교해 '하'가 더 큰값이기때문에 뒤쪽 상관없이 '하하'가 더 큰값
예)같은 이유로 '11111111111111111' > '3' 을 비교하면 '3'이 더 큰값이됨.
-CHAR와 문자열 상수비교시 CHAR크기에 맞게 문자열 상수의 크기를 공백으로 늘린 후 비교
예)CHAR(10) 'ㅋㅋㅋㅋㅋ'과 문자열 상수 'ㅋㅋㅋㅋㅋ'을 비교시 크기가 같음.
ROWNUM
-데이터가 조회된 순간 ROWNUM이 할당된다.
다시말해 WHERE ROWNUM > 5 라는 조건을 걸었을경우 제일 처음 ROWNUM에 1이 할당되고 5와 비교했을때 >연산이 거짓이 되므로 데이터가 소멸된다.
이후 두번째로 나온 데이터역시 ROWNUM이 1로 할당되므로 데이터가 100만개라고 할지라도 단 1개도 출력되지않는다.
반대로 ROWNUM < 5 라는 조건을 걸었을경우에는 4개의 데이터가 정상적으로 출력된다.
ESCAPE
-LIKE 연산자에서 불특정한 단어를 지칭하는 %, _를 하나의 문자로 취급하기위한 옵션
예)SELECT * FROM table_name WHERE column_name LIKE '\%' escape '\';
\뒤에있는 문자를 하나의 문자로 취급. 굳이 \일 필요는 없고 escape ''안에있는 문자로 사용하면 됨
예)SELECT * FROM table_name WHERE column_name LIKE 'a%' escape 'a';
이런경우에도 같은 역할을 함
NULL은 0, 빈문자열, 공백 등이 아닌 그냥 값이 없는 상태
연산자 우선 순위
0. 괄호
1. 비교연산자(=, !=, <>, <, <=, >, >=)
2. NOT
3. AND
4. OR
집합 연산자
*집합 연산자를 사용할때는 기본적으로 같은 데이터타입의 Column만 조회해야한다.
-UNION : 두 테이블을 합친다. 합치는 과정에서 중복데이터는 1개만 출력한다.
-UNION ALL : 두 테이블을 합친다. 중복되더라도 그대로 출력한다.
-INTERSECT : 중복되는 데이터만 출력한다.
-MINUS : A MINUS B 일 경우 A테이블에서 B테이블에 있는 정보를 제거한 A테이블을 출력한다.
'DataBase' 카테고리의 다른 글
ERWin sql 추출 (2) | 2014.08.05 |
---|---|
기본키가 다중컬럼으로 이루어져있을때 (2) | 2014.08.01 |
인덱스의 단점 (0) | 2014.07.25 |
오라클 함수 (0) | 2014.07.24 |
오라클 쿼리 실행 순서 (4) | 2014.07.24 |
- Total
- Today
- Yesterday
- EffectiveJava
- programming
- java
- DesignPattern
- db
- TEST
- go-core
- generics
- MySQL
- JavaScript Core
- http
- backend개발환경
- Kotlin
- clean code
- javascript
- JPA
- 정규표현식
- frontcode
- servlet
- mariadb
- Jackson
- Spring
- Design Pattern
- OOP
- frontend개발환경
- java8
- spring cloud
- Git
- toby
- code
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |