반응형
👇 정리한 SQL파일 및 예제/과제 데이터들은 하단 git 링크에 오시면 있어용 👇
컬럼은 정의할때
컬럼명,속성,제약조건을 정의한다
아이디 : 문자3글자 중복되면 안된다.
등급 : 문자로4바이트로 지정하면 됨, 등급은 입력되는 문자가 정의함
가입날짜 : 년월일 시분초 이고 시스템의 날짜(오라클의 시계)자동으로 받아온다
컬럼은 속성/제약조건/식으로 정의한다
속성 : 문자, 숫자, 날짜 제약조건 : unique , not null, check, default, primary key, foreign key
데이터베이스에서 가장 큰 관심은 속도, 저장속도 검색속도!
create table 회원 ( 아이디 varchar2(3) primary key , 이름 varchar(6) ,
비밀번호 varchar2(4) , 나이 int , 등급 varchar2(4) check(등급 in('vip', 'vvip', '일반')
, 가입날짜
timestamp default sysdate; * 요구사항 충족과 unique를 쓰지않고 기본키로 썼기 때문에 unique, not null, 자동 인덱스 까지 보장된다 *
기본키를 설정하는 법
1. 유일성과 최소성
유일성 : 튜플을 유일하게 식별할 수 있어야 한다
최소성 : 키의 조합에서 유일성을 만족하기 위해 불필요한 속성이 없어야 한다.
2. 키라는 것은 속성의 조합으로 테이블에서 특별한 의미를 가진 속성이다
키의 속성
기본키 : 유일성, 최소성
- 후보키 중에서 하나를 선택, 지금 예제에는 후보키가 1개임으로 아이디로 선택해야함
후보키 : 유일성 , 최소성
- 아이디
슈커피 : 유일성
- 아이디, 이름, 비밀번호, 나이, 등급, 가입날짜/ 아이디&이름 / 아이디&비밀번호
아이디&이름&비밀번호&나이
면접에서 기본키가 무엇인가요 ? 라고 묻는다면
테이블을 구성하는 속성에 unique, not null의 제약조건을 설정하고
인덱스를 형성하여 관리하므로 검색 속도 향상에 이점을 가질 수 있습니다
************ 부모 릴레이션을 참조하는 속성 , 여기서 부모는 소유자 정보 테이블
오후 수업 시작합니다
** 다음 순서에 의해서 테이블의 정보는 바뀝니다
1. B 테이블에 eee 삼지매 튜플을 삽입하는 것은 가능하다 가능
2. A 테이블에 6 ,9999, 승용, 2023-09-03 fff 튜플을 삽입하는 것은 가능하다. 불가능
3. B 테이블에서 aaa 아이디 튜플을 삭제하는 것은 가능하다. 불가능
4. B 테이블에서 bbb 아이디의 소유자 이름을 변경하는 것은 가능하다. 가능
5. A 테이블에서 자동차 번호를 변경하는 것은 가능하다. 가능
6. A 테이블에서 소유자 아이디를 변경하는 것은 가능하다. 가능
7. A 테이블에 7 7777 승용 2023-09-02 aaa 삽입은 가능하다. 불가능
8. A 테이블에 8 12마7777 승용 2023-09-02 aaa 삽입은 가능하다. 불가능
해설 2번 불가한 이유 : fff 라는 아이디는 존재하지 않는다
5번 가능 이유 : 단, 중복불가(기본키 고려)
6번 가능 이유 ; 단, B테이블에 등록된 아이디 범위내
7번 불가한 이유 : 기본키로 설정된 값이 중복됨
8번 불가한 이유 : 기본키 속성값이 문자 4개로 정의
테이블을 관리하는 명령어
create table , drop , alter
튜플을 조작
insert, select, update, delete
Insert 문 기본 형태
INSERT INTO 테이블명 ( 컬럼1, 컬럼2, 컬럼3 ) VALUES ( 값1, 값2, 값3 );
INSERT INTO 테이블명 VALUES ( 값1, 값2, 값3 );
데이터를 삽입할 때엔 기본적으로 테이블 컬럼의 데이터 타입과 입력할 데이터의
타입을 맞추는것이 기본이다.
하지만 맞추지 않아도 성공하는 경우가 있다.
오라클에서 자동으로 데이터변환을 해주었기 때문이다.
이런 부분을 묵시적 형변환 이라고 한다.
예를들어 NUMBER 타입으 ㅣ컬럼에서 '삼성전자' 라는 데이터를 넣으면
에러가 나지만, NUMBER타입에서 '100' 이라는 문자를 삽입 시도할 경우
삽입에 성공한다, 삼성전자 라는 문자열은 숫자로 변환 할 수 없어 에러가 나지만
100이라는 문자열은 숫자 100으로 변환 할 수 있기에 묵시적 형변환이 일어난다
UPDATE 문 기본 형태
테이블에 있는 데이터를 수정할때 UPDATE 문을 사용 합니다.
기본 사용 방법
UPDATE 테이블명
SET
컬럼1 = 변경 값 ,
컬럼2 = 변경 값
….
where = 조건;
DELETE 문 기본 형태
테이블에 있는 데이터를 삭제할 때 DELETE를 사용 합니다.
기본 사용 방법
DELETE FROM 테이블명
WHERE 조건;
ON DELETE CASCADE
삭제 대상 테이블이 부모테이블인 boards , w_no 는 기본키로 되어있지만
자식 테이블인 W_comment 테이블에 w_no 참조되어 있기 때문에
삭제할 수 없다고 나오는 내용이다.
이럴 경우 자식 테이블에 있는 데이터를 삭제 후 부모 테이블에 있는 데이터를 삭제 하면 되지만
부모 테이블의 데이터 제거 시 자식 테이블 데이터도 자동제거되는
ON DELETE CASCADE 를 사용하면 편리하다
사용방법은 과제 칸에 있는 적용 사례 참고
반응형
'📖 Study > 🎈 ᴏʀᴀᴄʟᴇ' 카테고리의 다른 글
2023/09/01 📌 시퀀스란 무엇일까 (0) | 2023.09.10 |
---|---|
2023/08/31 ✏️ 요구분석과 수집방법 (0) | 2023.09.08 |
2023/08/30 🤔 테이블과 부모자식사이 , 너와나의 사이? (1) | 2023.09.08 |
2023/08/28 ✏️ 데이터베이스는 무엇인가 (0) | 2023.09.08 |
2023/08/28 👋 휴먼교육센터 개강시작 (0) | 2023.09.08 |