0. 모든테이블 확인
select *
from tab;
0-1. 접속계정 확인
show user;
0-2. 구조보기 (desc)
desc emp;
desc dept;
0-3. help set (도움말
0-4. set num 7 #숫자길이; 소숫점 아래자리 범위
1. 부서 출력
select *
from dept; #이제는 세미콜론 쓰는 습관 들이기!
2. 사원이름 번호 출력
select ename, empno
from emp;
3. 부서테이블에서 부서번호, 위치 출력
select deptno, loc #selec 말고 select라고 끝까지 쓰기 주의
from dept; #emp 아니고 dept
4.사원테이블 부서테이블 전체출력 (12*4-dept)
select *
from emp, dept;
4-1. 너무 기니까 간단하게 (선택적으로 골라오기)
select emp.ename, emp.deptno, dept.dname
from emp, dept;
4-2. 별칭주기 (테이블에는 as 없음)
select 컬럼 [as] 별칭..
from 테이블명 별칭..;
select 사원.ename, 부서.deptno, 부서.dname
from emp 사원, dept 부서;
5. 쿼테이션으로 이름변경 (as는 선택적)
select ename as "사원이름", deptno as "부서이름", sal as "봉급"
from emp;
6. 문자열 연결 연산자 ||(shift+ \ 2번) : select 위치 지정 (타이틀만 더블쿼터, 밸류는 싱글!!)
select ename||'님' #더블쿼터 안됨
from emp;
(= "= char 정적/ varchar, varchar2 가변)
(char(20)은 / varchar(20): 2자리 주면 char은 20개, varchar은 2개만 18개 메모리 안잡음)
6-1. 00님은 00일에 입사했다 출력해보기
select ename||'님은' ||hiredate||'일에 입사했다' #연결연산자니까 hiredate에는 앞뒤로!
from emp;
select ename||'님은', hiredate||'일에 입사했다. (콤마도 된다)
7.distinct (열중복제거)
select distinct
from emp;
#select distinct job,deptno (묶어서도 가능)
#distinct 반대말은 all
8.사칙연산 (연봉구하기)
sal*12 +comm
#comm이 null값이면 연봉계산이 안됨
#nvl null값을 채워줌
#연 봉이라고 적을거면 더블쿼터.
select ename, sal*12+comm "연 봉"
9. order by 정렬할 칼럼[asc(오름차순), desc]
#기본값은 오름차순(asc)이고 숫자로 정렬기준을 세팅할수도 있다.
10. literal :
열이름 열별칭이 아니면서 select 목록에 포함된 문자 숫자 날짜. 각행이 반환될때마다 출력됨
날짜 문자는 싱글로 묶어야하는데 숫자는 그렇지 않음
텍스트 리터럴 문자열은 질의결과에 포함되어 select 목록의 열과 동일하게 취급된다.
SELECT 2 * 1.23, 3 * '2,34' FROM DUAL;
2*1.23 3*'2,34'
---------- ----------
2,46 7,02
#내꺼 이상하다.... '2,3' 은 정상 '2.3'은 비정상이어야 하는데 콤마가 비정상이라고 뜨네
10, pseudo column 의사열 -query가 가능한 열
-rownum을 이용하여 검색된 로우의 수를 검색할 수 있다
-rownum은 각 검색된 행의 일련번호로써, order by에 의한 정렬 이전에 부여된다. <<중요
-rowid는 테이블내의 특정한 행을 유일하게 구별해주는 값으로 데이터타입은 rowid이다.