DB 15

CONSTRAINTS

제약 조건은 컬럼에 어떤 조건을 거는 것. 해당 컬럼에 조건을 걸면 해당 컬럼 또는 테이블 이용시 제약 조건을 지켜야 함. PRIMARY KEY (기본키/PK) 테이블 당 하나만 가질 수 있는 키로서 해당 키를 가진 컬럼의 데이터를 중복이 불가하고 NULL이 데이터로 올 수 없다. 주민등록번호, ID 같이 다른 중복이 없어야 하는 데이터를 사용할 때 좋다. #1 CREATE TABLE 테이블명( 컬럼명 데이터형식 PRIMARY KEY ); CREATE TABLE TEST_TABLE1( ID VARCHAR2(20) PRIMARY KEY, NAME VARCHAR2(20) ); #2 CREATE TABLE 테이블명( 컬럼명 데이터형식, CONSTRAINT 프라이머리키 이름 PRIMARY KEY(컬럼명) ); ..

DB/Oracle 2022.06.30

수업 36일차 - 스칼라 서브쿼리, 인라인뷰, 데이터정의언어(DDL)

select ename, hiredate, sal, dname, loc from emp, dept where emp.deptno=dept.deptno; -- 서브쿼리(스칼라 서브쿼리) select ename, hiredate, sal, (select dname from dept where deptno=emp.deptno) dname, (select loc from dept where deptno=emp.deptno) loc from emp; -- 조인(테이블 3개 연결) select ename, hiredate, sal, dname, loc, grade from emp, dept, salgrade where emp.deptno=dept.deptno and sal between losal and hisal..

DB/Oracle 2022.06.27

수업 35일차 - 일반 함수, group by/having, join

-- COUNT select count(*), count(mgr), count(comm) from emp; select count(*) from emp where empno=7788; -- 아이디 있는지 확인 -- max, min select min(sal) "급여 최소", max(sal) "급여 최대" from emp; -- 게시판, 공지사항 -> 번호 자동 증가 select max(empno)+1 from emp; --AVG, SUM select sum(sal), round(avg(sal), 2) from emp; -- RANK(중복 후 건너 뜀) select empno, ename, sal, rank() over(order by sal desc) "rank" from emp; -- RANK (중복 ..

DB/Oracle 2022.06.22

수업 34일차 - 문자 함수, 숫자 함수, 날짜 함수

문자 함수 -- 문자 함수(length, lengthb) select length('ABC'), length('김') from DUAL; -- 컬럼명 없을 때 사용, 연습용(계산 출력,함수 확인) select length('ABC'), lengthb('김') --한글은 1개당 3바이트 from DUAL; -- UPPER, LOWER, INITCAP select upper('abc'), lower('ABC'), initcap('ABC') from DUAL; -- UPPER select ename, job from emp where ename=UPPER('king'); -- UPPER, LOWER, INITCAP select ename, upper(ename) "대문자", lower(ename) "소문자",..

DB/Oracle 2022.06.21

INNER JOIN, OUTER JOIN(LEFT, RIGHT, FULL)

여러 테이블을 합칠 때 사용한다. INNER JOIN은 값이 같은 컬럼만 합치고 OUTER JOIN은 LEFT, RIGHT 기준으로 한 쪽에 맞춰서 합친다. CREATE TABLE TB1 ( NAME VARCHAR2(20), AGE NUMBER(3) ); CREATE TABLE TB2 ( NAME VARCHAR2(20), AGE NUMBER(3) ); INSERT INTO TB1(NAME, AGE) VALUES('김철수', 30); INSERT INTO TB1(NAME, AGE) VALUES('이영희', 31); INSERT INTO TB1(NAME, AGE) VALUES('박영수', 32); INSERT INTO TB1(NAME, AGE) VALUES('엄영수', 33); INSERT INTO TB2(..

DB/Oracle 2022.06.18