분류 전체보기
-
SQL_Non-Equi Join & Outer JoinData Base_Oracle/SQL 2020. 1. 6. 22:21
Non-Equi Join 두 개 이상의 테이블에 동일 칼럼이 없을 때 다른 조건식을 사용하여 데이터를 조회하는 Join 형식 # 예제 ▷ salgrade 테이블 구조, 레코드 확인 [ SQL> select * from salgrade; ] GRADE LOSAL HISAL 1 700 1200 2 1201 1400 3 1401 2000 4 2001 3000 5 3001 9999 { 문제 } ▷ emp테이블에서 사번, 이름, 업무, 급여 출력 salgrade 테이블에서 grade 출력 grade 내림차순으로 정렬 조회시마다 부서번호를 입력받도록 작성 ▶ SQL> select empno, ename, sal, grade from emp e, salgrade s where e.sal between s.losal ..
-
SQL_Equi Join & Self JoinData Base_Oracle/SQL 2020. 1. 6. 22:11
Equi Join - 3개 이상의 테이블에서 ※ 테이블 설계를 하는 이유( 정규화, 모델링 ) 하나의 테이블에 필드 개수가 너무 많아짐 → 데이터 입/출력이 불편 → 검색속도가 느려짐 → RDBMS 관계형 데이터베이스로 위의 단점들을 회피 § 형식 각 테이블의 primary key 확인 join 하고자 하는 테이블의 연관된 필드 확인 where 조건식 : [ join 테이블 수 - 1 ]개의 조건식으로 연결 # 예제 - 3개 이상의 테이블 ▷ bonus테이블에 데이터 입력 [ SQL> insert into bonus values('SMITH', 'CLERK', 800, null) insert into bonus values('ALLEN', 'SALESMAN', 1600, 300) insert into b..
-
SQL_Inner Join(Equi Join) & 테이블 별칭 부여Data Base_Oracle/SQL 2020. 1. 6. 22:01
Inner Join 검색하고자 하는 두 테이블의 레코드 총량이 비슷할 때 사용 두 테이블간의 교집합을 찾는 것 종류 설명 Equi Join 연관된 테이블에 동일한 칼럼이 있을 때 사용 Self Join 자기 자신의 table 내의 필드를 참조해서 데이터를 조회할 때 사용 Equi Join 동등 Join이라고 하며, 동일한 칼럼을 기준으로 데이터를 조회할 때 사용 where조건식에서 = 연산자를 사용함 § 형식 [ SQL> select 필드명, 필드명2, 테이블명.필드명,,,, from 테이블명, 테이블명2,,,, where 조건식 ] ※ where 조건식으로 중복된 데이터를 배제 # 예제 ▷ ALLEN의 사원번호, 이름, 부서번호, 부서이름, 부서위치 조회 부서번호가 같은 값을 조회해서 중복된 데이터를 ..
-
SQL_Join 개요 & Cross JoinData Base_Oracle/SQL 2020. 1. 6. 21:51
JOIN 두 개 이상의 테이블에서 원하는 데이터들을 중복된 데이터가 없도록 조회하는 방법 JOIN 종류 종류 설명 inner join 검색하고자 하는 두 테이블의 레코드 총량이 비슷할 때 사용 주로 많이 사용됨 equi join inner join에 포함되며, 연관된 테이블에 동일한 칼럼이 있을 때 사용 self join inner join에 포함되며, 자기 자신의 table 내의 필드를 참조해서 데이터를 조회할 때 사용 non-equi join 조회하려는 테이블 간에 동일한 칼럼이 없을 때 사용 outer join 두 테이블의 레코드 총량이 비대칭일 때 사용 cross join 조회하려는 복수의 테이블 내 필드들을 단순히 나열 ansi join 표준 SQL인 Ansi를 이용한 Join으로 Inner/O..
-
SQL_Constraint Enable / DisableData Base_Oracle/SQL 2020. 1. 6. 21:43
§ 제약조건 활성화 / 비활성화 ※ Data Dictionary 로그인 상태에서 작업한 내용이 전부 테이블 형태로 기록됨 Oracle 자체에서 제공하는 기능이며, System Table에 저장됨 user_XXX : 로그인한 계정들로 조회 가능 ex) desc user_constraints dba_XXX : 관리자만 조회 가능 all_XXX : 관리자 / 일반 계정 조회 가능 # 예제 ▶ 제약조건 테이블 구조 확인 _ scott 계정 [ SQL> desc user_constraints ] 이름 널? 유형 ... ... ... CONSTRAINT_NAME 제약조건 이름 NOT NULL VARCHAR2(30) CONSTRAINT_TYPE 제약조건 종류 VARCHAR2(1) TABLE_NAME 테이블 이름 NO..
-
SQL 제약조건 Foreign KeyData Base_Oracle/SQL 2020. 1. 4. 16:27
Foreign Key_외래키참조 무결성 강화 규칙, 연관된 테이블의 필드 레코드를 참조해서 값이 있으면 데이터 저장을 허용하고, 그렇지 않으면 에러를 유발시켜서 올바른 값이 저장되도록 설정하는 제약조건§ 형식[ SQL> alter table 수정table명 add constraint 제약조건이름 foreign key(자기 테이블의 필드명) references 참조테이블명(참조할 필드명); ]# 예제▶ dept_부서 테이블 생성 [ SQL> create table dept(deptno number primary key, dname varchar2(20) not null, loc varchar2(15) not null ); SQL> insert into dept values(10, '영업부', '서울'); ..
-
SQL 제약조건 Check & DefaultData Base_Oracle/SQL 2020. 1. 4. 16:14
Check 개발자가 정의하는 제약조건, 상황에 따라 다양한 제약조건 설정 가능 § 형식 [ SQL> ~~~ 제약조건이름 check(범위지정 or 문자열 지정)] check(age >= 20 and age alter table b_prtest add constraint b_prtest_ck_age check(age >= 20 and age insert into b_prtest values(3, '테스트', 123, '서울시 강남구'); 1행에 오류: ORA-02290: 체크 제약조건(TEST1.B_PRTEST_CK_AGE)이 위배되었습니다 ] ▶ [ SQL> insert into b_prtest values(3, '테스트', 23, '서울시 강남구'); 1 개의 행이 만들어졌습니다. ] Default 기본..
-
SQL 제약조건 Primary Key & UniqueData Base_Oracle/SQL 2020. 1. 4. 15:57
Primary Key_기본키 테이블의 행을 구분하는 키워드로 사용 Not null + Unique index key 자동으로 부여 반드시 데이터를 입력해야 하면서 값이 중복되면 안되는 필드에 적용 ※ index key : 책갈피와 유사한 역할, 검색속도를 향상시킴 ex) ID, 사원번호(empno), 주민등록번호, 이메일 등 # Primary Key 추가 예제 [ SQL> alter table b_prtest add constraint b_prtest_pk_id primary key(id); SQL> desc b_prtest ] 이름 널? 유형 ID NOT NULL NUMBER(5) IRUM VARCHAR2(30) # Primary Key 중복 오류 예제 ▷ b_prtest 테이블의 모든 데이터 삭제 [..