My footsteps
오라클 SQL / 4 본문
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 멤버변수라고함) 로드가 되면 저절로 실행이 됨
- 이 전역변수들은 스택이 실행될때 자동으로 같이 올라간다
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 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'을 쓴다
'국비수업 > 수업정리' 카테고리의 다른 글
오라클 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 |