[오라클 SQL] 사용자 생성 / 테이블 생성 및 삭제 CREATE, DROP

jychae·2022년 8월 7일
0

SQL

목록 보기
1/5

사용자 생성

  • 오라클데이터베이스를 사용할 user 생성 및 권한 부여
  • 생성
  CREATE USER 유저명 IDENTIFIED BY 암호;
  CREATE USER JY92 IDENTIFIED BY java;
  • 권한 부여
  GRANT 권한명1[,권한명2,...] TO 유저명;
  GRANT CONNECT, RESOURCE, DBA TO JY92;

테이블 생성

  • 데이터 저장을 위한 기본 구조
  • 행(ROW)과 열(COLUMN)으로 구성
  • 생성 : CREATE TABLE
    삭제 : DROP TABLE

1) 테이블 생성 명령

  CREATE TABLE 테이블명(
	컬럼명1 데이터타입[(크기)] [NOT NULL] [DEFAULT 값] [,]
                                :
	컬럼명n 데이터타입[(크기)] [NOT NULL] [DEFAULT 값] [,]
	[CONSTRAINT 기본키설정명 PRIMARY KEY(컬럼명[,컬럼명,...]) [,]
	[CONSTRAINT 외래키설정명1 FOREIGN KEY(컬럼명)
		REFERENCES 테이블명(컬럼명)[,]
                                :
	[CONSTRAINT 외래키설정명1 FOREIGN KEY(컬럼명)
		REFERENCES 테이블명(컬럼명)]); 
  • 테이블명 : 생성하려는 테이블명
  • 컬럼명1~ 컬럼명n : 테이블에 존재하는 컬럼이름
  • 데이터타입 : CHAR, VARCHAR2, NUMBER, DATE, BLOB등 사용
  • DERAULT 값 : 사용자가 데이터 입력시 자료를 정의하지 않았을 때
    자동으로 정의되는 값
  • 기본키설정명 : 기본키설정상태에 부여된 이름으로 절대 중복사용해서는 안됨
  • 외래키설정명 : 외래키설정상태에 부여된 이름으로 절대 중복사용해서는 안됨
  • REFERENCES 테이블명 : 부모테이블명

사용예) 한국건설의 데이터 모델을 테이터 베이스로 구현하시오.

  1. 사원테이블
  CREATE TABLE EMP(
    EMP_ID CHAR(3),
    EMP_NAME VARCHAR2(30),
    TEL_NO VARCHAR2(20),
    JOB_TITLE VARCHAR2(30),
    EEPT_NAME VARCHAR2(50),
    CONSTRAINT PK_EMP PRIMARY KEY (EMP_ID));
  1. 사업장
  CREATE TABLE CONSTRUCTIN_SITE(
    CONST_ID NUMBER(4),
    CONST_NAME VARCHAR2(100),
	ADDRESS VARCHAR2(500),
    REMARKS VARCHAR2(20),
    CONSTRAINT PK_CONST_SITE PRIMARY KEY (CONST_ID));
  1. 사업장자재
  CREATE TABLE CONST_MATERIALS(
    MAT_ID VARCHAR2(5),
    MAT_NAME VARCHAR2(50),
    QTY NUMBER(4),
    COST NUMBER(9),
    BUY_DATE DATE,
    CONST_ID NUMBER(4),
    CONSTRAINT PK_CONST_MATERIALS PRIMARY KEY (MAT_ID),
    CONSTRAINT FK_CMATERIALS_CSITE FOREIGN KEY (CONST_ID)
      REFERENCES CONSTRUCTIN_SITE(CONST_ID));
  1. 근무
  CREATE TABLE work(
    CONST_ID NUMBER(4),
    EMP_ID CHAR(3),
    START_DAY DATE,
    CONSTRAINT PK_WORK PRIMARY KEY(CONST_ID,EMP_ID),
    CONSTRAINT FK_CONST_SITE_WORK FOREIGN KEY (CONST_ID)
      REFERENCES CONSTRUCTIN_SITE(CONST_ID),
    CONSTRAINT FK_EMP_WORK FOREIGN KEY (EMP_ID)
      REFERENCES EMP(EMP_ID));

2) 테이블 삭제 명령

  • DROP TABLE 명령 사용
  • 관계로 연결되어 있는 경우 자식테이블 부터 삭제
  • 관계가 맺어져있는 테이블은 부모테이블 삭제 불가 자식테이블부터 삭제해야 부모삭제가능

사용예) 테이블 EMPLOYEES와 DEPARTMENTS를 삭제하시오.

	-- DROP TABLE DEPARTMENTS;
	-- 오류 보고 
	-- ORA-02449: unique/primary keys in table referenced by foreign keys
	-- 02449. 00000 -  "unique/primary keys in table referenced by foreign keys"
	-- 참조무결성으로 삭제 불가 

  DROP TABLE EMPLOYEES;
  DROP TABLE DEPARTMENTS;
	-- 지우면 완전 그냥 날라가는거 롤백 불가 서로의 관계도 지워졌어 
	--  EMPLOYEES에서 관계 설정이니까 끊었잖아 그래서 DEPARTMENTS 도 지워짐
profile
안녕하세요! 초보개발자 공부 시작!

0개의 댓글