새소식

Daily Record

5월 11일 학습 내용 정리

 

 

 

학원 - Oracle

 

 

1. Database(DB)

 

 - DBMS : Database Management System(데이터 관리 시스템)

 

 - 효율적인 데이터 관리를 위한 조건

    * 데이터를 통합하여 관리

    * 일관된 방법으로 관리

    * 데이터 누락 및 중복 제거

    * 여러 사용자(응용 프로그램 포함)가 공동으로 실시간 사용 가능

 

 - 여러 응용 프로그램이 사용할 데이터를 한곳에서 관리하기 위해 데이터베이스를 활용함

 

 - 보통 DB와 DBMS를 따로 구별하지 않고 DB 또는 데이터베이스로 칭함

 

 - 관계형 데이터베이스(Relational Database)

    * 관계형 데이터 모델 개념을 바탕으로 데이터를 저장 및 관리하는 데이터베이스

    * 1980년대 후반부터 가장 많이 사용되고 있는 데이터베이스의 한 종류

    * MS-SQL, MySQL, MariaDB, Oracle 등 다양한 데이터베이스 관리 시스템이 있음

 

 - SQL : Structured Query Language

    * 관계형 데이터베이스(RDBMS)에서 데이터를 다루고 관리하는 데 사용하는 데이터베이스 질의 언어

    * RDBMS에게 데이터에 관해 물어보고 결과를 얻음

    * SQL을 사용하여 데이터베이스에서 여러 데이터 관련 작업을 수행할 수 있음

 

 

 

2. Oracle - 데이터 입력 후 조회 실습

 

 - SQL에서 주석은 -- 뒤에 작성(단축키 : ctrl + /)

 

 - select ~ from (~where)문으로 원하는 데이터를 필터링하여 조회 가능

    * select : column 추리기

    * from : 데이터가 있는 곳(테이블)

    * where : row 추리기. 특정 조건의 데이터만 조회할 때 선택적으로 사용

 

 - distinct() : 중복 제거 함수

-- 우리 회사에 어떤 부서가 있을까?
-- 부서 table: dept / 부서명 column: dname
select deptno, dname
from dept; -- select에서 선택된 모든 데이터 조회
-- 사원들이 근무하는 부서 조회
select distinct (deptno) --중복되는 부서 제외하여 조회 
from emp;

 

 - 연결 연산자 : ||

select ename || '의 직급은 ' || job || '입니다.'
from emp;

 

 - 동등 연산자 : =

 - 문자열은 '문자열'의 형태로 작성(홑따옴표 사용)

select ename, sal
from emp
where ename = '김사랑' or ename = '조인성';

 

 - as(alis)

    * 별칭. 다른 이름으로 데이터명을 사용할 수 있음.

    * 설정을 따로 하지 않으면 select에서 사용한 명칭으로 데이터가 조회됨

    * as를 생략하고 사용 가능하며 공백을 포함하려면 "" 안에 작성

 - nvl(null value) : null 처리 함수. 값이 null인 데이터인 경우 어떻게 처리할지 설정

     Javascript의 undefined 개념으로 이해하는 것이 좋음

select ename, sal as 월급, sal + 100 인상급여, sal * 12 + nvl(comm, 0) "연 봉", comm
from emp;

 

 - between A and B : A와 B 사이(A와 B를 포함)

 - not : 부정. Java에서 !의 의미

-- 급여가 400 ~ 500인 사원
select ename, sal
from emp
where sal between 400 and 500;
-- where 400 <= sal and sal <= 500;와 같은 의미

-- 급여가 400 ~ 500이 아닌 사원
select ename, sal
from emp
where sal not between 400 and 500;
-- where sal < 400 or sal > 500;
-- where not (400 <= sal and sal <= 500);

 

 -  in: or의 조건이 여러개 있을 때 사용 가능

-- 커미션이 80이거나 100이거나 200인 사원 조회
select ename, comm
from emp
where comm in (80, 100, 200);
--where comm = 80 or comm = 100 or comm = 200;

 

 

3. 간단한 문제 풀기

 

-- Q1. 급여가 300 이하인 사원의 사원번호, 사원명, 급여 조회
select ename, deptno, sal
from emp
where sal <= 300;

-- Q2. 이름이 오지호인 사원의 사원번호, 사원명, 급여 조회
select ename, deptno, sal
from emp
where ename = '오지호';

-- Q3. 급여가 250이거나 300이거나 500인 사원들의 사원번호, 사원명, 급여 조회
select ename, deptno, sal
from emp
where sal in (250, 300, 500);

-- Q4. 급여가 250도, 300도, 500도 아닌 사원의 사원번호, 사원명, 급여 조회
select ename, deptno, sal
from emp
where sal not in (250, 300, 500);

 

 

 

개인 학습 - Thread

 

 

1. Thread

 

 - 스레드의 우선순위

    * setPriority(int newPriority) : 스레드의 우선순위를 지정한 값으로 변경

    * getPriority() : 스레드의 우선순위를 반환

    * 우선순위의 값에 따라 스레드가 얻는 실행시간이 달라짐(달라질 것이라 기대)

    * 시각적인 부분이나 사용자에게 빠르게 반응해야 하는 작업을 하는 스레드의 우선순위는

       다른 작업을 수행하는 스레드에 비해 높아야 함

        ex)  메신저 우선순위: 채팅 내용 전송 > 파일 다운로드 처리

 

 - 데몬 스레드

    * 다른 일반 스레드의 작업을 돕는 보조적인 역할을 수행하는 스레드

       ex) 가비지 컬렉터, 워드프로세서 자동저장 등

    * 일반 스레드가 모두 종료되면 데몬 스레드는 강제 자동 종료

    * 일반 스레드의 작성 방법, 실행방법과 동일

    * 스레드 생성 후 실행 전(start() 호출 전)에 setDaemon(true)을 호출하여 사용

    * 데몬 스레드가 생성한 스레드는 자동으로 데몬 스레드가 됨

    * isDaemon() : 데몬 스레드인지 확인. 데몬 스레드면 true 반환

 

 - 스레드의 상태

    * NEW : 스레드는 생성되었으나 start()가 호출되지 않음

    * RUNNABLE : 실행 중 또는 실행 가능 상태

    * BLOCKED : 동기화블럭에 의해 일시정지됨

    * WAITING, TIMED_WAITING : 스레드 작업이 종료되지는 않았으나 실행 가능하지 않은 일시정지 상태

        TIMED_WAITING은 일시정지 시간이 지정된 경우

    * TERMINATED : 스레드 작업 종료 상태

'Daily Record' 카테고리의 다른 글

5월 3주차 학습 내용 정리  (0) 2023.05.20
5월 12일 학습 내용 정리  (0) 2023.05.13
5월 10일 학습 내용 정리  (0) 2023.05.10
5월 9일 학습 내용 정리  (0) 2023.05.09
5월 8일 학습 내용 정리  (0) 2023.05.08
Contents

Copied URL!

Liked this Posting!