오라클 참조 키 만들기
- table 생성 시 references 키워드 이용
컬럼 자료형 references 참조할 테이블(참조할 컬럼)
1 2 3 4 5
예시)
custid NUMBER REFERENCES customer(custid)
1 2 3 4 5
SQL 기능에 따른 분류
1. 데이터 정의어(DDL)
- 테이블이나 관계의 구조를 생성하는 데 사용
- 테이블을 만들거나 테이블의 구조를 변경하거나 데이터를 삭제하는 명령
CREATE, ALTER, DROP
2. 데이터 조작어(DML)
- 테이블에 데이터를 검색, 삽입, 수정 ,삭제하는데 사용
SELECT, INSERT, DELETE, UPDATE
3. 데이터 제어어(DCL)
- 데이터의 사용 권한을 관리
GRANT, REVOKE 등
데이터 조작어 (DML) - SELECT 문의 기본 문법
SELECT [ ALL | DISTINCT ] 속성이름
FROM 테이블이름(들)
[WHERE 검색조건(들)]
[GROUP BY 속성이름]
[HAVING 'GROUP BY'에 대한 검색조건(들)]
[ORDER BY 속성이름 [ASC | DESC]]
WHERE
비교 : = , <>, <, <=, > >=
범위 : BETWEEN -- BETWEEN A AND B
집합 : IN, NOT IN -- price IN(10000, 20000, 30000)
패턴 : LIKE ( bookname LIKE '축구의 역사' ) ) , %와 같이 많이 사용 됌.
NULL : IS NULL, IS NOT NULL
복합 : AND, OR, NOT
- 'IN'과 'NOT IN' 은 각각 'OR'과 '<> AND' 로 표현할 수 있다.
'NOT IN' 과 '<> AND' 예시
- 와일드문자
'축구'가 포함된 속성 출력
두번째 글자에 '구'가 포함되고 뒤에는 아무 글자나 와도 됌
- 언더바( _ ) 로 인해 첫글자 패스
- 퍼센트 ( % ) 로 인해 '구'이후의 글자 아무거나 와도 상관없음
ORDER BY
- 특정 컬럼을 기준으로 자료를 정렬하여 검색하고자 할 떄 사용.
1. order by 컬럼이름 [asc, desc]
2. order by 컬럼1, 컬럼2
--> 이 경우 컬럼1로 먼저 정렬 되고, 정렬 되던 도중 같은 값이 존재하면 컬럼2로 정렬됨
----------------------------------
asc : 오름차순 (기본, 생략가능)
desc : 내림차순
- order by 로 속성 명이 2개가 오면 뒤에 온 필드명은 선행 필드로 정렬 후 값이 동일 할 경우 후행 필드로 정렬됨
'publisher' 컬럼으로 정렬 후
컬럼의 데이터가 동일할 경우 가격순으로 내림차순 정렬
집계함수
- 컬럼 별 총합, 평균, 최대 값, 최소 값, 개수를 파악하기 위한 함수
- AS 키워드로 별칭을 줄 수 있다
- 집계함수의 결과는 다른 컬럼의 이름을 함께 출력할 수 없음
SUM (총합)
AVG (평균)
MAX (최대 값)
MIN (최소 값)
COUNT (개수)
-> 컬럼에 null이 있으면 COUNT(*)로 해야 null값 까지 카운트
-> 컬럼에 null이 있을 때 COUNT(컬럼명) 하면 null값 카운트 불가능
---------------------------------------
예시
select SUM (saleprice) from orders;
select AVG (saleprice) from orders;
집계함수의 결과는 다른 단일 컬럼의 이름을 함께 출력할 수 없음
GROUP BY 와 집계함수
- 집계함수의 결과는 다른 단일 컬럼의 이름을 함께 출력할 수 없는데,(한줄만 표현됨)
- 고객 별로 총 추문건수를 알고 싶을 경우 GROUP BY와 같이 사용하여 표현 가능
- 만약 group by 안쓰면 전체 행의 개수와, saleprice의 합계만 1행 2열로 출력될 것임
Group by 미 사용 시 한줄로 밖에 표현 못함.
출판사 컬럼을 Group by로 묶어주어 아래와 여러 데이터 표현 가능
출판사 별로 출판한 책 개수를 표현한 것임
HAVING
- GROUP BY 절에 나타난 결과에 대해 조건식을 표현하고자 할 때에 사용
- 즉, GROUP BY의 where이라고 생각할 것
VO, DAO
- 데이터베이스 연동 프로그램을 만들때에는 VO, DAO를 만드는 것이 일반적이다
- DAO에서만 데이터베이스에 엑세스 할 수 있게 되면 다수의 워격 호출로 인해 발생될 수 있는 오버헤드 등을 줄일 수 있다.
VO ( Value Object )
- 데이터베이스 테이블을 객체로 표현하기 위한 클래스
- Getter, Setter, 생성자 등 데이터 저장용 클래스
DAO ( DataBase Access Object )
- 데이터베이스에 접근하여 검색, 추가, 수정, 삭제의 명령을 수행하는 클래스
- 실직적으로 DB와 연동되는 클래스
반응형
'개발 > 교육' 카테고리의 다른 글
(데이터베이스)20일차 (0) | 2022.04.22 |
---|---|
(데이터베이스)19일차 (0) | 2022.04.21 |
(Java)16일차 (0) | 2022.04.18 |
(Java)15일차 (0) | 2022.04.15 |
(Java)13일차 (0) | 2022.04.13 |
댓글