본문 바로가기

DataBase/DBMS

(20)
9.제약조건 : 데이터 추가, 수정, 삭제하는 가운데 DB의 무결성 유지 무결성 유지란? 데이터의 정확성, 일관성, 유효성이 유지되는 것을 말한다. 사전 보호막을 설치하는 것이 제약 조건이다. (데이터 추가, 수정, 삭제하는 가운데 데이터 무결성 지켜지도록) : NOT NULL, UNIQUE, PRIMARY KEY, FOREIGN KEY, CHECK, DEFAULT - 필요한 정보는 꼭 입력되어야만 하도록, (NOT NULL) NN ex)이름 - 고유한 값만 입력되어야하는것은 중복되지 않도록, (UNIQUE) UK ex)주민번호 - 고유한 값이 꼭 입력되도록, (PRIMARY) PK ex)id, 회원번호, 물품번호 - 참조할 수 있는 값만 입력되도록 (FOREIGN) FK ex)PK에 있는 값들을 참조하여 사용할 수 있다(사용하기위해서 PK에 등록이 되어있어야한다) - 의도된..
8.DML : INSERT, UPDATE, DELETE 1. INSERT 데이터 삽입 -INSERT INTO 테이블명(컬럼) VALUES(값); 1.컬럼에 있는 값들 다 넣을 때 INSERT INTO 테이블명 VALUES(컬럼에 해당하는 값들) 2.특정 컬럼을 선택해서 값을 넣을 때 INSERT INTO 테이블명(컬럼명들) VALUES(값들); ex) INSERT INTO DEPT01 VALUES(300,'DEVELOPER',100,10); INSERT INTO DEPT01(DEPARTMENT_ID, DEPARTMENT_NAME) VALUES(300,'DEVELOPER'); 2. UPDATE(반드시 WHERE 조건절 사용해야한다) 데이터 수정 -UPDATE 테이블명 SET 컬럼명=수정값, 컬럼명=수정값 WHERE 수정대상에대한 조건문; ex) UPDATE D..
7. 자료형 (문자형, 숫자형, 날짜형, 대용량) 테이블 생성할 때 데이터형을 써준다 CREATE TABLE 테이블명( 컬럼명1 데이터타입, 컬럼명2 데이터타입); - 문자형 : CHAR(size) -데이터의 크기가 고정되어있을 때 사용 ex) 남, 여 : VARCHAR2(size) - 가변형 - 숫자형 : NUMBER(w, d) - 날짜형 : DATE : TIMESTAMP (더 디테일하게 시간 체크할 때 사용) - 대용량 (큰데이터, 이미지, 파일) : LOB : BLOB (사용안한다 WHY? KT 넣을수있는 파일 다 넣었다 공기업일때 데이터 베이스를 스위트룸이라고 생각)
6.DDL (테이블 정의)-CREATE, ALTER(ADD, MODIFY, DROP), TRUNCATE, RENAME, DROP DDL 생성과 관련된 언어, 생성하면 복구가 안된다(트랜젝션 처리 X취소불가) 테이블 생성,변경, 제약조건(JOIN, 데이터모델링 구축하는데 유용) 1.CREATE : 테이블, 뷰, 인덱스, 시퀀스 등 모든 것을 생성할 수 있다 (CREATE 생성하고자하는것 이름) -employees 테이블, 데이터 포함해서 emp01로 복사 ex1) CREATE TABLE emp01 AS SELECT * FROM employees; -employees 테이블 구조만 emp02로 복사 ex2) CREATE TABLE emp02 AS SELECT * FROM employees where 1=0; 2.ALTER(ADD, MODIFY, DROP) : 테이블 구조 수정 (ALTER TABLE 테이블명 ) -컬럼추가 ADD(컬럼..
4~5 함수, 그룹함수 개념 연습 (SCOTT계정) --1 SELECT EMPNO, RPAD(SUBSTR(EMPNO,1,2),4,'*') MASKING_EMPNO, ENAME, SUBSTR(ENAME,1,1)||'****' MASKING_ENAME FROM EMP; --2 SELECT EMPNO, ENAME,SAL, TRUNC(SAL/21.5,2) DAY_PAY,ROUND(SAL/21.5/8) TIME_PAY FROM EMP; --3 SELECT EMPNO, ENAME, HIREDATE, TO_CHAR(NEXT_DAY(ADD_MONTHS(HIREDATE,3),'월요일'),'YYYY-MM-DD') R_JOB, NVL(TO_CHAR(COMM),'N/A') FROM EMP; --4 SELECT EMPNO, ENAME, MGR, CASE WHEN TO_CHAR(..
5.문자함수, 가상테이블 ||'첨가할문자' ex)SELECT CNAME, SUBSTR(CNAME,0,LENGTH(CNAME))||'과' FROM COURSE; LOWER() : 소문자 UPPER() : 대문자 SUBSTR() : 부분문자열 추출 1.인덱스가 1부터 시작, 갯수 substr(문자열,인덱스,갯수) 2.인덱스 부터 갯수만큼 substr(문자열,인덱스) 인덱스부터 끝까지 3.뒤에서 인덱스기준 끝까지 substr(문자열,-인덱스) 4.뒤에 인덱스기준 갯수만큼 출력 substr(문자열, - 인덱스, 갯수) LPAD(), RPAD() : 데이터 빈공간을 특정 문자로 채우는 것 LPAD('oracle',10,'#') 6글자(oracle) 나머지 4칸을 #으로 왼쪽에 채운다 (10글자 채우기위해서) RPAD('oracle',10..
4.그룹(GRUOP BY절), 그룹함수:sum(), avg(), max(), min(), count() 그룹함수 -sum() : 합계 -avg() : 평균 -max() : 최대 -min() : 최소 -count() : 갯수카운트 GROUP BY : 주의!-> 컬럼내역은 제한적이다 (그룹함수 또는 GROUP BY절에 사용한 컬럼만 사용) 예시) SELECT department_id, avg(salary), count(*) from employees group by department_id; HAVING 조건절 주의!-> 항상 group by 절과 함께 쓰인다 전체 그룹에서 일부 그룹만 추출하기 위해서 요구사항 : 부서별 급여 평균이 5000미만의 부서의 부서번호와 평균급여를 검색 SELECT department_id, AVG(salary) FROM EMPLOYEES GROUP BY DEPARTMENT_ID;..
1~3 개념 연습 (SCOTT계정 이용) SELECT * FROM EMP; --1. 문제) 부서번호가 10번인 부서의 사람 중 사원번호, 이름, 월급을 -- 출력하라 SELECT EMPNO 사원번호, ENAME 이름, SAL 월급 FROM emp WHERE deptno=10; --2. 문제) 사원번호가 7369인 사람 중 이름, 입사일, 부서번호를 출력하라. SELECT ENAME, HIREDATE, DEPTNO FROM EMP WHERE EMPNO=7369; --3. 문제) 이름이 ALLEN인 사람의 모든 정보를 출력하라. SELECT * FROM EMP WHERE UPPER(ENAME)='ALLEN'; --5. 문제) 직업이 MANAGER가 아닌 사람의 모든 정보를 출력하라. SELECT * FROM EMP WHERE NOT UPPER(JO..