본문 바로가기

2학년/데이터베이스

(14)
database 복습 11(제약조건) 무결성 제약조건_ 잘못된 데이터가 입력되는 것을 방지 5가지 not null, unique, primary key, foreign key + reference, check check 제약조건은 행이 만족시켜야하는 조건을 정의하는 것으로 이 조건을 지정하는 구문은 select 문장의 where 절과 동일한 구조를 사용할 수 있다. 하나의 열에 정의할 수 있는 check 제약 조건의 수에는 제한이 없지만, sysdate, uid, user와 같은 함수의 사용이나 currval, nextval, level 등의 의사열을 참조하도록 생성할 수 없다. 실무에서는 check 제약 조건을 사용하면 데이터 입력, 수정 시 사용자의 실수로 유효하지 않은 값이 입력되는 것을 방지할 수 있다. 회사에서 최저 급여가 80만원..
0529 database on delete cascade /on delete set null on delete cascade: 부모가 사라지면서 자식을 같이 죽임. on delete set null :
0521 SQL> col r_constraint_name format a20 SQL> select table_name, constraint_name, r_constraint_name, status from user_constraints 2 where table_name in ('TEST_PT', 'TEST_CT'); TABLE_NAME CONSTRAINT_NAME R_CONSTRAINT_NAME STATUS -------------------- -------------------- -------------------- ---------------- TEST_CT TEST_CT_NAME_NN ENABLED TEST_CT TEST_CT_ID_PK ENABLED TEST_CT TEST_CT_D_ID_FK TEST_PT..
0515 database
0417database self join outer join 단일 행 서브 쿼리 다중행 서브 쿼리
0410_database using ~ join(기말 시험) iso ANSI SQL에서 낸 조인을 쓰고 있다. AMERICAN NATIONAL STANDARD INSTITUTION : ANSI INTERNATIONAL STANDARD ORGANIZATION : ISO C USING 절을 사용하는 JOIN 문의 작성. 자기 테이블 참조 하는 self 조인의 경우 id_emp는 자기 자신 아이디고, 그 테이블에 mgr_id로 상사코드가 있는데, id로 등록된 상사가 mgr_id로 중복해서 들어가는 경우가 있다. 이 때 자기 자신을 다른 알파벳으로 alias 해서(y랑 m으로..) on(y.id = m.mgr) 하면 중복된 값을 모아서 테이블 하나 만들어 준다. inner join & outer join
0410database_join과 database설계 1. join을 하는 이유 부모 테이블에 종속되어 있는 정보로 자식 테이블에 있는 id라던지, name, sup_id 등을 찾고 싶을 때는 조인해서 찾는것이 쉽기 때문. 2. datatable은 어떻게 짜야 할 까? 캡스톤 디자인 할 때 db 설계를 잘 해야 한다. PK(primary key)를 그냥 숫자 순서대로 해주면, 칼럼이 늘게 되고, 데이터를 찾을 때 더 오래 걸리기 마련이다. 그런데, pk를 의미 있게 1801025 처럼 yy/dept/student number 로 하면 연도, 부서, 학생고유번호 = id 를 한번에 쓸 수 있기 때문에 yy와 dept 칼럼을 추가하지 않아도 되니까 정보를 찾을 때 더 빠르게 찾을 수 있게 되는 것이다. 만약 회사의 경우 yy/gender/dept/birth/ ..
0410_database(cube, rollup, grouping, grouping set, 조합 열_시험) 그룹 함수 ROLLUP? n+1 rollup(a,b) >> a, ab, () CUBE? 2의 멱승 n?? cube(a,b) >> a, b, ab, () cube(a,b,c) >> 8개 : a,b,c,ab,ac,bc,abc,() order by로 정렬한 후에 보는 것이 더 편하다. 왜냐면 그냥 cube 하거나 rollup 하면 무작위로 나오기 때문에 기준별로 보기가 힘들기 때문. grouping 사용되었으면 0 안되었으면 1 grouping set으로 만들면 선별해서 자기가 보고싶은것만 볼 수 있다.