Backend/Oracle DB

03. SQL 기초(DCL, DDL, DML)

개발개발빈이 2022. 5. 13. 19:43

○ SQL문

    - Stored Query Language
    - 어떻게 작업을 수행할지가 아니라 무엇을 해야할지에 관해 정의하는 결과중심적 언어
    - 절차적은 아님 ( cf. 자바는 절차적언어)
    - SQL 명령어는 대소문자를 구분하지 않는다
    - 주석 --
    - ANSI SQL문 : 표준SQL문, DBMS의 종류에 제약을 받지 않음

 

○ SQL문의 종류

    - DCL, DDL, DML

        ① DCL (Data Control Language, 제어어)

           - 사용자가 별로 쓸일 없음. 호스팅업체가 주로 사용
           - grant 사용자 접근 권한부여
           - revoke 사용자 접근 권한 취소
           - deny 특정사용자만 접근차단

        ② DDL (Data Definition Language, 정의어)

           - DB및 TABLE에 대한 정의
           - Create 생성
           - Drop 삭제
           - Alter 수정

        ③ DML (Data Manipulation Language, 조작어)

           - 레코드작업
           - insert 삽입
           - update 수정
           - delete 삭제
           - select 조회 및 검색

 

○ 스키마 Schema

    - 데이터베이스의 구조와 제약조건에 관한 전반적인 명세를 기술한 것
    - 관계형 데이터베이스의 저장 기본 단위
    - 테이블

 

 


sungjuk(성적) 테이블 만들기

○ DDL

    ① 테이블 생성

        - 형식)

                create table 테이블명(  테이블명은 식별자(한글X 공백X)
                    칼럼명1 자료형 제약조건
                    ,칼럼명2 자료형 제약조건
                    ,칼럼명3 자료형 제약조건
                    ,~~~
                );

        - 데이터베이스에서 칼럼의 순서는 의미가 없다

        - sungjuk 테이블 생성

create table sungjuk(
    uname varchar(20)  -- 영문자10글자 이내까지 입력가능 (varchar 문자열 나타냄)
    ,kor int           -- 정수형
    ,eng int
    ,mat int
    ,aver int
    ,addr varchar(20)
    ,wdate date
);

 

    ② 테이블 삭제

        - 형식) drop table 테이블명;

        - sungjuk 테이블 삭제

drop table sungjuk;

     테이블 수정

        - alter : 테이블의 구조 수정 및 변경

            ① 칼럼 추가

                형식) alter table 테이블명 add(칼럼명 데이터타입);

            ② 칼럼명 수정

                형식) alter table 테이블명 rename column 원래칼럼명 to 바꿀칼럼명;

            ③ 칼럼 데이터타입 수정

                형식) alter table 테이블명 modify(칼럼명 데이터타입);

            ④ 칼럼 삭제

                형식) alter table 테이블명 drop(칼럼명);

--music칼럼 추가
alter table sungjuk add(music int null);

-- 국어칼럼 kor을 korea칼럼명으로 수정하시오
alter table sungjuk rename column kor to korea;

-- music칼럼의 데이터타입을 varchar로 수정하시오
alter table sungjuk modify(music varchar(5));


-- music칼럼을 삭제하시오
alter table sungjuk drop(music);

 

 

○ DML : CRUD 작업

    - 관계형DB에서 테이블의 핵심기능(CRUD)

        - C Create   생성 → insert문 (테이블이 있다는 전제하에)
        - R Read     조회 → select문
        - U Update  수정 → update문
        - D Delete   삭제 → delete문

 

     행추가

        - 형식)

                insert into 테이블명(칼럼명1, 칼럼명2, 칼럼명3, ...)
                values (값1, 값2, 값3, ...);

insert into sungjuk(uname, kor, eng, mat, addr, wdate) 
values('황대헌', 100, 100, 100, 'Jeju', sysdate);  --데이터베이스에서 문자열 데이터는 '(작은 따옴표)로 감싼다

insert into sungjuk(uname, kor, eng, mat, addr, wdate) 
values('이준서', 50, 55, 60, 'Busan', sysdate);

insert into sungjuk(uname, kor, eng, mat, addr, wdate) 
values('김동욱', 95, 95, 35, 'Jeju', sysdate);

insert into sungjuk(uname, kor, eng, mat, addr, wdate) 
values('곽윤기', 80, 85, 90, 'Suwon', sysdate);

insert into sungjuk(uname, kor, eng, mat, addr, wdate) 
values('박장혁', 60, 40, 30, 'Seoul', sysdate);

 

     조회 및 검색

        - 형식)

                 select 칼럼명1, 칼럼명2, 칼럼명3, ...
                 from 테이블명;

select uname, kor, eng, mat from sungjuk;

 

     행수정

        - 형식) update 테이블명 set 칼럼명1=값1, 칼럼명2=값2, 칼럼명2=값2...

update sungjuk set aver=(kor+eng+mat)/3;

 

    행삭제

        - 형식) delete from 테이블명;

delete from sungjuk;