#들어가기 전에 알아둘것 순서!
1. where - 2. from - 3. group by - 4. having - 5. select - 6. order by
SQL *PLUS
conn hr/hr; [hr 계정으로 hr의 db접속]
desc [table이름]; [ 테이블 정보보기]
ed [cmd 내에서 메모장에서의 수정가능]
/ [메모장 수정후 수정된 내용을 cmd 에서의 갱신 명령어]
1. alias 기능
As -단일문장 대상.대문자가 출력됨
공백- 가능하나 쓰기엔 비추,가독성 떨어짐
ex) alias 문에 "" 없을시 [대문자] 로 출력
select last_name as name, commission_pct up_salary
from employees

ex) alias 문에 "" 붙을시 [소문자] 또는 [대+소문자] 로 출력
select last_name as "name", commission_pct "up_salary"
from employees

#성능적인면
단일 문장을 표현시 as 만 사용 -대문자
select salary as hi from employees;
복수 문장을 표현시 "" 을 사용 -소문자
select salary as "hi hello" from employees;
2. 리터럴 문자(' '(싱글 코테이션).문자.날짜.숫자)
ex) select last_name || ' is a ' || job_id as "employee details" from employees;

' ' : 컬럼이 소유하고 있는 데이터를 표현(저장되있지 않는 리터럴 데이터를 표현하기 위해)

3. 중복제거 distinct

select 는 행 으로 읽어들이기 때문에
열로 봤을때는 중복이 존재하나
행 으로 봤을땐 중복을 제거한 것임
3. where 절
where last-name='Whalen';
문자, 날짜인 경우 반드시 ' ' 명시
숫자는 x

WHERE 절에 대 소문자 반드시 구분해줘야함
WHY? 아스키 값으로 대조를 진행하기때문에 대 소문자는 서로 코드가 다름
조건 명시할시, alias 값을 넣으면 안됨, 인식 안됨무조건 컬럼 본값을 넣어주어야함
select last_name, salary*12 as "AnnSal"
from employees
where salary*12 not between 150000 and 200000
#성능적인면
<> , != : 같지 않다라는 의미로서 쓰이나, 성능적으로는 후자가 좀더 좋음
WHY? 전자는 크고 작고를 일일이 검사하기 때문
where 의 연산자
in() :복수개의 조건을 찾을때like: % -문장전체 , _ -문자 하나
%s%: s를 포함하는 문장 전체 찾기
%s: 끝에 s가 있는 문장 찾기
_s%: 앞에서 두번째 자리에 s가 있는 문장 찾기
%s_:뒤에서 두번째 자리에 s가 있는 문장 찾기
ordey by
#디폴트 값은 오름차순 ASC;
select last_name, job_id, department_id, hire_date
from employees
order by hire_date
#ordey by절에 select 의 선언된 컬럼의 순서로도 선언 가능
select last_name, job_id, department_id, hire_date
from employees
order by 3
#alias 절도 ordey by절에 선언 가능
## order by절에는 대문자로만 인식하기 때문에 as 절에 " " 사용시 오류뜸
select last_name, job_id, department_id, hire_date as hi
from employees
order by hi

