SELECT USER_NO, USER_ID, USER_MOBILE1, USER_MOBILE2
FROM USER_T
WHERE USER_MOBILE1 IS NULL;
SELECT USER_NO, USER_ID, USER_MOBILE1, USER_MOBILE2
FROM USER_T
WEHRE USER_MOBILE2 LIEK "5%";
시작, 포함 등 -> 'LIKE' 연산자
만능문자(와일드카드) -> '%'
SELECT USER_NO, USER_ID, USER_REGDATE
FROM USER_T
WHERE EXTRACT(YEAR FROM
첫번째 인수로 처리 -> 빨간줄이 null이면 -> none으로 처리하세요
->
지역별 = 주소별
-> '서울', '경기' 그냥 제외하면 됨 (꼭 GROUPING 한 후 뺄 필요 없음)
★ NOT IN 선호!
USER_NO 없는 번호 찾으면 됨 = 구매한 적 없는 사람
-> 구매테이블에서 사용자 번호를 가지고 옴
-> NOT IN 일치하지 않는다
구매테이블의 기본키로 갯수를 샘
테이블 2개 필요
제품 : 구매테이블 = 1:M(하나의 제품을 여러번 팔 수 있음)
모든 사용자를 USER 조회하는 것이 목적(BUY테이블에 없더라도 USER테이블에 있다면 모두 조회하기)(구매내역이 없더라도 나올 수 있게)
-> 2개가 다 들어가있어야 조회가능
판매내역도 있어야 조회됨 (내부조인 쓰려면)
-> 벨트 DATA 조회되지 않음
(동등 조인 조건)
운동화, 청바지 , 모니터 2번 팔림(= 같은 제품 이름으로 모았음)
(-> 코드와 이름이 모두 동일해야 하나의 데이터로 보는 것)
(동일한 이름은 나타날 수 있다 -> 안전장치를 검)
(CODE가 없을때 문제 발생 : 이름이 같으면 같은 이름으로 봄, CODE는 기본키로 되어있으니 코드까지 같을 수가 없다)
(GROUP BY P.PROD_CODE, P.PROD_NAME)
*GROUP BY에 명시한 것만 SELECT로 보내면 된다
(보내기 싫으면 보내지 않아도 됨, PROD_CODE GROUP BY에 넣어도 됨)
제품코드 1을 2개 샀음
구매액 = 단가(하나당 가격) * 갯수
FROM 에 나타나는 테이블 순서는 크게신경 안써도 된다(성능의 문제_)
-> USER와 JOIN이 합쳐졌다
-> 조인 조건까지 하나의 테이블로 보기
-> INNER JOIN
★ 쿼리 많이 풀기 위해서는 자격증 준비!
★ 어려운 문제도 풀어봐야 실력이 는다.
구매횟수 -> grouping
grouping 이후 -> having절 필요
동일한 이름을 가진 다른 사용자는 같은 사람이 됨
-> ★ 사용자를 식별할 수 있는 데이터 하나 더 들어감(U.USER_NO) , 번호는 같아도 이름이 다르면 다른 사용자 됨
사용자는 무조건 출력 목적
-> USER와 연결가능
-> USER가 왼쪽에 있음
-> ASC 생략가능
★COMMIT있어야 함
구매번호는 시퀀스가 만들고 있어서
-> 10번 시퀀스 만들어짐
구매 시퀀스가 어디까지 생성하였음도 알 수 있음
-> CURRENT 현재값
INSERT가 다른 칼럼에 의해서 실패했을 경우)(번호표를 뽑았는데 업무를 못봄)
-> 해당 시퀀스는 버려짐
-> 언제나 일치 하지 않음 -> 권장하지는 않음
-> 서비스 측면) 중간에 버려지는 번호가 있을뿐이다
-> 기본키가 삭제되면 언제나 외래키도 삭제됨
PK 삭제되면) 무조건 '참조 무결성 위배'됨
(1) 애초에 못지우게 막음 - 오류
(2) 지울때 같이 지움 - CASCADE
(3) ON DELETE SET NULL - NULL (1번 지워지면 1번 정보 NULL로 바꾸기)
사용자 와의 관계 - 삭제 옵션이 없음 -> 삭제 자체가 안됨
-> 외래키 값이 발견되었다.
(구매내역을 먼저 삭제해야함)
★ 게시판 만들기
누가 이미 댓글을 달면) 댓글 달린 게시물은 지워지지 않음 = 자식 레코드가 발견되었습니다.
게시글 1 : 댓글 M
댓글이 존재 -> 외래키 값 존재
-> 댓글을 DB상에서 다 지우고 이후에 지우기
-> 이거 지우면 댓글 다 지워져 실제로 할꺼야?
-> ON DELETE CASCADE 달아놓고 하면 함께 지워짐
*ROLLBACK : 이전 COMMMIT으로 돌아가겠음
-> 둘다 성공해야
자바의 ANONATION(어노테이션) 형태로 들어갈것임
-> 작업이 하나면 COMMIT도 하나임
-화요일(7/11) SQL 활용
-수요일(7/12) 자바 수업
-다음주 월(7/17) SQL 평가있음