본문 바로가기
Back/Database

SQL 기본 개념(테이블 생성 및 변경, 컬럼 생성 및 변경)

by 시월해 2021. 3. 26.

-- sql developer에서 주석문


 오라클에서 속성에 들어가는 주요 자료형(data type)


 1. number(n, n1) : n - 전체 자릿수 / n1 - 소숫점 자릿수 / n - n1 : 정수 자릿수
    예) number(7, 2) : 전체 자릿수는 7자리이고, 정수는 5자리, 실수 2자리

 2. char(n) : 문자열 n개가 저장되는 자료형. ==> 고정 자료형.

 3. varchar(n) : 문자열 n개가 저장되는 자료형. ==> 현재는 사용하지 않는 자료형

 4. varchar2(n) : 문자열 n개가 저장되는 자료형. ==> 가변 자료형.
                  한글은 무조건 한 글자당 2바이트씩 소모.
                    
 5. date : 날짜가 저장되는 자료형. ==> 시스템의 현재 날짜 및 시간 저장.

- 중요 개념

 무결성(integrity) : 데이터베이스에 저장된 데이터 값과 그것이 표현하는 현실 세계의 실제 값이
                   일치하는 정확성을 의미함.
                      
 무결성 제약조건 : 데이터베이스에 저장된 데이터의 정확성을 보장하기 위해서 정확하지 않은
                데이터가 데이터베이스 내에 저장되는 것을 방지하기 위한 조건.

 


- 데이터베이스 상에서 제약 조건의 종류

 1. unique 제약 조건 : 중복이 되면 안되는 조건.

 2. not null 제약 조건 : 공백이 허용하지 않는 조건.

 3. check 제약 조건 : 특정한 값이 아닌 데이터가 들어오지 못하게 하는 조건.

 4. primary key 제약 조건 : unique + not null 제약 조건 ==> 기본키 제약 조건.
    기본키는 해당 테이블을 대표하는 컬럼으로서의 역할을 수행하며,
    다른 테이블에서 외래키들이 참조할 수 있는 키로서의 자격을 가진다. 이를 참조 무결성이라 함.

 



학생 테이블을 만들어 보자.

구성 요소(컬럼/속성) : 학번, 이름, 학과, 학년, 나이, 연락처, 주소, 입학일(등록일)

 create table 테이블 이름(
    학번 자료형(크기) {제약 조건},
    이름 자료형(크기) {제약 조건},
    학과 자료형(크기) {제약 조건},
    학년 자료형(크기) {제약 조건},
    나이 자료형(크기) {제약 조건},
    연락처 자료형(크기) {제약 조건},
    주소 자료형(크기) {제약 조건},
    입학일(등록일) 자료형(크기) {제약 조건}
 );

CREATE TABLE student (
    hakbun  VARCHAR2(12) PRIMARY KEY,
    name    VARCHAR2(30) NOT NULL,
    major   VARCHAR2(30) NOT NULL,
    year    NUMBER(1),
    age     NUMBER(3),
    phone   VARCHAR2(20) NOT NULL,
    regdate DATE NOT NULL
);



- 테이블에 컬럼을 추가
 형식) ALTER TABLE 테이블명 ADD(컬럼명 데이터타입(크기) 제약조건);

-- student 테이블에서 누락된 주소 컬럼을 추가해 보자.
ALTER TABLE student ADD(address VARCHAR2(200));



- 테이블의 컬럼을 수정(자료형 수정)
 형식) ALTER TABLE 테이블명 MODIFY(컬럼명 데이터타입(크기));

ALTER TABLE student MODIFY(age VARCHAR2(3));



- 테이블의 컬럼명을 변경하기
 형식) ALTER TABLE 테이블명 RENAME COLUMN 기존컬럼명 to 변경컬럼명;

ALTER TABLE student RENAME COLUMN address to addr;



- 테이블의 컬럼을 삭제하기
형식) ALTER TABLE 테이블명 DROP COLUMN 컬럼명;

ALTER TABLE student DROP COLUMN age;
ALTER TABLE student ADD(age NUMBER(3));

 



- student 테이블에 데이터를 추가해 보자
  형식) INSERT INTO 테이블명 VALUES('학번','이름','학과',학년,'연락처',sysdate,'주소',나이);

INSERT INTO student
VALUES('2021_001','홍길동','경제학과',3,'010-1111-1234',sysdate,'서울시 마포구',27);

 

  형식2) INSERT INTO 테이블명(학번컬럼명, 이름컬럼명, 학과컬럼명, ...) VALUES(학번데이터, 이름데이터, 학과데이터, ...); : 컬럼과 데이터들의 순서를 짝 맞춰서 입력해야 한다.

INSERT INTO student(hakbun, name, major, phone, regdate)
VALUES ('2021_002','유관순','회계학과','010-2222-2345',sysdate);


- student 테이블의 특정 컬럼을 수정(데이터) 해 보자.
  형식) UPDATE 테이블명 
         SET 컬럼명 = 컬럼수정내용
         WHERE PRIMARY로 설정된 컬럼명 = 컬럼데이터

UPDATE student SET addr = '충청남도 천안시' WHERE hakbun = '2021_002';
UPDATE student
SET year = 2, phone = '010-6666-6789', addr = '서울시 서초구', age = 28
WHERE hakbun = '2021_005';


- student 테이블의 특정 데이터를 삭제해 보자.
  형식) DELETE FROM 테이블명 WHERE PRIMARY로 설정된 컬럼명 = 컬럼데이터

DELETE FROM student WHERE hakbun = '2021_004';


- student 테이블의 모든 데이터를 삭제하는 방법.
  형식) DELETE FROM 테이블명;

DELETE FROM student;

 



- DB에 완벽하게 적용시키고자 할 때 사용하는 키워드.

COMMIT;


- DB에 적용시키고 싶지 않을 때 사용하는 키워드.

ROLLBACK;

 


-- 현재 계정(web)에 있는 모든 테이블을 보여주세요.
SELECT * FROM TAB;

 

-- emp 테이블의 모든 컬럼을 화면에 보여주세요.
SELECT * FROM emp;



-- emp 테이블에서 empno, ename, job, deptno 컬럼을 화면에 보여주세요.
-- 형식) SELECT 컬럼명1, 컬럼명2, ... FROM emp;

SELECT empno, ename, job, deptno FROM emp;

 

'Back > Database' 카테고리의 다른 글

GROPU BY  (0) 2021.04.07
서브 쿼리(SUB QUERY)  (0) 2021.04.07
Oracle(SQL) 기본 제공 함수  (0) 2021.04.07
SQL JOIN  (0) 2021.03.31
SQL NVL, LITERAL, AS, DISTINCT, WHERE절 활용  (0) 2021.03.26