전체 글에 해당하는 글 292

  1. DDL 예제 2022.06.28

    판매 전표, 제품, 전표 상세에 대한 총 3개의 테이블을 만들어 본다. 개념적 설계 (어떤 값들을 저장해야 하는가?) → 논리적 설계 (추출했을 때 어떤 데이터형으로 받아올 것인가?) → 물리적 설계 (실제 메모리 크기는 어떻게 지정할 것인가?) CREATE, CONSTRAINT 기본적인 구조를 생성한다. --판매전표 / 전표번호(PK), 판매일자, 고객명, 총액 CREATE TABLE receipt( id varchar2(12), --20220628-001 이런느낌~ rdate DATE, client_name varchar2(34), total_price NUMBER ) --제품 / 제품번호(PK), 제품명, 제품단가 CREATE TABLE product( id varchar2(12), name var..


  2. 서브쿼리, ROWNUM, 인라인뷰, DDL 2022.06.27

    https://gent.tistory.com/287 [Oracle] 오라클 ANY, SOME, ALL 연산자 사용법 완벽 정리 오라클의 ANY, SOME, ALL 연산자는 실무에서 자주 사용은 안하지만, 사용법이 궁금해서 찾아보면 사용법이 생각보다 어렵고 어떤 상황의 쿼리문에서 사용해야 할지 머릿속에 그려지지 않는다. SOME gent.tistory.com 스칼라 서브 쿼리 SELECT *, (SELECT deptno FROM dept WHERE dept.NO = emp.deptno) FROM emp; ROWNUM 행에 번호를 매겨 준다. 데이터가 INSERT된 순서대로 번호가 정해 진다. LIMIT처럼 사용할 순 있으나 행 번호를 먼저 정한 뒤 정렬을 진행하므로 다르다. 정렬을 진행한 SELECT문을 ..


  3. 미니 네트워크 프로젝트 (2) : 기능 구현하기 2022.06.24

    Function과 in, out Function 클래스를 만들어서 이 프로그램의 내부 프로토콜을 만들어 준다. 클라이언트가 어떤 요청을 보낼 때, 이 클래스에 정의된 프로토콜에 의해 응답을 할 것이다~ 라는 약속! Function.java package doodoo.common; public class Function { public static final int LOGIN=100; //로그인"된" 사람 public static final int MYLOG=110; //로그인"하는" 사람 처리 public static final int CHAT=200;//채팅 public static final int END=900;//남아 있는 사람 처리 public static final int MYEND=910;/..


  4. 미니 네트워크 프로젝트 (1) : 화면 구성하기 2022.06.23

    Swing 윈도우를 이용하여 간단한 프로젝트를 진행했다. 위 이미지처럼 왼쪽에는 메뉴 바, 중앙(빨간 영역)에는 주요 콘텐츠를 띄우고, 우측(초록색 영역)에는 채팅 화면을 띄우려 한다. 이 때, 주요 콘텐츠의 내용을 다양하게 구성하기 위해 화면 레이아웃을 여러 개 짜고, 왼쪽의 메뉴 바 버튼을 클릭할 때마다 각 화면을 띄워주도록 하려 한다. ControllerPanel 이라는 클래스를 만들어 JPanel을 상속받는다. CardLayout 클래스는 카드 형태로 레이아웃을 모아놓고 원하는 것을 꺼내 사용할 수 있도록 도와준다. import java.awt.*; import javax.swing.*; public class ControllerPanel extends JPanel{ public CardLayou..


  5. Oracle JOIN, ANSI JOIN 2022.06.22

    EQUI_JOIN : 연산자 =을 써서 조인 NON_EQUI_JOIN : AND, OR, BETWEEN 등을 포함하여 조인 --EQUI_JOIN SELECT empno, ename, job, sal, dname, loc, grade FROM emp e JOIN dept d ON e.deptno = d.deptno --NON_EQUI_JOIN SELECT empno, ename, job, sal, dname, loc, grade FROM emp e JOIN salgrade s ON sal BETWEEN losal AND hisal Oracle JOIN : 오라클에서만 사용하는 조인 (MySQL도 가능) ANSI JOIN : 표준화된 조인 ANSI JOIN에 대한 내용은 여기 --Oracle INNER JO..


  6. Oracle 내장 함수 2022.06.21

    LENGTH : 문자의 길이를 반환한다. SELECT LENGTH('ABC'), LENGTH('코딩공부블로그') --각각 3, 7 출력 FROM DUAL; --테이블 없이 계산 출력/함수 확인용 연습테이블(오라클) UPPER : 대문자로 변환 ↔ LOWER : 소문자로 변환 INITCAP : 맨 앞글자만 대문자로 변환 SELECT UPPER('abC'), --ABC LOWER('ABc'), --abc INITCAP('something good can work') --Something Good Can Work FROM DUAL; *REPLACE(문자열, 바꿀 문자, 바뀔 문자) :문자열의 특정 문자를 다른 문자로 변경 *SUBSTR(문자열, 시작위치, 자를 문자 수) : 문자열을 원하는 위치에서 추출 시작..


  7. NVL, LIKE, ORDER BY + JDBC예제 2022.06.20

    *MySQL과 다른 부분을 중심으로 정리 NVL(Null VaLue) 오라클에서 모든 연산자는 인자 중 null 값이 있는 경우 연산 결과로 null을 반환한다. → null값 처리가 필요하다. → postgreSQL에서는 coalesce()를 사용했지만, 오라클에서는 NVL을 사용한다. NVL(컬럼명, 대체할 값) 으로 간단하게 처리 가능하다. 아래 쿼리로 확인~ SELECT salary , comm , salary+comm , NVL(comm, 0) , salary+(NVL(comm,0)) FROM employee; LIKE, REGEXP_LIKE 문자열의 패턴을 비교할 때 사용한다. postgreSQL이나 MySQL과 거의 비슷하게 사용된다. 관련글 (참고로 오라클에서 escape는 이렇게 수행함)..


  8. 데이터베이스(Database) 2022.06.17

    데이터 : 관찰의 결과로 나타난 정량적/정성적인 실제 값 정보 : 데이터에 의미를 부여한 것 데이터를 정보화하는 작업이 중요하고, 이 작업을 쉽게 하기 위해 데이터베이스가 활용된다. → 데이터베이스 = 필요한 정보를 얻기 위해 논리적으로 연관된 데이터를 모아 구조적으로 통합해 놓은 것 데이터베이스 시스템(DBMS)은 데이터의 검색과 변경 작업을 주로 수행한다. 변경 = 시간에 따라 변하는 데이터 값을 데이터베이스에 반영하기 위해 수행하는 작업(삽입, 삭제, 수정 등) 오라클은 응용 프로그램과 실제 데이터를 연결해 주는 역할. 실제 데이터는 하드디스크에 저장되며, 데이터베이스 시스템을 통해 응용 프로그램이 데이터를 사용할 수 있게 된다. 데이터베이스의 특징 1. 실시간으로 접근이 가능하다. 2. 계속적인 ..


  9. java.net package + 채팅 기능 만들기 2022.06.16

    네트워킹은 두 대 이상의 컴퓨터들을 서로 연결하여 네트워크를 구성하는 것을 의미한다. 이러한 개념은 서로 다른 컴퓨터 간에 데이터를 손쉽게 주고받을 수 있게 하기 위해 시작되었다! 자바의 java.net 패키지를 사용하면 네트워크 어플리케이션의 데이터 통신 부분을 작성할 수 있다. 클라이언트(client) / 서버(server) 클라이언트와 서버라는 단어는 컴퓨터 간의 관계를 "역할"로 구분한다. 서버(server)는 서비스를 제공하는 컴퓨터이고, 클라이언트(client)는 그 서비스를 사용하는 컴퓨터를 의미한다. 서비스는 서버가 클라이언트로부터 요청받은 작업을 처리해서, 그 결과를 제공하는 것을 의미한다. 이 때 서비스는 종류에 따라 파일서버, 메일서버, 어플리케이션 서버 등이 있다. 그리고 서버와 서..


  10. 입출력(I/O) : 직렬화(Serialization) 2022.06.15

    객체를 데이터 스트림으로 만드는 것을 직렬화(serialization)라고 한다. 왜 데이터 스트림으로 만드는가? → 객체에 저장된 데이터를 스트림에 쓰기(write) 위해 연속적인(serial) 데이터로 변환하는 것이다. 반대로 스트림으로부터 데이터를 읽어서 객체를 만드는 것은 역직렬화라고 한다.(deserialization) 객체는 클래스에 정의된 인스턴스변수의 집합이다. 다시말해 클래스변수나 메서드는 포함되지 않고 인스턴스 변수들로만 구성되어 있다. 인스턴스 변수는 인스턴스마다 다른 값을 가질 수 있어야 하고, 별도의 메모리 공간이 필요하다. 하지만 메서드는 변하지 않아 인스턴스마다 같은 내용의 코드(=메서드)를 포함시킬 필요가 없다. 즉, 객체를 저장한다는 것은 객체의 모든 인스턴스 변수의 값을 ..