My footsteps

오라클 SQL / 4 본문

국비수업/수업정리

오라클 SQL / 4

밀김 2023. 4. 25. 09:58
728x90

 

 

 

 

 

 

 

rs.next(); // 레코드를 받아서 

      while(rs.next()) { //rs.next() 는 boolean이다 true면 새로운걸 가져오고 false면 없음 
         String name= rs.getString("NAME");
         if(name.indexOf("최")==0) // '최'
            System.out.println(rs.getString("NAME"));
      }// 이름의 최씨성만 출력

      rs.close(); // 닫을때는 역순으로 닫기
      st.close();
      con.close();

      //System.out.println(con.isClosed());
      System.out.println("작업종료");
      
      //최씨만 출력하기

 

 

 

- 최% : 최씨성만 찾아서 반환 %

 

ResultSet rs1 = st.executeQuery("SELECT * FROM MEMBER WHERE NAME LIKE '최%'");

rs1.next(); // 레코드를 받아서 
      
      while(rs1.next()) {
         System.out.println(rs1.getString("NAME"));
      }

 

 

 

 

 

- 자바가 계산하게 하지 말고 쿼리를 뽑을때 원하는 데이터값을 뽑을수 있게 SQL이 계산하게 하라

 

 

 

 

드라이버 객체를 생성한후, 드라이버가 사용 가능하게 되었다

 

 

 

 

 

 

- 코드가 실행될때 같이 생성되는 애 : 전역변수(자바에서는 static 멤버변수라고함) 로드가 되면 저절로 실행이 됨

 

- 이 전역변수들은 스택이 실행될때 자동으로 같이 올라간다

 

https://wikidocs.net/228

 

07-03 스태틱(static)

이번에는 스태틱(static)에 대해서 알아보자. [TOC] ## static 변수 예를 들어 다음과 같은 HouseLee 클래스가 있다고 하자. *Sample.jav…

wikidocs.net

 

 

 

 

 

- static에서는 매개변수를 포함한 지역변수,전역변수만 사용 가능하다(객체지향이랑 상관없다. 그냥울타리안에 있다고생각하면됨)

 

 

 

 

 

package ex2_instantiation;

public class Exam {
	private static int kor;
	
	public void print() {
		System.out.println("인스턴스 메소드 - kor :"+kor);
	}
	
	public void update() {
		kor++;
	}
	
	public static void print1() {
		System.out.println("스테틱 메소드 - kor :"+kor);
	}
}
-------------------------------------------------------------
<메인>
package ex2_instantiation;

public class Program {

	public static void main(String[] args) {
		Exam exam1 = new Exam();
		Exam exam2 = new Exam();
		
		exam1.print(); //출력값: 0
		exam1.update(); //1
	
		exam2.print(); //출력값: 1
	}

}

 

 

 

	static {
		kor = 5; //전역변수를 기본값0이 아닌값으로 초기화 하는 방법
		System.out.println("전역이지롱");
	}

 

 

- 전역 블럭안에 있는 초기화가 제일 힘이 쎔!!!

 

- Class.forName("ex2_static.Exam") : 이 클래스가 필요해요~~  접근을 위한 객체를 생성하지않고 클래스에 접근하고싶을때 쓰는 방법 > 이 메서드는 클래스 객체를 반환함. 

 

- 그렇다고 해서 클래스라는 울타리가 의미가 없는거냐? 아님. 보호모드가 작동되기 때문에 울타리명으로써의 의미를 가짐

 

 

- static 안에 드라이버 같은걸 넣어두면 로드됨과 동시에 드라이버가 스택에 올라감 굳이 객체생성 해줄필요 없음

 

 

 


 

 

 

< SQL의 연산자 >

 

- SELECT AGE+1 USER_AGE FROM MEMBER; ▶ AGE를 출력하는데 +1해서 출력하고, 그 AGE들의 별칭을 USER_AGE라고 칭해라

 

- 오라클에서 덧셈은 숫자만 연산한다. 절대로 문자를 더할때는 + 를 쓰지 않는다

 

- 문자열 더하기 연산자 || 

SELECT AGE||'A' USER_AGE FROM MEMBER; ▶ 이렇게 하면 AGE에 A문자가 붙여져서 나옴

 

- SELECT NAME||'('||ID||')' USER_NAME FROM MEMBER;   ID값을 NAME옆에 출력하는데 보기 편하기 위해 괄호를 붙여서 출력하는 방법. 괄호를 문자열로 묶고 더하고..

 

 

- 같지 않다를 나타내는 연산자 : !=   ^=   <> (여기서 표준 연산자는 <> / 표준은 아니지만 모든 DBMS가 지원하는 방법 !=)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

SELECT * FROM MEMBER WHERE AGE BETWEEN 11 AND 20; : MEMBER 테이블에서 AGE를 뽑는데, 범위가 11그리고 20 사이의 결과들을 뽑아라

 

 

 

IN을 이용해 복잡한 식을 손쉽게 정리할수 있다

 

 

 

 

- SELECT * FROM MEMBER WHERE ID NOT IN (1004); : 특정값 제외하고 찾아보기 NOT

 

 

 

 

 

 

 

 

< 패턴 연산자 >

 

- LIKE%가 있는데, LIKE는  '비슷함'을 의미함 

SELECT * FROM MEMBER WHERE NAME LIKE '아%';  첫글자가 '아'인 애들만 찾기

SELECT * FROM MEMBER WHERE NAME LIKE '%아%';   '아'를 갖고 있는 모든 애들을 찾기

SELECT NAME FROM MEMBER WHERE NAME  NOT LIKE '아%';    '아'로 시작하지 않는 애들 찾기 

 

- %는 = 대입연산자 절대 쓰면 안되고, LIKE를 써야함

 

SELECT NAME FROM MEMBER WHERE NAME  NOT LIKE '아_';   ▶ '아'를 포함해서 두글자인 애들을 찾는(언더바 두개면 '아'포함해서 세글자)

 

 

 - 하지만 이런 패턴연산자는 허점이 많아서 사용에 제약이 있다. 그렇기 때문에 모든곳에서 통용되는 '정규식(REGULAR EXPRESSION'을 쓴다

 

 

 

 

 

 

 

 

 

 

 

728x90

'국비수업 > 수업정리' 카테고리의 다른 글

오라클 SQL / 6  (0) 2023.04.27
오라클 SQL / 5  (0) 2023.04.25
오라클 SQL / 3  (0) 2023.04.24
오라클 SQL / 2  (0) 2023.04.21
오라클 SQL / 1  (0) 2023.04.20