🐲기본개념
- P (Primary Key): 해당 열이 기본 키임을 나타낸다. 기본 키는 테이블 내에서 각 행을 유일하게 식별하는 데 사용된다. 원칙은 수정이 가능하지만, 외래키로 설정(자식이 있을때)되있을 때는 수정 불가하다.
- U (Unique Key): 해당 열이 고유 키임을 나타낸다. 고유 키는 중복된 값을 허용하지 않지만, 기본 키와는 달리 NULL 값을 허용할 수 있다.
- F (Foreign Key): 해당 열이 외래 키임을 나타낸다. 외래 키는 다른 테이블의 기본 키를 참조하여 두 테이블 간의 관계를 형성한다.
- *: 해당 열에는 NOT NULL임을 의미한다. 필수입력해야하는 셀이다
🐲테이블 생성
1. 테이블 복사
1)테이블 구조,데이터 전부 복사, 제약조건,모델링은 일부만 복사(NOT NULL)
CREATE TABLE EMP1
AS
SELECT*FROM HR.EMPLOYEES;
2)구조 복사, 데이터는 50번, 80번 부서만 복사
CREATE TABLE EMP2
AS
SELECT*FROM HR.EMPLOYEES
WHERE DEPARTMENT_ID IN (50,80);
3)구조만 복사, DATA 빼고
CREATE TABLE EMP3
AS
SELECT*FROM HR.EMPLOYEES
WHERE 1=0;
4)구조만 복사된 TABLE EMP3에 DATA 만 추가
CREATE TABLE EMP4
AS
SELECT*FROM HR.EMPLOYEES
WHERE 1=0; --DATA가 없는 테이블 생성
INSERT INTO EMP4
SELECT*FROM HR.EMPLOYEES;
COMMIT; -- DATA 만 추가
5)일부칼럼만 복사해서 새로운 테이블 생성
CREATE TABLE EMP5
AS
SELECT EMPLOYEE_ID EMPID,
FIRST_NAME||' '||LAST_NAME ENAME,
SALARY SAL,
SALARY*COMMISSION_PCT COMM,
MANAGER_ID MGR,
DEPARTMENT_ID DEPTID
FROM HR.EMPLOYEES;
2. SQLDEVELOPER 메뉴에서 테이블을 생성
KYJ계정 아래에 있는 테이블메뉴를 우클릭->새테이블->TABLE3 생성
결과
EMPID NUMBER(6,0) No
ENAME VARCHAR2(30 BYTE) No
TEL VARCHAR2(20 BYTE) Yes
EMAIL VARCHAR2(320 BYTE) Yes
3. SQL SCRIPT 로 테이블 생성
CREATE TABLE TABLE2 (
EMPID NUMBER(6,0) NOT NULL PRIMARY KEY,
ENAME VARCHAR2(30 BYTE) NULL,
TEL VARCHAR2(20 BYTE) NULL,
EMAIL VARCHAR2(320 BYTE)
);
🐲테이블 제거
영구적으로 구조와 데이터가 제거된다.
DROP TABLE EMP1;
DROP되는 테이블이 부모테이블일 경우 자식을 먼저 지워야 삭제가능
HR 서버에서 DROP TABLE DEPARTMENTS; --삭제가 안된다.
⚠️오류보고-
ORA-02449:외래 키에 의해 참조되는 고유/기본 키가 테이블에 있습니다
02449. 00000 - "unique/primary keys in table referenced ny foreign keys"
DROP TABLE 테이블명 CASCADE;
💡 CASACADE를 이용해서 RELATIONSHIP에 상관없이 삭제가능
🐲테이블 (구조)변경
1. 칼럼추가
ALTER TABLE EMP5
ADD ( LOC VARCHAR2(6) ); -- 추가된 DATA NULL
변경 사항 확인은 새로 고침하라
2. 칼럼제거
ALTER TABLE EMP5
DROP COLUMN LOC;
3. 데이블 이름 변경
RENAME EMP4 TO NEWEMP;
4. 칼럼 이름 변경
ALTER TABLE TABLE2 RENAME COLUMN ENAME TO NAME;
5. 칼럼속성변경 : 크기를 늘이거나 줄인다
ALTER TABLE EMP5
MODIFY ( ENAME VARCHAR2(60) ); -- 46 -> 60
'SQL' 카테고리의 다른 글
[SQL]PIVOT(행을 열로 전환) (4) | 2024.09.06 |
---|---|
[sql]제약조건, 데이터 삽입∙수정∙삭제 (2) | 2024.09.05 |
[sql]오라클 계정생성 (0) | 2024.09.05 |
[SQL]WINDOW FUNCTION(윈도우 함수),분석함수(Analytic Function) (0) | 2024.09.04 |
[sql] 계층형 쿼리(Hierarchical Query) (0) | 2024.09.04 |