본문 바로가기
Back-End/Database

[SQL] 기본 개념(테이블 생성 및 변경, 컬럼 생성 및 변경, 테이블의 컬럼 화면에 출력)

by 찐코딩 2021. 10. 4.

sql developer 에서의 주석문 처리

 

sql developer 에서의 주석문 처리

--


/*
2줄 이상 여러줄 주석
*/

 

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

 

 1. number(n, n1) : n - 전체 자릿수 / n1 - 소숫점 자릿수 / n - n1 : 정수 자릿수 
    예) number(7, 2) : 전체 자릿수는 7자리이고, 정수는 5자리, 실수 2자리 
    ※ +- 38자리수까지 숫자를 저장할 수 있음

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

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

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

 



중요 개념 

무결성(integrity)

데이터베이스에 저장된 데이터 값과 그것이 표현하는 현실 세계의 실제 값이 일치하는 정확성을 의미함. 

 

무결성 제약조건

데이터베이스에 저장된 데이터의 정확성을 보장하기 위해서 정확하지 않은 데이터가 데이터베이스 내에 저장되는 것을 방지하기 위한 조건. 
                
 

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

https://jinnnkcoding.tistory.com/84

 

[SQL] 컬럼 속성(제약 조건)

컬럼 속성(제약 조건) 테이블에 부적합한 자료가 입력되는 것을 방지하기 위해서 테이블을 생성할 때 각 컬럼에 대해서 정의하는 여러 가지 규칙을 정한 것. 1) not null 2) unique 3) primar

jinnnkcoding.tistory.com

 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(컬럼명 데이터타입(크기) 제약조건); 

alter table student add(address varchar2(200));

 

테이블의 컬럼의 자료형을 수정

-- 형식) ALTER TABLE 테이블명 MODIFY(컬럼명 데이터타입(크기));

alter table student modify(age varchar2(3));

 

테이블의 컬럼명을 수정

-- 형식) alter table 테이블이름 rename clolumn 기존컬럼명 to 세로운 컬럼명;

alter table student rename column address to addr;

 

테이블의 컬럼을 삭제

-- 형식) ALTER TABLE 테이블명 DROP COLUMN 컬럼명;

alter table student drop column age;

 

테이블에 데이터를 추가_2가지 방식

방식1) 전체 컬렴의 데이터를 추가하고 싶을 때

--  형식) INSERT INTO 테이블명 VALUES('학번','이름','학과',학년,'연락처',sysdate,'주소',나이);

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

 

방식2) 일부 컬럼의 데이터를 추가하고 싶을 때           

--형식2) INSERT INTO 테이블명(학번컬럼명, 이름컬럼명, 학과컬럼명, ...) VALUES

(학번데이터, 이름데이터, 학과데이터, ...);

단, 컬럼명과 데이터들의 순서를 짝맞춰서 입력해야 한다.

insert into student(hakbun, name, major, phone, regdate)
values 
('2021_002', '유관순', '경영학과', 3, '010-1111-1234', sysdate);

 

테이블의 특정 데이터를 수정

 -- 형식) UPDATE 테이블명 
         SET 컬럼명 = 컬럼수정내용
         WHERE PRIMARY로 설정된 컬럼명 = 컬럼데이터

UPDATE student
SET year = 4, phone = '010-1111-2222', addr = '서울시 종로구', age = 28
WHERE hakbun = '2021_001';

 

테이블의 특정 데이터를 삭제

-- 형식) DELETE FROM 테이블명 WHERE PRIMARY로 설정된 컬럼명 = 컬럼데이터

DELETE FROM student WHERE hakbun = '2021_001';

 

테이블의 모든 데이터를 삭제

--  형식) DELETE FROM 테이블명;

DELETE FROM student;

 

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

COMMIT;

 

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

ROLLBACK;

 

현재 계정(web)에 있는 모든 테이블을 화면에 띄울 때

형식) SELECT * FROM TAB;

 

테이블의 모든 컬럼을 화면에 띄울 때

형식) SELECT * FROM 테이블명;

 

테이블의 특정 컬럼만 화면에 띄울 때

형식) SELECT 컬럼명1, 컬럼명2, ... FROM 테이블명;

 

심화 예문)

EMP 테이블과 그의 데이터를 아래와 같이 생성하고, 

해당 테이블에서 사번(EMPNO), 이름(ENAME), 급여(SAL), 보너스(COMM), 급여+보너스를 화면에 출력해보자

SELECT empno, ename, sal, comm, sal+comm FROM emp;

SAL+COMM이라는 컬럼은 없었는데 새로 생성되었으며,

NULL 값을 가지는 컬럼을 다른 컬럼과 연산을 하면 모두 NULL로 처리 되는 것을 확인할 수 있다.

이 해결책은 다음 포스팅에서 다룰 예정이다.

댓글