본문 바로가기

JAVA/Oracle

오라클 예제 - lower() 와 trim을 이용한 sql 명령어

반응형

연습문제


/*

근무자의 이름을 입력받아 

해당 근무자의 사원번호, 사원명, 아이디, 연봉을 출력하는 프로그램을 작성하시오.

단 사원명이, 외국인인 경우는 대소문자 구별없이 찾아지도록 한다.

*/


import java.util.Scanner;

import java.sql.*;


class SqlTest2{

public static void main(String[] args) {

Scanner sc = new Scanner(System.in);


System.out.print("근무자의 이름을 입력하시오");

String input = sc.next();


//String sql = "사원번호 : " + name + "\t" + "사원명 : " + name + "\t" + "아이디 : " + substr(email, 1, instr(email,'@')-1) + "\t" + "연봉 : " + (sal*12);

String sql = "select no, lower(trim(name)), substr(email, 1, instr(email,'@')-1), nvl(sal,0)*12 annsal from emp where lower(trim(name)) ='" + input + "'";


try{

// 1. jdbc 드라이버를 메모리에 로드

Class.forName("oracle.jdbc.driver.OracleDriver");

// 2. DB 서버 연결

String url = "jdbc:oracle:thin:@203.236.209.141:1521:XE";

String user = "scott";

String pwd = "tiger";

Connection conn = DriverManager.getConnection(url, user, pwd);

// 3. sql 명령어를 위한 Statement 객체 생성

Statement stmt = conn.createStatement();

// 4. sql 명령어 실행

ResultSet rs = stmt.executeQuery(sql);


while (rs.next()){

String no = rs.getString(1);

String name = rs.getString(2);

String email = rs.getString(3);    

int sal = rs.getInt(4);


System.out.println(no + "\t" + name + "\t" + email + "\t" + sal);

}


rs.close();

stmt.close();

conn.close();


}catch (Exception e){

System.out.println(e);

}

}

}






/*

주소의 일부분을 입력받아 해당 주소지이면서 성별이 남자인

근무자의 정보를 출력하는 프로그램을 작성

사원번호, 사원명, 부서명, 연봉, 아이디를 출력합니다.

단, 부서명순으로 출력하되 동일할 때는 연봉이 높은순으로 출력합니다.

*/


sql 명령어

select no, name, dname, (sal*12), substr(email, 1, instr(email, '@')-1)

from emp

where instr(jumin, 8) = '1'

and addr like '%서울%';

반응형