본문 바로가기

SQL40

SQL_시퀀스, 트랜잭션, 무결성제약조건 시퀀스(Sequence) 일련번호를 발행하는 오라클의 데이터베이스 객체다 시퀀스명은 _seq로 끝나도록 짓는것이 관례다 시퀀스 객체 생성 create sequence 시퀀스명; create sequence category_seq; create sequence product_seq; 일련번호 발행 시퀀스명.nextval : 새로운 일련번호를 제공한다 시퀀스명.currval : 직전에 발행된 일련번호를 다시 제공한다 시퀀스 사용하기 INSERT문에서 시퀀스를 사용해서 새로운 번호를 저장되게 하기 insert into tb_categories(cate_no, cate_name, cate_parent_no) values(cate_seq.nextval, ?, ?); insert into tb_products(pr.. 2023. 12. 19.
SQL_DDL과 정규화 DDL (데이터정의어) 오라클 데이터베이스 객체 생성, 변경, 삭제에 사용되는 명령어 DDL의 종류에는 CREATE, ALTER, DROP, TRUNCATE 주요 데이터베이스 객체 테이블 데이터의 기본 저장단위, 행과 열로 구성되어 있다 뷰 하나 이상의 테이블을 사용해서 만든 가상의 테이블 시퀀스 일련번호 생성기 인덱스 검색성능을 향상시키기 위해 데이터에 대한 색인을 가지고 있다 동의어 객체에 대한 다른 이름을 제공한다 테이블 테이블과 컬럼의 이름규칙 문자로 시작, 30자까지 가능(A~Z, a~z, 0~9, _, $, #만 허용) 오라클 예약어도 이름에 사용할 수 없다 테이블 생성하기 ( CREATE ) -- 테이블 생성 예시 CREATE TABLE 테이블명 ( 컬럼명 데이터타입(크기) [DEFAULT .. 2023. 12. 18.
SQL_서브쿼리 서브쿼리(SUB QUERY) SELECT문 내부에 정의된 SELECT문을 서브쿼리라고 한다 서브쿼리는 WHERE절의 조건식에서 사용되는 값을 제공한다 이 경우에 조건식에서 사용되는 값이 SQL을 실행해야만 획득가능한 값이 경우가 많다 서브쿼리의 형식 SELECT 컬럼, 컬럼 FROM 테이블명 WHERE 조건식 연산자 ( SELECT 컬럼 FROM 테이블명 [WHERE 조건식]) -- 전체 사원의 평균급여보다 급여를 적게 받는 사원들의 사원아이디, 이름, 급여를 조회하기 -- 조건식에서 사원의 급여와 비교되는 전체사원의 평균급여는 select문의 실행결과로 획득되는 값이다. -- 따라서, where절에 사원들의 전체 평급을 조회하는 select문(서브쿼리)이 필요하다. select employee_id, .. 2023. 12. 17.
SQL_그룹함수(GROUP BY, HAVING) 그룹함수 ( GROUP BY ) 조회된 행들의 집합그룹에 적용되어 하나의 결과를 생성하는 함수 집합그룹 : 테이블 전체 또는 그룹화된 테이블의 행들 집합그룹의 예시 : 사원테이블전체 혹은 부서별 평균임금 / 직종별 전체 급여 / 관리자별 관리직원수 / 입사년도별 입사한 사원수 / 급여등급별 사원수 등 그룹함수 사용시 주의사항 그룹함수는 WHERE절에서 사용할 수 없다 그룹함수와 그룹함수가 아닌 표현식을 SELECT절에 같이 적을 수 없다 그룹함수의 중첩은 한번만 허용된다 GROUP BY절에 등장한 표현식은 그룹함수와 같이 SELECT절에 적을 수 있다 그룹함수의 종류 COUNT(*) : 조회된 모든 행의 갯수를 반환한다 COUNT(컬럼 혹은 표현식) : 조회된 행에서 지정된 컬럼의 값이 NULL이 아닌 .. 2023. 12. 14.