ORACLE 08. DDL (ALTER, DROP)
2022. 11. 23. 17:05
ORACLE
객체들을 생성(CREATE), 변경(ALTER), 삭제(DROP) 하는 구문 1. ALTER 객체를 변경하는 구문 [표현법] ALTER TABLE 테이블명 변경할 내용; *변경할 내용 1) 컬럼 추가/수정/삭제 2) 제약조건 3) 컬럼명 /제약조건명/테이블명 수정 1) 컬럼 추가/ 수정/ 삭제 1_1) 컬럼 추가 (ADD) : ADD 컬럼명 자료형 [DEFAULT 기본값] 예시) DEPT_COPY에 LNAME 컬럼 추가 (기본값 지정) ALTER TABLE DEPT_COPY ADD LNAME VARCHAR2(20) DEFAULT '한국'; 1_2) 컬럼 수정 (MODIFY) > 데이터 타입 수정 : MODIFY 컬럼명 바꾸고자하는 데이터타입 > DEFAULT값 수정 : MODIFY 컬럼명 DEFAULT ..
ORACLE 07. DML (DELETE)
2022. 11. 23. 16:46
ORACLE
테이블에 기록된 데이터를 삭제하는 구문 (한 행단위로 삭제됨) [표현법] DELETE FROM 테이블명 [WHERE 조건]; --> WHERE절 제시 안하면 전체행 다 삭제됨 예시1) 강람보,김말순 사원 삭제 DELETE FROM EMPLOYEE WHERE EMP_NAME IN('강람보','김말순'); 예시2) DEPT_ID가 D1인 부서 삭제 DELETE FROM DEPARTMENT WHERE DEPT_ID = 'D1'; -- D1을 쓰고있는 자식데이터가 있기 때문에 삭제 안됨 >> 삭제시 외래키 제약조건에 의해 삭제가 불가능할 경우 잠시 제약조건을 비활성화 시킬 수 있음 [표현법] ALTER TABLE 테이블명 DISABLE CONSTRAINT 제약조건명 CASCADE ALTER ..
ORACLE 07. DML (UPDATE)
2022. 11. 23. 16:39
ORACLE
테이블에 기록되어있는 기존의 데이터를 수정하는 구문 [표현법] UPDATE 테이블명 SET 컬럼명 = 바꿀값, 컬럼명 = 바꿀값, ... --> 여러개의 컬럼값 동시변경 가능 (,로 나열해야됨) [WHERE 조건]; --> 생략하면 전체 모든 행의 데이터가 변경됨 예시1) D9 부서의 부서명을 '전략기획팀'으로 수정 UPDATE DEPT_COPY SET DEPT_TITLE = '전략기획팀' WHERE DEPT_ID = 'D9'; 예시2) 선동일 사원의 급여를 700만원으로, 보너스는 0.2로 변경 UPDATE EMP_SALARY SET SALARY = 7000000, BONUS = 0.2 WHERE EMP_NAME = '선동일'; 예시3) 방명수 사원의 급여와 보너스 값을 유재식 사원..
ORACLE 07. DML (INSERT)
2022. 11. 23. 16:30
ORACLE
- DQL (QUERY 데이터 질의 언어) : SELECT(쿼리문) - DML (MANIPULATION 데이터 조작 언어) : INSERT, UPDATE,DELETE, [SELECT] - DDL (DEFINITION 데이터 정의 언어) : CREATE, ALTER, DROP - DCL (CONTROL 데이터 제어 언어) : GRANT, REVOKE, [COMMIT,ROLLBACK] - TCL (TRANSACTION 트랜잭션 제어 언어) : COMMIT, ROLLBACK 테이블에 데이터를 삽입(INSERT)하거나, 수정(UPDATE)하거나, 삭제(DELETE)하는 구문 1. INSERT 테이블에 새로운 행을 추가시키는 구문 [표현법] 1) 특정 컬럼을 지정하지 않고 삽입하고자 할 때 INSERT INTO ..
ORACLE 06. DDL (CREATE)_ SUBQUERY 이용한 테이블 생성
2022. 11. 23. 13:39
ORACLE
테이블 복사뜨는 개념 [표현법] CREATE TABLE 테이블명 AS 서브쿼리; 예시) EMPLOYEE 테이블 그대로 복제한 새로운 테이블 생성 CREATE TABLE EMPLOYEE_COPY AS SELECT * FROM EMPLOYEE; >> 컬럼, 데이터값, 제약조건 같은 경우 NOT NULL만 복사됨 예시) EMPLOYEE 테이블의 일부 복사 CREATE TABLE EMPLOYEE_COPY2 AS SELECT EMP_ID, EMP_NAME, SALARY, BONUS FROM EMPLOYEE WHERE 1 = 0; >> 컬럼구조만을 복사하고자 할 때 쓰이는 구문(데이터 값은 필요 없을때) CREATE TABLE EMPLOYEE_COPY3 AS SELECT EMP_ID, EMP_NAME,SALARY,..
![thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcux8DT%2FbtrRQ4KpJWH%2Fg16Gtl52OGRk2BlAOKIJ9K%2Fimg.png)
ORACLE 06. DDL (CREATE)_ DEFAULT 기본값
2022. 11. 22. 17:03
ORACLE
컬럼을 선정하지 않고 INSERT시 NULL이 아닌 기본값을 INSERT하고자 할때 세팅해 둘 수 있는 값 CREATE TABLE MEMBER( MEM_NO NUMBER PRIMARY KEY, MEM_NAME VARCHAR2(20) NOT NULL, MEM_AGE NUMBER, HOBBY VARCHAR2(20) DEFAULT '없음', ENROLL_DATE DATE DEFAULT SYSDATE ); 방법 1) 테이블의 모든 컬럼값을 다 제시해서 INSERT하는 방법 INSERT INTO 테이블명 VALUES(값,값,값,..); INSERT INTO MEMBER VALUES(1,'강길동',20,'운동','22/10/30'); INSERT INTO MEMBER VALUES(2,'..
ORACLE 06. DDL (CREATE)_ 제약조건(CONSTRAINTS)
2022. 11. 22. 16:51
ORACLE
- 원하는 데이터값(유효한 형식의 값)만 유지하기 위해서 특정 컬럼에 부여하는 제약 - 데이터 무결성 보장을 목적으로 함 * 제약조건의 종류 : NOT NULL , UNIQUE, CHECK(조건), PRIMARY KEY, FOREIGN KEY * 제약조건을 부여하는 방식 : 컬럼레벨방식 / 테이블레벨방식 1. NOT NULL 제약조건 - 해당 컬럼에 반드시 값이 존재해야만 할 경우 ( 즉, 해당 컬럼에 절대 NULL이 들어와서는 안되는 경우) - 삽입/ 수정시 NULL값을 허용하지 않도록 제한함 - NOT NULL 제약조건은 컬럼레벨방식만 사용가능 CREATE TABLE MEM_NOTNULL( MEM_NO NUMBER NOT NULL, MEM_ID VARCHAR2(2..
ORACLE 06. DDL (CREATE)
2022. 11. 22. 16:23
ORACLE
DDL ( DATA DEFINITION LANGUAGE) - 데이터 정의 언어로 객체(OBJECT)를 만들고(CREATE), 구조를 변경하고(ALTER), 삭제(DROP) 하는 구문 - 실제 데이터 값이 아닌 구조 자체를 정의하는 언어 - 주로 DB관리자, 설계자가 사용함 * 오라클 객체 종류 테이블(TABLE),뷰(VIEW), 시퀀스(SEQUESNCE), 인덱스(INDEX),패키지(PACKAGE), 트리거(TRIGGER), 프로시져(PROCEDURE),함수(FUNCTION),동의어(SYNONYM),사용자(USER) 테이블, 인덱스, 뷰 등 데이터 베이스 객체를 생성하는 구문 1. 테이블 생성 - 테이블(TABLE) : 행(ROW)과 열(COLUMN)로 구성되는 가장 기본적인 데이터베..
ORACLE 05. SELECT_ 서브쿼리(SUBQUERY)_ 상관 서브쿼리
2022. 11. 21. 17:33
ORACLE
일반적인 서브쿼리 방식은 서브쿼리가 만들어낸 고정된 결과값을 메인쿼리가 가져다가 사용하는 구조이나 상관서브쿼리는 반대로 메인 쿼리의 테이블값을 가져다가 서브쿼리에서 이용해서 결과를 만듦 예시1) 본인의 직급별 평균 급여보다 더 많이 받는 직원의 이름, 직급코드, 급여 조회 SELECT E.EMP_NAME,E.JOB_CODE,E.SALARY FROM EMPLOYEE E WHERE SALARY > (SELECT AVG(SALARY) FROM EMPLOYEE WHERE JOB_CODE =E.JOB_CODE); 예시2) 보너스가 본인 부서의 평균 보너스보다 많은 사람들의 이름, 부서코드,급여, 보너스 조회 SELECT EMP_NAME,E.DEPT_CODE,BONUS FROM EMPLOYEE E WHERE BON..
ORACLE 05. SELECT_ 서브쿼리(SUBQUERY)_ 인라인뷰
2022. 11. 18. 16:11
ORACLE
1. 인라인뷰(INLINE-VIEW) FROM절에 서브쿼리를 작성하는 것 서브쿼리를 수행한 결과를 마치 하나의 테이블처럼 사용 >> ✅인라인뷰를 주로 사용하는 경우 TOP-N 분석( 전체 데이터 중 일부 데이터 조회할 때) 예시1) 사원들중 급여가 가장 높은 상위 5명만 조회 SELECT ROWNUM, E.* FROM (SELECT EMP_NAME, SALARY, DEPT_CODE FROM EMPLOYEE ORDER BY SALARY DESC) E --테이블에 별칭 부여 WHERE ROWNUM ROWNUM : 오라클에서 제공해주는 컬럼, 조회된 순서대로 1부터 순번을 부여해주는 컬럼 예시2) 각 부서별 평균 급여가 가장 높은 부서 상위 3개의 부서 SELECT DEPT_CODE , FLOOR(평균급여) ..