국비교육 21일차 Oracle : Oracle 기초
select * from tab;
/*
------------------------------
TNAME TABTYPE
------------------------------
COUNTRIES TABLE
DEPARTMENTS TABLE
EMPLOYEES TABLE
EMP_DETAILS_VIEW VIEW (VIEW는 TABLE은 아니지만 select되어진 결과물을 마치 TABLE 처럼 보는 것)
JOBS TABLE
JOB_HISTORY TABLE
LOCATIONS TABLE
REGIONS TABLE
*/
select *
from DEPARTMENTS;
SELECT *
From DEPARTMENTS;
select DEPARTMENT_ID, DEPARTMENT_NAME
from DEPARTMENTS;
from
과 select
는 명령어인데, sql 명령어는 대소문자를 구분하지 않는다. (하지만 명령어는 대체로 소문자 사용)DEPARTMENTS
는 테이블명인데, 테이블명도 대소문자를 구분하지 않는다.DEPARTMENT_ID, DEPARTMENT_NAME
은 컬럼명인데 컬럼명은 대소문자를 구분하지 않는다. (하지만 테이블명과 컬럼명은 대체로 대문자 사용)select * -- *은 모든 컬럼을 뜻한다.
from departments
where department_name = 'Sales'
departments
테이블에서 department_name
항목의 이름이 'Sales'
와 일치하는 행만 찾아서 모든 결과를 보여라.select *
from DEPARTMENTS;
describe DEPARTMENTS;
-- 또는
desc DEPARTMENTS;
/*
이름 널? 유형
--------------- -------- ------------
DEPARTMENT_ID NOT NULL NUMBER(4)
DEPARTMENT_NAME NOT NULL VARCHAR2(30)
MANAGER_ID NUMBER(6)
LOCATION_ID NUMBER(4)
이름(컬럼명)
DEPARTMENT_ID (부서번호)
DEPARTMENT_NAME (부서명)
MANAGER_ID (부서장의 사원번호)
LOCATION_ID (부서위치ID)
널?
NOT NULL ==> NOT NULL은 반드시 데이터를 입력해야한다.
"필수입력사항 예 : 아이디, 비밀번호, 성명"
아무것도 없음 ==> NULL을 허용한다는 뜻으로 데이터 값이 들어와도 괜찮고
데이터 값이 안들어와도 괜찮다는 뜻이다.
"선택사항 예 : 집전화번호"
유형(데이터 타입)
NUMBER(4) ==> 숫자타입 -9999 ~ 9999
NUMBER(6) ==> 숫자타입 -999999 ~ 999999
NUMBER(6,2) ==> 숫자타입 -9999.99 ~ 9999.99
-- 전체가 6자리인데 소수부가 2자리
NUMBER ==> 숫자타입 자리수에 제한이 없다.
VARCHAR2(30) ==> 문자열타입 최대 30byte까지 입력 가능
VARCHAR2(6) ==> 문자열타입 최대 6byte까지 입력 가능
'superman' 8byte이므로 입력 불가
'hong' 4byte이므로 입력 가능
인코딩이 MS949 일 때 한글 1글자는 2byte 이므로
'슈퍼맨'은 6byte이다.
인코딩이 UTF-8 일 때 한글 1글자는 3byte 이므로
'슈퍼맨'은 9byte이다.
NVARCHAR2(6) ==> 문자열타입 최대 6글자까지 입력 가능
'superman' 8글자이므로 입력 불가
'hong' 4글자이므로 입력 가능
'hongkd' 6글자이므로 입력 가능
'슈퍼맨' 3글자이므로 입력 가능
'골든리트리버' 6글자이므로 입력 가능
DATE ==> 날짜타입
*/
select *
from EMPLOYEES; -- "사원" 테이블
desc EMPLOYEES;
/*
이름 널? 유형
--------------- -------- ------------
DEPARTMENT_ID NOT NULL NUMBER(4)
DEPARTMENT_NAME NOT NULL VARCHAR2(30)
MANAGER_ID NUMBER(6)
LOCATION_ID NUMBER(4)
이름 널? 유형
--------------- -------- ------------
DEPARTMENT_ID NOT NULL NUMBER(4)
DEPARTMENT_NAME NOT NULL VARCHAR2(30)
MANAGER_ID NUMBER(6)
LOCATION_ID NUMBER(4)
이름 널? 유형
-------------- -------- ------------
EMPLOYEE_ID (사원번호) NOT NULL NUMBER(6)
FIRST_NAME (이름) VARCHAR2(20)
LAST_NAME (성) NOT NULL VARCHAR2(25)
EMAIL (이메일) NOT NULL VARCHAR2(25)
PHONE_NUMBER (연락처) VARCHAR2(20)
HIRE_DATE (입사일자) NOT NULL DATE
JOB_ID (직종ID) NOT NULL VARCHAR2(10)
SALARY (기본급여) NUMBER(8,2)
COMMISSION_PCT (커미션[수당]) NUMBER(2,2)
MANAGER_ID (직속 상관[사수]의 사원번호) NUMBER(6)
DEPARTMENT_ID (해당 사원이 근무하는 부서번호) NUMBER(4)
*/
select *
from LOCATIONS; -- 부서의 위치정보를 알려주는 테이블
select *
from COUNTRIES; -- 국가 정보를 알려주는 테이블
select *
from REGIONS; -- 대륙 정보를 알려주는 테이블