![article thumbnail image](https://blog.kakaocdn.net/dn/brb8LS/btrMPNUNZcV/gm8hyb6h7xyxkwI49kgOhk/img.png)
■제약조건
=> 제약을 주는 조건
=> 조건이라는 걸 주어서 데이터에 무결성을 보장
=> 조건에 맞는 데이터만 저장하게 함
=> 제약조건은 컬럼에 설치
=> 하나의 컬럼에 여러개의 제약조건 설치
not null -> 반드시 값이 있어야 한다.
unique -> 중복을 허용하지 않음, null 허용
primary key -> not null+unique, 테이블을 대표하는 컬럼에 설치,
가장 이상적인 테이블은 한개의 컬럼에 한개의 PK가 설치, 검색 속도 성능 향상
foreign key -> 대른 테이블의 컬럼의 데이터를 참조 -> 테이블과 테이블간의 관계 설정,
참조할 컬럼과 참조한 컬럼의 데이터 타입과 길이가 반드시 같아야 함,
또한 참조할 컬럼은 반드시 pk, uk설치가 되어 있어야함
check -> 사용자가 직접 조건을 만들어서 조건에 맞는 데이터만 삽입
● 제약 조건 지침
- 제약 조건에 이름을 지정하지 않으면 Oracle server가 SyS_Cn형식으 이름을 생성한다.
- 제약 조건 생성 시기
- 테이블이 생성될때
(create table 포함)
- 테이블이 생성된 후에
- 열 레벨 또는 테이블 레벨로 제약조건을 정의.
- 데이터 딕셔너리에서 제약조건을 본다
* not null은 컬럼옆에 붙인다
** 복합 primary key
쇼핑몰에서는 주문내역을 한 주문번호에 여러개의 물품을 사기때문에 컬럼을 복합하여 PK지정을 한다.
● foreign key
● check 제약조건
* 코드 파일저장
save test.sql
(.sql) => 스크립트 파일
* 저장 파일 실행
@test.sql
■ 시퀀스
increment => 증가값
start with => 첫번째 생성되는 시퀀스 넘버
maxvalue => 최대로(마지막) 생성 시퀀스 넘버
nocache => defalut 값
nocycle => 사이클 허용
start with 변경불가
● 인덱스
4-~15%의 데이터를 찾을때 최적의 성능을 발휘한다.
● 뷰
내가 원하는 특정 데이터들만 볼 수 있는 기능
table 물리적 구조 (저장공간 할당)
- data dictionary(구조정보,제약조건정보)
- 실제 data 저장공간
view 논리/가짜/가상 table
- 물리적 구조X (dataX)
- 수정이 없기 때문에 alte는 사용X
- 대신 or replace로 사용
select rownum, last_name, salary
from employees
where rownum < 4
/
select rownum, last_name, salary
from employees
where rownum > 4
/
▲위의 코드는 불가능 아무것도 나오지 않는다./
select last_name, salary
from
(select last_name, salary
from employees
order by salary asc) => 테이블로 사용해서 정렬하고 시작한다.
where rownum<4
/
select department_id, avgsal
from
(select department_id, avg(salary) as avgsal
from employees
group by department_id
order by avg(salary) desc)
where rownum<4
/
■ DCL
DB보안정책
1) 권한이 없는 유저가 DB에 접근하는 것을 방지(인증서..)
2) 권한이 있는 유저가 DB내 불법적인 행위를 방지(제어)
select => 사용자, 개발자, DBA
DML => 개발자, DBA
DDL => 개발자,DBA
DCL => DBA
시스템 권한 100가지 -> DBA
객체 권한 table, view조작 -> DBA,권한소유자
dba
-sysdba
-sysopper
-dba
1. 사용자 생성 -> ID/PW
2. 권한부여 /회수
권한 부여 grant ~ to
grant create session to test
/
▲세션 접속 권한 부여
grant create table to test
/
▲테이블 생성 권한 부여
grant connect, resource to test
/
▲connect, resource 권한 부여
revoke connect, resource to test
/
▲connect, resource 권한 회수
connect => 60가지 db액세스
resource => 40가지 자원액세스
계정잠금
alter user test
account lock;
잠금풀기 => unlock
PS. 지금까지 배웟던 DB를 기초로 하여 SQLD에 접목하여 합격하도록 하자!
'Study > DataBase' 카테고리의 다른 글
Database기초 7일차 <데이터조작 DML> (0) | 2022.09.22 |
---|---|
Database기초 6일차 <서브쿼리> (1) | 2022.09.21 |
Database기초 6일차 <서브쿼리> (0) | 2022.09.20 |
Database기초 5일차 <Group by, Having> (2) | 2022.09.19 |
Database기초 4일차 <예제 및 JOIN> (0) | 2022.09.17 |