★ 관계형 데이터베이스 시스템(RDBMS)이 지양하는 사항 테이블에 기본키가 없는 상태 > 데이터 조작 곤란 null이 많은 상태의 테이블 > 데이터 조작 곤란 + 공간 낭비 데이터가 중복되는 상태 > 데이터 조작 곤란 + 공간 낭비 하나의 속성값이 원자값이 아닌 상태 ■ 1. 테이블에 기본키가 없는 상태 > 데이터 조작 곤란(3번과 동일) create table tbltest ( name varchar2(30) not null, age number(3) not null, address varchar2(300) not null ); insert into tblTest (name, age, address) values ('홍길동', 20, '서울시'); insert into tblTest (name, ag..
★ MainQuery 여태까지의 SQL 일반적인 SQL 하나의 문장안에 하나의 select(insert, update, delete)로 구성된 쿼리 ★ Sub Query, 서브 쿼리, 부속 질의 하나의 문장(select, insert, update, delete)안에 또 다른 문장(select)이 들어있는 쿼리 하나의 select문 안에 들어있는 또 다른 select 문 삽입 위치 > 거의 대다수의 절(select 절, from 절, where 절 group by 절, having 절, order by 절) ■ 사용 ex) ex1) -- tblCountry. 인구수가 가장 많은 나라의 이름? select * from tblCountry; update tblCountr..
★ Having 절 조건절 group by로 부터 나온 셋에 대한 조건 집합에 대한 질문 > 집계 함수값을 조건으로 사용 조합 [WITH ] - WITH 절 SELECT column_list - SELECT 절 FROM table_name - FROM 절 [WHERE search_condition] - WHERE 절 [GROUP BY group_by_expression] - GROUP BY 절 [HAVING search_condition] - HAVING 절 [ORDER BY order_expresstion [ASC|DESC]]; - ORDER BY 절 select 컬럼리스트 -- 5. 컬럼을 선택 from 테이블 -- 1. 테이블로부터 where 조건 -- 2. 원하는 레코드를 group by 기준 -..
★ Group By 레코드를 대상으로 그룹을 나누는 역할 특정 컬럼을 대상으로 같은 값을 가지는 레코드들끼리 그룹을 묶는 역할 그룹을 왜 나누는지? > 각각의 나눠진 그룹을 대상 > 집계 함수를 적용하기 위해서 실행 순서 및 구조 select 컬럼리스트 -- 4. 컬럼을 선택 from 테이블 -- 1. 테이블로부터 where 조건 -- 2. 원하는 레코드를 group by 기준 -- 3. 그룹을 나눠서 order by 정렬조건 -- 5. 정렬한다 ■ 사용 ex) tblIsan 테이블의 부서별 평균 급여 select * from tblInsa; select avg(basicpay) from tblInsa; -- 155만원, 60명 select distinct buseo from tblInsa; -- 7개 ..
★ Update DML 데이터 수정하는 명령어 원하는 행의 원하는 컬럼값을 수정하는 명령어 구문 update 테이블 set 컬럼명=값 update 테이블명 set 컬럼명=값, 컬럼명=값, 컬럼명=값; update 테이블명 set 컬럼명=값 where 절; update 테이블 set 컬럼명=값 [ , 컬럼명=값] x N [where절]; ■ 사용 ex) 주의할 점!! : update 문 사용 시 해당 데이터가 수정되므로 하기전에 꼭 commit을 하고, rollback으로 복구 해야함 commit : 현재 시점을 저장함. rollback : 최근에 commit했던 지점으로 다시 복구함. commit; rollback; update를 사용한 다양한 ex) -- 대한민국 수도 : 서울 > 세종 update t..
★ Sequence 데이터베이스 객체에는, 테이블, 계정, 제약사항이 있는데, 이 데이터베이스 객체중 하나이다. 오라클 전용 객체(다른 DBMS에는 없음) 일련 번호를 생성하는 객체 주로 식별자를 만드는 용도로 많이 사용한다. > PK컬럼에 일련 번호를 넣을 때 많이 사용한다. 시퀀스 객체 생성하기 create Sequence 시퀀스명[옵션]; 시퀀스 객체 삭제하기 drop sequence 시퀀스명; 시퀀스 객체 사용하기 시퀀스명.nextVal > 주로 사용함. 시퀀스명.currVal > 가끔 사용함. ■ 사용 ex) create sequence seqNum; drop sequence seqNum; select seqNum.nextVal from dual; --10 > 11 번호는 서로 영향을 받지 않음..
★ DDL Data Definition Language 데이터 정의어 테이블, 뷰, 사용자, 인덱스, 트리거 등의 데이터베이스 오브젝트를 생성/수정/삭제하는 명령어 a. create : 생성 b. drop : 삭제 c. alter : 수정 테이블 조작하기 create table 테이블명 ( 컬럼 정의, 컬럼 정의, 컬럼 정의, 컬럼 정의, 컬럼 정의, 컬럼 정의, 컬럼명 자료형(길이) Null 제약사항 ); 제약사항, Constraint 해당 컬럼에 들어갈 데이터(값)에 대한 조건 조건을 만족하면 > 대입 조건을 불만족하면 > 에러발생 유효성 검사 도구 데이터베이스 > 데이터 관리 > 데이터 무결성(***)을 보장하는 도구 종류 1. NOT NULL - 해당 컬럼이 반드시 값을 가져야한다. - 해당 컬럼..