-
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 - 특정 칼럼을 기준으로 데이터가 동일한 행을 그룹화 해서 보여준다.
글번호( 프라이머리 키 )를 바꾸지 않는게 좋다. 참조하는 키들이 여럿 있을 수 있기 때문.