전체 글
-
day11_1 - 오라클 (user, schema, Role)KIC/DB 오라클 2021. 7. 13. 01:54
[user] -> 오라클에 접속하기 위해 사용되는 사용자를 의미 [schema] -> 특정 user 가 만든 object 들의 모음을 의미 -> 일반적으로 혼용해서 많이 사용 [Role] -> 1) 에서 롤을 만든다 (롤은 권한 바구니) -> 2) 에서 해당 권한을 롤에 넣는다. -> 3) 2)에서 부여받은 롤을 사용자 SCOTT에게 부여한다. -> 4) 어떤 사용자가 어떤 ROLE을 사용하는지 확인한다. [user 등록]
-
day10 - 오라클 (CREATE, ALTER, RENAME, MODIFY, 제약조건, 외래키, 인덱스, 뷰, 시퀸스)KIC/DB 오라클 2021. 7. 13. 00:03
[CREATE] create table ddl_test (no number(3), name varchar2(10), birth date default sysdate); -> 일반 테이블을 생성한다. [테이블 생성시 주의사항] 1. 테이블 이름은 반드시 문자로 시작해야 한다. 즉 숫자로 시작할 수 없다. 단 숫자가 포함되는 것은 가능 특수 문자도 가능하지만 테이블 생성시 ""(겹 따옴표)로 감싸야 하며 권장하지 않는다. 2. 테이블 이름이나 컬럼 이름은 최대 30bytes 까지 가능 즉 한글로 테이블 이름을 생성할 경우 최대 15글자까지 가능 3. 테이블 이름은 한명의 사용자가 다른 오브젝트들의 이름과 중복 사용 할 수 없다. 4. 테이블 이름이나 오브젝트 이름을 오라클이 사용하는 키워드로 사용하지 않는 ..
-
day09 - 오라클 (sql 명령어, insert, delete, truncate, drop 차이, merge, commit, DML)KIC/DB 오라클 2021. 7. 10. 23:31
[SQL 명령어들] DML(Data Manipulation Language): INSERT(입력), UPDATE(변경), DELETE(삭제), MERGE(병합) DDL(Data Definition Language): CREATE (생성), ALTER (수정), TRUNCATE (잘라 내기), DROP (삭제) DCL (Data Control Language): GRANT (권한 주기), REVOKE (권한 뺐기) TCL (Transaction Control Language): COMMIT (확정), ROLLBACK(취소) SELECT : 어떤 분류에서는 DQL (Data Query Language) 라고 하기도 함 INSERT: 데이터 입력 명령어 INSERT INTO table licolumn1, co..
-
day08 - 오라클 (다중 컬럼, scalar sub query, inline view, exists 와 not exists)KIC/DB 오라클 2021. 7. 10. 23:17
[다중 컬럼] select empno, name, birthday, pay, position from emp2 where (pay, position) in (select max(pay), position from emp2 group by position); select empno, name, birthday, pay, position from emp2 where pay = (select max(pay) from emp2 where position = e.position); [scalar sub query(스칼라 서브쿼리)] -> select 문에서 서브쿼리 추가 --emp2 의 deptno 와 dept2의 dcode 숫자 형식이 일치 select * from emp2; select * from dept2..
-
day07 - 오라클 (Equi join 문, not - Equi, outer join, full outer join, self join, Sub Query)KIC/DB 오라클 2021. 7. 10. 18:44
[Equi join] --Oracle join 문법 SCOTT>SELECT sname "3140|E", pname "X/Em-g" FROM students, professor p WHERE s.profno = p.profno AND s.deptno1 = 101; -ANSI Join 문법 SCOTT SELECT s.name "0", p.name "XE+g" FROM student s JOIN professor p ON s.profno = p.profno AND s.deptno1 = 101; (오늘 정보처리기사 시험이 있었는데 Oracle join 방법만 알고 ANSI join 방법은 몰랐는데 시험에 ansi 조인 나와서 틀렸다.. 이제 까먹지 말자) [not - Equi] --Oracle join 문법 S..
-
day06_2 - 오라클 (join 문, Cartesian Product/ 카티션 곱/ CROSS, equi join/등가 조인)KIC/DB 오라클 2021. 7. 1. 00:30
[join 문] -> 조인으로 컬럼수가 늘어난다고 보면 된다. select * from emp; -> row 14개 select * from dept; -> row 4개 select * from emp, dept; - >row 14* 4 개 = 56개 select e.*, d.* from emp e, dept d; [Cartesian Product/ 카티션 곱/ CROSS JOIN] [equi join (등가 조인)] -> 학생의 이름과 학과를 같이 표시하도록 조인을 건다. select s.name, s.deptno1, d.deptno, d.dname from student s, department d where s.deptno1 = d.deptno; [EX1] -- oracle join 문법 selec..
-
day06_1 - 오라클 (group by, rownum, rollup 함수, cube 함수, listagg 함수, lag 함수, lead 함수)KIC/DB 오라클 2021. 7. 1. 00:23
[group by 예제] select deptno count(pay), to_char(round(avg(pay), 2),'999,999.99') "avg", max(pay) "max", min(pay) "min" from processor group by deptno having round(avg(pay)) > 300; 학생의 월별 생일자가 1명인 월을 구하시오. select to_char(birthday, 'mm') 월, count(birthday) 인원수 from student group by to_char(birthday, 'mm') having count(birthday) = 1 order by 월 asc; [rownum] -> where 절에 의해 정해진 순차적인 번호 -> rownum은 메모리..
-
day05 - 오라클 (형변환 함수, 날짜 타입, CASE 함수, Group 함수, group by, having)KIC/DB 오라클 2021. 6. 30. 23:09
[TO_CHAR 함수]아래 예 참조 [날짜 타입] select to_date('2012/3/01', 'yyyy:mon:dd") from dual; select to_date('2012/03/01', 'yyyy:mm:dd') from dual; select to_date('2012/3/01', 'yyyy:mm:dd') from dual; select to_date('20120301', 'yyyy:mm:dd') from dual; select to_date('120301', 'yyyy:mm:dd") from dual; select to_date('120301', 'yy:mm:dd') from dual; select to_date('20120301', 'yy:mm:dd') from dual; [CASE 함수]..