ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • SQL tips.2
    자바 초보개발/SQL 2023. 11. 1. 17:32

    SUBQUERY로 INSERT 할시 VALUES는 안쓴다.

     

    참조키를 삭제하고 부모키를 삭제해야한다. 참조키에 ON DELETE CASCADE를 

     

    오라클과 함께하는 SQL과 PL/SQL

    135p, 186p 320p

    220p ,260p

     

    Trunc(날짜형) = 시분초 제거

     

     

    TO_CHAR (날짜데이터, '문자열 형식') => 날짜데이터를 문자형으로 변경

    *문자열을 입력 불가능

     

    TO_DATE(문자데이터, ' 날짜 형식' ) => 문자데이터를 날짜형으로 변경

    *날짜형입력 불가능

     TO_NUMBER()

     

    날짜형 데이터를 +, - 연산 가능.

    ADD Months(날짜형 ,+할 달수)

     

    쿼리 안에 쿼리를 또 넣어 쓸 수있다. 보기쉽게 ()로 구분함.

     

    View table

    쿼리가 간단해지고, 보안상 문제가 될만한 데이터를 제한하고 보여주기 위해 만든다.

    view table 은 쿼리로 만든 것이다.

     

    다른 두 테이블의 데이터를 가져오려면>

    select 별1.컬럼1, 별1.컬럼2, 별2.컬럼3 from 테이블1 별명1 테이블2 별명2

     

     

    모델 부분에서

    물리적으로 똑같은 id를 참조하는 두개의 FK가 있으면 JOIN할 때 그 id를 별명을 두개를 써서 따로 분리해줘야 한다.

    예시로 메시지 송신자와 수신자 id를 멤버정보 라는 테이블에서 둘다 받아온다면,

    송신자도 멤버정보 테이블의 누구든지 될 수 있고, 수신자도 멤버정보 테이블의 누구든지 될 수 있기 때문에

    멤버정보에서 id를 두개 받아와서 저장해야 한다.

     

    max함수를 이용해 게시판 순서번호를 조정할 수 있다.

    max(칼럼명) = 해당 칼럼에서 최댓값.

    시퀀스.nextval  대신 (select nvl[null값방지] (max(칼럼명),0) +1) 로 숫자 상승 체계를 만들 수 있다.

     

    sum(칼럼명), avg(칼럼명) 두 연산은 null값인 행을 제외하고 연산한다.

     

    count(*),(칼럼명) 전체 행 또는 칼럼의 행 수만 반환한다. PK를 count하거나 *를 사용해야 전체 행 수를 알 수 있다.NULL값은 연산에서 제외되기 때문. 조건을 붙이면 조건에 맞는 행 수가 반환되고, Group by 절로 칼럼 구분시 

     

     Group by - 특정 칼럼을 기준으로 데이터가 동일한 행을 그룹화 해서 보여준다.

     

    글번호( 프라이머리 키 )를 바꾸지 않는게 좋다. 참조하는 키들이 여럿 있을 수 있기 때문.

Designed by Tistory.