SW과정 Java/Database 7일차 - 0803

JongseokLee·2021년 8월 3일
0
post-thumbnail

SW과정 Java/Database 7일차

1. Oracle🙋

hr 계정의 lock을 푸는 명령어
alter user hr account unlock
비밀번호 변경하는 명령어
alter user hr identified by 비밀번호

Eclips상에 ojdbc.jar 연동

프로젝트 우클릭 → Build Path → Configure Build Path → Libraries → Add External Jars

"jdbc:oracle:thin:@127.0.0.1:1521:XE"; 자기 IP 기본 값

Alt + Shift + S → getters and setters 선택


2. 람다식

1) inner class

클래스 안에 클래스가 있는 형태, 지역 내부 클래스, static 내부 클래스, 익명 내부 클래스(anonymous inner class)


3. Database(SQL)🙋

1) DBMS(Database Management System : Oracle)

데이터 베이스 매니지먼트 시스템
데이터 : 트위터, 인스타그램 등 포스팅(데이터가 쌓여 있는 곳이 데이터베이스)
데이터의 관계를 해석하는 작업 : 통계
데이터를 활용하자 DW(Data Warehosing)

테이블에 있는 데이터를 조작하는 방법(DML : Data Manipulation Language)

  • 1) select : 테이블에 있는 데이터를 읽어오는 방법
  • 2) insert : 테이블에 데이터를 넣는 방법
  • 3) update : 테이블에 있는 데이터를 수정하는 방법
  • 4) delete : 테이블에 있는 데이터를 삭제하는 방법
select first_name, last_name
from employees
where employee_id=100

/*employee_id가 Primary key 임 : pk로 선언되어 있는 컬럼에는 entity 무결성 제약 조건이 있음
entity 무결성 제약 조건 : 해당 컬럼에 null이 올 수 없고, 중복된 값이 올 수 없음*/

4. Smalltalk

수업을 듣다가 불만사항이 있으면 피드백을 해주세요, 개선을 하도록 하겠습니다.
설명이 주가 아니라 시각적인 부분을 보충할 수 있도록 하겠다.
세계 최초의 SNS 싸이월드, 네트온도 모바일로 늦게 넘어와서 카카오톡에게 짐


5. SQL 정렬 기본 코드

    select first_name, last_name
    from employees /*from점 뒤에는 테이블 또는 뷰가와야함*/
    where employee_id=100
    /*employee_id가 Primary key 임 : pk로 선언되어 있는 컬럼에는 entity 무결성 제약 조건이 있음
    entity 무결성 제약 조건 : 해당 컬럼에 null이 올 수 없고, 중복된 값이 올 수 없음*/
    
    select 5*4
    from dual /*dual은 더미 테이블이라고 부르며 문법을 맞추기위해서 지원해주는 테이블임*/
    
    select *
    from employees
    
    select first_name
    from employees
    where salary >= 10000 and salary <= 15000 /* between 작은값 and 큰 값 */
    
    select first_name
    from employees
    where salary between 10000 and 15000 /* between 작은값 and 큰 값 */
    
    select distinct first_name
    from employees
    
    select last_name
    from employees
    where first_name like '%s%' or first_name like '%a%'
    
    select first_name
    from employees
    where first_name like 'P__'
    
    select first_name
    from employees
    where first_name like '_a%'
    
    select first_name, last_name
    from employees
    where first_name like '_a%'
    order by first_name desc, last_name 
    /*asc 오름차순 생략 가능함 desc 내림차순 반드시 적어줘야함*/

    1. 이름에 'A'가 들어가는 사원들의 이름을 출력하시오
    select first_name
    from employees
    where first_name like '%A%'

    2. 월급이 3000 이상 8000 이하인 사원들의 이름과 월급을 출력하시오
    select first_name, salary
    from employees
    where salary between 3000 and 8000
    
    3. 이름과 월급이 출력하는데 월급이 낮은사원부터 높은 사원순으로 출력하시오
    select first_name, salary
    from employees
    order by salary asc

    커미션 받는 사원의 이름과 커미션을 출력하시오 (commision_pct)

    select first_name, commission_pct
    from employees
    where commission_pct is not null /*or, is null*/
    
    select first_name as "이름", salary "월 급", salary*12 as "연봉" /* as는 생략가능 */
    from employees
    order by salary desc

    select first_name ||'@'|| email
    from employees 
    
    
    
    Join : 2개 이상의 테이블에서 값을 가져오는 것
    사원번호가 151번인 사원의 이름과 소속부서의 이름을 출력하시오
    
    select e.first_name, d.department_name
    from employees e, departments d
    where e.employee_id=151
        and e.department_id = d.department_id
     
     4. 이름에 'A'가 들어가는 사원들의 이름과 부서 이름을 출력하시오
     
    select e.first_name, e.salary, d.department_name
    from employees e, departments d
    where e.first_name like '%A%'
        and e.department_id = d.department_id   
     
     5. Seattle(city)에서 근무하는 사원들의 이름을 모두 출력하시오
     
        select e.first_name, l.city
        from employees e, departments d, locations l
        where l.city='Seattle'
            and l.location_id = d.location_id
            and d.department_id = e.department_id
        
    6. 부서 위치(city)가 Toronto인 사원의 이름, 부서이름 출력
       
        select e.first_name, d.department_name, l.city
        from employees e, departments d, locations l
        where l.city='Toronto'
            and l.location_id = d.location_id
            and d.department_id = e.department_id
            
    * 6번 문제를 서브쿼리(subquery)로 할 수 있음 : 쿼리문안에 또 쿼리문이 있는것을 서브쿼리라고함
        1. from 절 뒤에 select문이 올 수 잇음 -> inline view라 부름
        2. where 조건절에 쿼리문이 올 수 있음 -> 서브쿼리
        
        select e.first_name, d.department_name
        from employees e, departments d
        where d.location_id = (select location_id
                                from locations
                                where city = 'Toronto')
            and d.department_id = e.department_id
    
    7. Ernst(last_name)의 급여와 동일하거나 더 많이 받는 사원의 이름과 급여를 출력하시오
    
    select first_name, salary
    from employees
    where salary >= (select salary
                    from employees
                    where last_name='Ernst')
                    
                    
    8. 자신의 급여가 평균 급여보다 많이 받는사원의 이름과(last_name) 
    근무하는 사원의 사원번호, 이름 및 급여를 출력하시오
    평균급여는 avg(salary) => 자기 자신을 조인 => selfjoin
    
    select last_name, salary
    from employees e
    where e.salary > ( select avg(salary)
                       from employees)
    
    
    
profile
DataEngineer Lee.

0개의 댓글