[sql] 계층형 쿼리(Hierarchical Query)
·
SQL
계층형 쿼리(Hierarchical Query)는 데이터베이스에서 부모-자식 관계를 가진 데이터를 조회할 때 사용하는 쿼리입니다. 주로 조직도, 파일 시스템, 제품 카테고리 등과 같이 계층 구조로 구성된 데이터를 다룰 때 유용하다. 🐲 주요 개념 부모-자식 관계: 각 데이터 항목은 부모와 자식 항목을 가질 수 있으며, 이를 통해 트리 구조를 형성한다. 루트 노드: 계층 구조의 최상위 노드를 의미한다. Leaf 노드: 자식이 없는 노드를 의미한다. 🐲주요 예약어START WITH: 계층 구조의 루트 노드를 지정한다.CONNECT BY: 계층형 쿼리를 작성해 부모와 자식 간의 관계를 정의합니다. PRIOR 키워드를 사용한다.PRIOR: 이전 단계의 값을 참조하는 데 사용된다.LEVEL: 긱 노드의 깊이를..
[SQL] 집합 연산자(UNION, UNION ALL, INTERSECT, MINUS),INLINE VIEW
·
SQL
집합연산자두 개 이상의 SELECT 쿼리의 결과를 결합하여 하나의 결과 집합을 생성하는 데 사용된다. 주로 다음과 같은 연산자가 있다. 줄단위의 결합을 하며 두 테이블의 칼럼수와 타입이 동일해야 한다.UNION두 개 이상의 SELECT 쿼리 결과를 결합하여 중복된 행을 제거한 결과를 반환한다. =>합집합 EX)두 부서 모두 출력하는데 A대학 나온사람들을 중복시 한 번만 출력함.UNION ALL두 개 이상의 SELECT 쿼리 결과를 결합하되, 중복된 행도 포함하여 반환한다. =>합집합+교집합EX)두 부서 모두출력하는데 A대학 나온사람들을 두 번 출력하게 됨+INTERSECT두 개의 SELECT 쿼리에서 공통으로 나타나는 행만 반환한다. =>교집합EX)두 부서에서 A 대학을 나온사람들을 출력함.MINUS첫 ..
[sql]JOIN, ANSI JOIN
·
SQL
SQL의 JOIN은 두 개 이상의 테이블을 결합하여 관련된 데이터를 조회하는 방법이다. JOIN을 사용하면 서로 다른 테이블에 저장된 정보를 연결하여 보다 유용한 데이터를 생성할 수 있다.  내부조인(INNER JOIN)SELECT EMPLOYEE_ID 직원번호, DEPARTMENT_NAME 부서명FROM EMPLOYEES, DEPARTMENTS ;비교 조건이 없어서 모든 직원을 모든 부서와 연결하여 출력한다.SELECT EMPLOYEE_ID 직원번호, DEPARTMENT_NAME 부서명 FROM EMPLOYEES, DEPARTMENTSWHERE DEPARTMENT_ID=60; ⚠️ORA-00918: 열의 정의가 애매합니다 00918. 00000 -  "column ambiguou..
[sql] 그룹 쿼리 (group query)와 서브쿼리(sub query)
·
SQL
그룹쿼리(GROUP QUERY)그룹 쿼리는 데이터를 특정 컬럼을 기준으로 그룹화하고, 각 그룹에 대한 집계 함수를 사용하여 요약 정보를 생성한다.집계함수집계함수란 대상 데이터를 특정 그룹으로 묶은 다음 이 그룹에 대해 총합, 평균, 최댓값, 최솟값 등을 구하는 함수를 말한다.① COUNT (expr)📍COUNT는 쿼리 결과 건수, 즉 전체 행의 개수를 반환하는 집계 함수다. 테이블 전체는 물론 WHERE 조건으로 걸러진 행의 개수를 반환한다. COUNT(*)=107 📍COUNT 함수는 매개변수로 들어오는 expr이 NULL이 아닌 건에 대해서만 행의 개수를 반환한다.  COUNT(DEPARTMENT_ID)=>106 COUNT(DISTINCT DEPARTMENT_ID)=>11 DISTINT DEPART..
[SQL] 함수
·
SQL
SELECT 함수FROM DUAL; SQL의 함수 : 데이터베이스에서 데이터를 처리하고 조작하는 데 사용되는 내장 또는 사용자 정의 함수.SQL 함수는 특정 작업을 수행하고 결과를 반환하는 독립적인 블록으로, 주로 다음과 같은 종류로 나눌 수 있다.이때, 한 개 결과가 출력되는 가상테이블 필요하다 =>(DUAL)(DUAL 은 출력을 위한 한칸의 공간 숫자함수① ABS(n)📍ABS 함수는 매개변수로 숫자를 받아 그 절대값을 반환하는 함수  ABS(10) = ABS(-10) = ABS(-10.123)=>10② CEIL(n)과 FLOOR(n)📍CEIL 함수는 매개변수 n 이상이면서 가장 작은 정수를 반환CEIL(10.123) => 11CEIL(-10.123) => -10📍FLOOR 함수는 CEIL 함수와..
[java]접근제어자
·
JAVA
Java 접근 제어자에 대한 이해Java는 객체 지향 프로그래밍 언어로, 코드의 캡슐화와 보안을 강화하기 위해 접근 제어자를 제공합니다. 접근 제어자는 클래스, 메서드, 변수 등의 접근 수준을 설정하여, 코드의 구조와 가독성을 높이는 데 기여합니다. 이번 포스트에서는 Java의 네 가지 접근 제어자에 대해 자세히 알아보겠습니다.1. public설명: public 접근 제어자가 붙은 클래스, 메서드, 변수는 모든 클래스에서 접근할 수 있습니다. 제한이 없기 때문에, 어떤 패키지에서도 사용 가능합니다. 사용 예: API를 제공하는 클래스나, 외부에서 접근이 필요한 메서드에 적합합니다.public class Example { public void display() { System.out.pr..
[java]InetAddress(컴퓨터 주소 찾기), InetSocketAddress(단방향 채팅프로그램)=>TCP통신
·
JAVA
20240826수업InetAddressIP 주소를 다루기 위한 클래스. 주로 네트워크 프로그래밍에서 사용 명령 프롬프트 앱을 열어서 ipconfig/all을 입력하면 무선 LAN 어댑터 Wi-Fi에서 mac주소(물리적 주소)와 ip내부주소(IPv4 주소,본인 컴퓨터)를 알 수 있다. 인터넷 주소:192.168.0.9local : 나remote:상대방host:컴퓨터server:서버-자료를 제공하는 컴client:클라이언트-자료를 요청하는 컴import java.net.InetAddress; import java.net.UnknownHostException;public class InetAddressTest { public static void main(String[] args) { try { //wi..
[java]Thread(스레드)
·
JAVA
20240823수업스레드(Thread)프로그램 내에서 동시에 실행될 수 있는 실행단위  프로그램의 실행 흐름을 나타내며, 여러 스레드를 통해 동시에 여러 작업을 수행할 수 있음(멀티스레드).  이를 통해 CPU의 자원을 효율적으로 사용할 수 있으며, 사용자 경험을 개선할 수 있음.for (int i = 0; i 5; i++) { System.out.println("탕"); Thread.sleep(500); //0.5초만큼 기다렸다가 실행 | 1000: 1s, 1000>1000ms }//글자만  Toolkit toolkit=Toolkit.getDefaultToolkit(); for (int i = 0; i 5; i++) { toolkit.beep(); Thread.sleep(500); }//소리만for문만..
[java] 외부파일을 읽어서 출력하기(FileReader,BufferedReader,FileWriter,BufferedWriter)
·
JAVA
20240823수업data2.txt 파일을 읽어서 화면에 출력FileReader기본적인 파일 읽기: FileReader는 문자 기반의 파일을 읽기 위한 클래스. 파일의 내용을 문자 단위로 읽어옴.사용 용도: 파일을 열고, 문자 데이터를 읽는 데 사용됨. 주로 간단한 파일 읽기 작업에 적합함.성능: 직접적으로 파일에서 문자를 읽기 때문에, 한 번에 한 문자씩 읽는 경우에는 성능이 좋지 않을 수 있음.BufferedReader버퍼링된 읽기: BufferedReader는 입력 스트림에서 데이터를 읽을 때 성능을 개선하기 위한 버퍼를 사용함. 내부적으로 일정 크기의 버퍼를 두고, 이 버퍼에 데이터를 먼저 읽어온 후 사용자가 요청할 때마다 버퍼에서 데이터를 제공함.사용 용도: 대량의 데이터나 긴 파일을 읽을 때 ..
[java]Collection Framework
·
JAVA
20240822수업Collection Framework:데이터를 효율적으로 저장하고 그룹화 및 처리할 있는 인터페이스와 클래스 모음Collection:객체를 수집해 저장하는 것Set과 List는 인터페이스이며 자바에서 인터페이스는 구현 클래스 없이 직접 인스턴스화할 수 없다.인터페이스를 직접 사용할 수 없는 이유는 객체의 생성 방식이 인터페이스와 클래스의 차이 때문List계열순서를 유지하고 저장중복된 주소와 값 저장 가능구현 클래스:ArrayList, Vecctor, LinkedListString[]names=new String [5];  names[0]="가나"; names[1]="나다"; names[2]="다라"; names[3]="라나"; names[4]="사나";  for (int i = 0; i..