ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • SQL 개요 & SQL 구문 종류(DDL, DML, DCL)
    Data Base_Oracle/SQL 2019. 12. 30. 22:36

    191230 수업 내용 정리


    SQL (Structured Query Language)

    ▶ 구조적인 쿼리(=검색) 언어 관계 DB를 처리하기 위해 고안된 언어
    독자적인 문법을 갖는 DB 표준 언어 (전세계 표준)
    데이터 관리 언어
    CRUD : 입력, 조회, 수정, 삭제(Create Read Update Delete)

    SQL 구문 종류

    1. DDL (Data Definition Language 데이터 정의어)
      데이터의 구조를 변경할 때 사용
      • create : 생성
        • 계정 생성
          형식) create user 생성할 계정명 identified by 암호명;
          SQL> create user test1 identified by t1234;
          
          ERROR:ORA-01031)
          /* 일반계정은 계정을 생성시킬 권한(자격)이 없기 때문에
          발생하는 에러메시지 => 관리자가 만들어줘야 함 */
          SQL> conn tets1/t1234
          ERROR:ORA-01045) user TEST1 lacks CREATE SESSION privilege; logon denied: 
          /* 권한이 부여되지 않아서 발생하는 오류
          해결책) 계정에 권한을 부여해야함 => DCL에서 다룸 */
        • 테이블 생성
          1. 자료형 지정
            • 문자형 (계산이 불가능한 항목)
              • char(저장 길이) : 고정길이, 데이터의 저장 길이가 정해져 있음 ex) 이름(보통 3글자)
              • varchar(저장 길이) : 가변길이, 데이터의 저장 길이가 다 다름 ex) 집주소, 메일주소, 주민등록번호
                ※ varchar(8) : 알파벳(1byte) 8글자 저장
                한글(2byte) 4글자 저장
              • varchar2() : 오라클에서만 사용
            • 숫자형 (계산이 가능한 항목)
              • number(a) : 정수형 데이터 ex) 나이
              • number(a, b) : 실수형 데이터,
                a자리수 정수의 소수점 b자리까지 저장 ex) 몸무게, 키
          2. 테이블 생성 형식
            SQL> create table 생성 테이블명(
            컬럼명(=필드명) 자료형 제약조건,
            컬럼명(=필드명) 자료형 제약조건,
            ,,,);
          3. 테이블 생성 예제
            SQL> create table prtest(id number(3),name varchar2(10));
            /*prtest라는 table을 생성, 3자리수 숫자값을 갖는 id 필드와 10바이트 용량의 문자를 담는 name 필드를 갖음 */
          4. 테이블 구조 확인
            SQL> desc(ribe) 구조를 확인할 테이블명
            SQL> desc prtest
            -- MySQL에서도 동일한 기능
          5. 테이블 내용 확인(저장된 Data 확인)
            SQL> select 확인할 필드명,,,(*) from 테이블명;
            SQL> select * from prtest; -- 실무에서는 잘 사용 X
            -- '선택된 레코드가 없습니다.'
      • alter : 수정
      • drop : 삭제
    2. DML (Data Manipulation Language 데이터 조작어)
      데이터 내용을 변경할 때 사용
      • insert : 데이터 입력
        형식)
         SQL> insert into 테이블명 values();
          /*필드순으로 저장
             숫자: 숫자
          문자열: '문자열' 작은따옴표만 사용!!
             날짜 : '2019-12-30'
             ex) 회원가입, 게시판 글쓰기*/
        예제)
         SQL> insert into prtest values(1, '홍길동');
         -- 1개의 행이 만들어졌습니다. (정상적으로 자료가 저장됨)
    • update : 잘못 저장 됐거나 변경되어야할 데이터 수정
      형식)
      /* 1) 선택 field 내의 모든 데이터를 하나의 값으로 수정,
          사용 빈도 낮음 */
      SQL> update 수정할table명 set 수정할field명=수정할값,
      수정할field명2=수정할값2;
      /* 2) where 조건식 : 조건에 만족하는 데이터를 찾는 방법
          주로 사용하는 방법 */
      SQL> 검색할 대상자(=주로 필드명) 연산자 찾을값
      예제)
      SQL> update prtest set name='임시테스트' where id=3;
      /* id가 3번인 데이터의 name을 '임시테스트'로 변경하라 */
      SQL> update prtest set name='임시테스트' where name='임시';
      /* name이 '임시'인 값을 '임시테스트'로 변경
          => 동명이인이 있을 경우 전부 변경됨
           ∴ 데이터가 단 하나만 나올 수 있도록 
             조건식을 잡아주는 것이 중요*/     
    • delete : 데이터 삭제
      형식)
       SQL> delete from 삭제할 테이블명;
        --해당 테이블에 저장된 모든 데이터 삭제
      SQL> delete from 삭제할 테이블명 where 조건식;
        --조건식을 만족하는 값을 삭제
      예제)
      SQL> delete from prtest where id=5;
        --id가 5인 row를 테이블에서 삭제

    DQL (Data Query Language 데이터 검색어)

    • select : 데이터 조회/검색 _일반적으로 DML에 포함됨, 구분하기도 함
      SQL> select * from tab; --현재 작업중인 모든 table을 보여줌
      -- 형식)
      SQL> select * from 테이블명;
      /* * : 전체선택자,
          필드명을 사용하면 해당 필드의 값들을 보여줌 */
    1. DCL (Data control Language 데이터 권한 부여어)
      1. 계정 생성, 암호 부여
      2. 적절한 권한 부여
        • 로그인 (create session[connect] 권한)
        • 컴퓨터 작업 : 데이터 CRUD (Resource 권한 = 롤[group])
      • grant : 권한 부여
        형식) grant 권한종류1,권한종류2,,, to 계정명1,계정명2 ,,,,
        to public : 모든 계정들에게 부여할 경우에 사용, 잘 사용X
        SQL> grant create session,resource to test1;
        == SQL> grant connect,resource to test1;
        /*create session(connect) : 로그인 권한
        resource : 데이터 관리 권한(create table보다 넓은 범위)*/
      • revoke : 권한 회수
        형식) revoke 회수할 권한종류,,, from 부여한 계정명
        	SQL> revoke create session,resource from test1;
        	-- test1 계정의 로그인, 데이터 관리 권한을 회수함

    ※ SQL 명령을 마치기 위해서는 모든 문장 끝에 ;(세미콜론)을 사용해야 함

    • 예제
      	SQL> select * from tab; -- sql 문법
              TNAME ~  -- 반환값 

    SQL 구문 종류에 따른 CRUD 명령어들을 익혀야 앞으로의 과정도 수월하게 따라갈 수 있을 것입니다.

    댓글

Designed by Tistory.