전체 글 72

데이터조작어 DML - UPDATE

테이블에 저장되어 있는 데이터 내용을 수정할 때 UPDATE문을 사용한다. UPDATE문의 기본사용법 UPDATE 변경할 테이블 SET 변경할 열1 = 데이터, 변경할 열2 = 데이터, ... , 변경할 열 n = 데이터 WHERE 데이터를 변경할 대상행을 선별하기 위한 조건 --WHERE절을 생략할 경우 지정된 모든 열의 데이터가 변경된다. 데이터 전체수정하기 ▶ 위 처럼 테이블에 저장되어 있는 모든 데이터의 특정 열 데이터를 일괄적으로 변경하는 경우는 흔치 않다. 대부분의 경우에 몇몇 행만 선정하여 데이터를 수정하는 방식을 사용한다. 데이터 일부분만 수정하기 서브쿼리를 사용하여 데이터 수정하기 여러 열을 한번에 수정하는 경우 열 하나하나를 수정하는 경우 열을 따로 나눠서 서브쿼리를 사용할 WHERE절..

데이터베이스 2022.04.18

데이터조작어 DML - INSERT

데이터의 추가, 수정, 삭제하는 데이터 조작어(Date Manipulation Language) 테이블복사 DEPT 테이블을 복사한 DEPT_TEMP 테이블을 만든다. ※ 테이블을 복사하는데 데이터는 복사하고 싶지않을 때는 WHERE 절의 조건에 11을 넣어주면 결과값이 항상 false가 되어 행이 만들어 지지않는다. 테이블 열 구조만 같은 테이블을 만들어야 할 경우에 유용하게 쓰인다. 테이블 삭제 테이블을 잘못 만들었거나 지워야 할 경우에 사용 DROP TABLE 테이블 이름; 테이블에 데이터 추가하기 INSERT INTO 테이블이름 (열1, 열2,..., 열n) VALUES (열1에 들어갈 데이터, 열2에 들어갈 데이터, ..., 열n에 들어갈 데이터); INSERT INTO DEPT_TEMP (DE..

데이터베이스 2022.04.18

서브쿼리 subquery

서브쿼리는 SQL문을 실행하는 데 필요한 데이터를 추가로 조회하기 위해 SQL 내부에서 사용하는 SELECT문을 의미한다. 서브쿼리의 결과값을 사용하여 기능을 수행하는 영역은 메인 쿼리(main query)라고 부른다. ※ SELECT문에서 WHERE절의 조건식에 서브쿼리를 사용한다면 다음과 같다. ex) 서브쿼리로 EMP 테이블에서 JONES보다 급여가 높은 사원을 조회하기 특수한 몇몇 경우를 제외한 대부분의 서브쿼리에서는 ORDER BY절을 사용할 수 없다. 서브쿼리의 SELECT절에 명시한 열은 메인쿼리의 비교대상과 같은 자료형과 같은 개수로 지정해야한다. ① 단일행 서브쿼리 ▶ 실행 결과가 단 하나의 행으로 나오는 서브쿼리를 뜻한다. 출력되는 결과가 하나이므로 메인쿼리와 서브쿼리 결과는 다음과 같..

데이터베이스 2022.04.17

인스턴스 멤버와 정적 멤버

▶ 객체마다 필드값이 달라야 한다면 해당필드는 객체마다 가지고 있는것이 맞다. 하지만 객체마다 사용하는 필드값이 같은 경우 객체마다 가지고 있게되면 메모리 낭비이며, 필드 값을 같게 맞추는 추가적인 작업이 필요할 수도 있다. 그래서 자바에서는 필드를 클래스 한 곳 에 위치시키고 객체들이 공유할 수 있도록하는 정적멤버와 필드를 객체마다 가지고 있는 인스턴스 멤버를 구분해서 선언할 수 있도록 하고 있다. ①인스턴스멤버와 this 객체를 생성한 후 사용 할 수 있는 필드와 메소드. (객체에 소속된 멤버이기 때문에 객체없이는 사용 할 수 없다.) 인스턴스 멤버 선언 Car객체 (myCar) Car객체 (yourCar) gas : 10 gas :20 위 코드를 실행하면 인스턴스 필드(gas)는 객체 마다 따로 저..

자바의 정석 2022.04.15

오늘의 에러 22/04/15

ORA-12899 : 열에 대한 값이 너무 큼(실제 5, 최대값: 4) 4글자 제한인 RCRECODE 에 loginId(carol)를 대입하려고하니 글자 수가 넘는다는 에러가 발샐했다. 자바에서 SQL문을 이용해 값을 대입 할때는 테이블의 컬럼순서와 같게 pstmt.set 해줘야 한다. SELECT문 전부 같은 값 출력 됨 영화의 추천수가 값이 전부 1 로 출력되어서 한참 헤맸다. while문을 사용 안해서 값이 제대로 입력되지 않고 있었다. while문을 작성해서 제대로 출력완료.

코딩 2022.04.15

예매율구하기

이번 주는 학원에서 영화사이트 관련 기능들 구현하고 있는데 오늘은 예매하기 만드는데 3~4시간 걸리고 예매율구하는는데 3시간은 헤맨듯하다. 작업한 시간의 반을 예매율 구하는데 썼다. 이게 뭐라고.. 막상 해놓고 보면 그렇게 어려운 게 아닌데 어떻게 해야 할지 감을 못 잡아서 고민과 수정을 반복하느라 많은 시간을 썼다. 선생님한테 물어보고 설명을 들었는데도 금방 이해 못 하고 헤매다가 완성했다. 선생님은 SQL문으로 구할 수도 있는데 그것보다는 셀렉트로 영화별 예매 횟수만 구해서 가져오고 자바에서 작업하는 것이 더 나을 거라고 하셔서 이렇게 연습해봤다. 근데 이게 제대로 한 건지 모르겠다. ↓ 혼자 해본 것 (22/04/14) 더보기 (예매율 구하려는 이것저것 수정하면서 나누기를 아무리 해봐도 0 만나와 ..

코딩 2022.04.13

메소드 Method

메소드는 객체의 동작에 해당하는 중괄호 { } 블록을 말하며, 메소드를 호출하면 블록안의 모든 코드들이 일괄적으로 실행된다. 메소드 선언방법 선언부와 실행블록으로 구성된다. 메소드 선언부를 메소드 시그니처(signature) 라고한다. 메소드 선언부는 리턴타입, 메소드 이름, 매개 변수 선언 부분을 말한다. 리턴타입 메소드이름 (매개변수선언, .....) { 실행할 코드를 작성하는 곳 //메소드 실행 블록 } 리턴타입 메소드가 리턴하는 결과의 타입을 표시 메소드를 실행한 후 나오는 결과 값의 타입을 말한다. 리턴갑이 있으면 리턴타입이 선언부에 명시되어야 한다. 리턴값이 없는 메소드는 리턴타입에 void로 기술하며 , 리턴값이 있는 메소드는 리턴값의 타입을 기술한다. 결과 값이 int값이면 int , St..

자바의 정석 2022.04.12

생성자 Constructor

※ 생성자는 메소드와 비슷한 모양을 가지고 있으나, 리턴타입이 없고 클래스 이름과 동일하다. ▶ 생성자 선언 방법 클래스 ( 매개변수선언, -----) { //객체의 초기화코드} ▶ 기본생성자 모든 클래스에는 생성자가 반드시 존재하며, 생성자를 하나이상 가질 수 있다. 생성자를 선언하지 않아도 컴파일러가 기본생성자를 바이트코드에 자동으로 추가하기때문에 new 연산자로 생성자를 호출해서 객체를 생산할 수 있다. public Class Members{ public Members(){ }

자바의 정석 2022.04.12

필드 Field

CV(class variable 클래스 변수(static 변수, 공유변수) 클래스 영역에 선언(클래스가 메모리에 올라갈 때 생성 = 객체를 만들 때) 객체없이도 사용가능하며 공유 변수(shared varible) 라고도 한다. 공통으로 가져야할 속성에 사용된다. 해당 클래스의 모든 인스턴스가 공유해야 하는 값을 유지하기 위해 사용된다. static 키워드를 가지는 변수 ex) 카드의 폭과 높이 CV는 메소드호출할 때 클래스이름을 풀로 다 적어준다. ex) Card c = new Card() c.width = 200;

자바의 정석 2022.04.11