hr 계정 만료되면 cmd에서 다시 설정해주기, 지난 금요일 수업 자료 확인
: alter user hr identified by hr account unlock;
[Data와 Information의 차이]
▶ Data: 무작위로 수집된 값들(원석)
▶ Information : 데이터를 정제해서 의사결정할 수 있는 형태로 만든 것(보석)
[데이터베이스의 특징]
- 데이터 무결성(Ingegrity)
: 결점이 없는 데이터(데이터를 100%로 신뢰), 데이터의 중복성을 감소, 무결성 유지를 위해 데이터를 쪼갠다(정규화).
- 독립성(Indepedency) 유지
- 중복성 감소
- 보안성
- 공유성
- 일치성
▶저장은?
1) File :
- HDD 공유하기가 어렵고 파일을 저장한 사람만이 파일에 접근할 수 있다.
- 단점: 특정 어플리케이션에 종속적이다.
2) DBMS :
- RDBMS(관계), 오라클 등등
▶ SQL(Structured Query Language)
: 즉각적으로 명령의 값을 보여준다.
: SQL/PL-SQL 절차(Procedure)를 넣은 것
- DDL(create, alter, drop) : Object 객체를 정의
Object(table, user, index, view, synonym(동의어), sequence)
- DML(insert, update, delete, select) : 테이블 안의 값을 조작!
1) select 컬럼명... from 테이블명;
특정 컬럼명을 모를 경우 *을 사용, select *... from 테이블명;
- DCL(grant, revoke)
- TCL(commint, rollback,savepoint)
savepoint : rollback하는 위치를 설정
commint, rollback을 어느 시점에 할 것이냐가 중요하다
원자성(ALL or Null) : 다 되던지, 다 안되던지
- SQL에서는 대소문자 모두 사용가능하다.
[주석 처리]
▶ 한 줄 주석 처리: --
▶ 여러 줄의 주석 처리 : /**/
hr계정에 기본으로 제공되는 7가지
: COUNTRIES, DEPARTMENTS, EMPLOYEES, JOB_HISTORY, JOBS, LOCATIONS, REGIONS
[region]
[select 조회명령문]
오라클 실행: 초록색 버튼 or Ctrl + Enter
[locations]
Location_ID = Primary Key(PK)
Country_ID = Foreign Key(FK)
[countries]
컬럼명을 보고 부모테이블이 어느 것인지 알 수 있어야 한다.
[departments]
null은 정보가 없다.
Primary Key는 항상 NN(Not Null) + Unique 해야한다.
Foreign Key는 NN도 허용가능
PK : Not Null, Unique
FK : Null, Duplicate
▶ 오라클의 한 줄 주석 처리 : --
[employees]
▶ 데이터 타입의 종류
- char(크기) : 고정길이 문자열
ex) char(10) : 'abc' -> 'abc'
- varchar2(크기byte) : 가변길이 문자열 VARiable
ex) VARCHAR2(20) : 'abc'의 데이터를 입력하면 17자리의 Byte가 남는 것, 숫자 20이 의미하는 것은 최대로 들어갈 수 있는 길이이며, 그 숫자에 따라 입력되어질 수 있는 데이터가 달라진다.
- number(3) : 정수 3자리 999까지 허용한다. 1000는 불가능, 자리수의 크기를 지정
- number(3, 2) : 소수점 상위 자리는 3자리까지, 소수점 하위 자리는 2자리까지 999.99
- number : 자바에서의 Integer
- date '1919/01/01' 1919년 1월 1일, sysdate(시스템에 있는 날짜를 그대로 사용하겠다)
- timestamp (많이 사용하지 않는다.)
JOB_ID는 employees 테이블의 Foreign Key
[jobs]
[employees table]
( , 2): 소수점 이하 2자리까지 표시
이름은 VARCHAR2(바차2 : 문자열 20byte를 저장)
데이터타입으로 boolean이 들어갈 수 없어 VARCHAR와 CHAR
[desc (sqlplus 명령)] : 해당 테이블 설명
: desc 테이블명
[select 조회문 만들어 보기]
[중복된 데이터를 제거하고 싶다면 DISINCT]
SELECT DISTINCT 컬럼명 FROM 테이블명
[부서명을 내림차순으로 정렬]
[사번, 이름, 부서번호, 급여 직급]
[특정 칼럼으로 내림차순 or 오름차순 정렬할 때]
SELECT 컬럼명 FROM 테이블명
ORDER BY 해당 컬럼명 DESC/ ASC
내림차순을 뜻하는 DESC이 없으면 오름차순(ASC)을 뜻한다.
[조건을 주어서 조회하고 싶을 때(WHERE 조건식)]
- 조건식에는 비교연산자를 사용할 수 있다.
- 비교연산자 : =, !=, >, <, >=, <=
ORDER BY는 가장 하단에 있다.
SELECT 컬럼명 FROM 테이블명
WHERE 조건식
ORDER BY 컬럼명 DESC/ASC;
[조건식 : 급여가 10000이상인 사람의 이름, 급여, 부서]
[조건식 : 급여가 1000이상인 사람의 이름, 급여, 부서번호 급여별로 내림차순 정렬]
[조건식 : 100번 부서에 소속된 사람들의 이름, 급여를 이름순으로 오름차순 정렬하여 조회]
WHERE DEPARTMENT_ID = 100
ORDER BY FIRST_NAME (ASC);
[조건식: 조건식 : 100번 부서에 소속된 사람들의 이름, 입사일, 급여를 이름순으로 오름차순 정렬하여 조회]
[조건식: 전체 직원들을 대상으로 이름, 입사일, 급여]
[HIRE_DATE를 가지고 날짜 타입의 리터럴을 어떻게 표시하는지]
▶ 값(Literal)의 표시
문자열 : ' '(자바처럼 " "는 리터럴로 사용되지 않는다.)
숫자: 24, 42.195
날짜: '01/01/09'
▶ 데이터 타입의 종류
- char(크기) : 고정길이 문자열
ex) char(10) : 'abc' -> 'abc'
- varchar2(크기byte) : 가변길이 문자열 VARiable
ex) VARCHAR2(20) : 'abc' 17자리의 Byte가 남는 것, 20는 최대로 들어갈 수 있는 길이
- number(3) : 정수 3자리 999까지 허용한다. 1000는 불가능, 자리수의 크기를 지정
- number(3, 2) : 소수점 상위 자리는 3자리까지, 소수점 하위 자리는 2자리까지 999.99
- number : 자바에서의 Integer
- date '1919/01/01' 1919년 1월 1일, sysdate(시스템에 있는 날짜를 그대로 사용하겠다)
- timestamp (많이 사용하지 않는다.)
[sysdate][systimestamp]
select sysdate from dual;
sysdate에 해당하는 테이블이 존재하지 않는다.
가상의 테이블 DUAL을 사용하여라!
select sysdate, systimestamp from dual;
systimestamp 시간까지 나타냄!
as 키워드: 별칭
as + 별칭
"별칭"을 사용하는 경우는 하나의 단어라는 것을 알려주는 용도 혹은 특수문자가 들어갈 경우이다.
[조건식: 조건문을 날짜를 기준으로 하고 싶을 때]
다이아나가 입사하기 전, 들어온 사원
[조건식: 입사일이 '07/02/07' 이후에 입사한 사람을 날짜별로 오름차순 조회]
이것도 다시 해보기
정렬을 두 가지 기준으로 [조건식: 이름, 입사일, 급여를 조회, 부서번호별 오름차순, 이름순 오름차순]
부서가 같은 경우 이름순으로
[조건식: 이름, 입사일, 급여, 커미션 정보 조회]
[조건식: 커미션 정보와 값이 NULL이 아닌 데이터를 조건으로 사용할 때]
where commission_pct is not null;
[조건식: 커미션 안받는 사람 = COMMISSION_PCT IS NULL;]
[조건식: 매니저가 없는 사람의 이름, 성씨, 직급을 조회]
[DUAL : 가상의 테이블]
: DUAL 테이블은 오라클의 최고 권한 관리자인 SYS 소유의 테이블로 SCOTT 계정도 사용할 수 있는 더미 테이블이다. 임시 연산이나 함수의 결과 값 확인 용도로 사용되고, 특정 연산 또는 단일 결과만을 확인할 때 사용한다.
SELECT '당신의 이름은 'Willam입니다.' FROM DUAL;
'당신의 이름은 Willam입니다.' FIRST_NAME 안에 들어 있음
SQL에서 문자열은 ' '로 나타낸다. " " 아니니까 주의 바람!
값으로 쓸 때는 ' '
AS를 사용할 때는 "특수문자 or 하나의 단어"임을 알리기 위해
★[문자열 결합 연산자 : || ]★
SELECT '당신의 이름은 ' || FIRST_NAME || '입니다. ' AS "이름"
FROM EMPLOYEES;
'개발자로 가는 길(국비지원과정) > 2. Oracle' 카테고리의 다른 글
9주차 질문 (0) | 2021.05.23 |
---|---|
[210521금] 오라클 SQL 복습 겸 연습문제, 오라클 함수(문자열, 날짜) (0) | 2021.05.21 |
[210520목] 관계형성(foreign key), 시퀀스 생성, on delete cascade (0) | 2021.05.20 |
[210518화] 오라클 조회 명령문 SELECT 복습, 테이블 생성(create) 및 데이터 삽입(insert into.. values) (0) | 2021.05.18 |
[210514금] 오라클 설치, 데이터베이스 제약조건 6가지, DDL, DML, DCL, 데이터 이상현상 (0) | 2021.05.14 |