ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [포스코x코딩온] 데이터베이스(SQL문(DDL,DML,DCL)
    [포스코x코딩온] 웹개발자 풀스택 부트캠프8기 2023. 8. 4. 23:01
    728x90

    데이터베이스

    기본적인 명령어

    • 데이터베이스 목록 보기
      • SHOW DATABASES;
    • 데이터베이스 이용하기
      • USE 데이터베이스명;
    • 테이블 목록 보기
      • SHOW TABLES;
    • 테이블 구조 보기
      • DESC 테이블명;

    SQL문에 대해 자세히 알아보자

    SQL문

    • Structured Query Language
    • 구조적 질의 언어
    • 데이터베이스를 제어하고 관리할 수 있는 목적의 프로그래밍 언어
    • DDL(Data Definition Language)
    • DML(Data Mainpulation Language)
    • DCL(Data Control Language)
    • 데이터 형식
      • 문자형
        • CHAR(n): 고정 길이 데이터 타입(최대 255byte)- 지정된 길이보다 짧은 데이터가 입력될 시 나머지 공간은 공백으로 채워진다.
        • VARCHAR(n): 가변 길이 데이터 타입(최대 65535byte)- 지정된 길이보다 짧은 데이터가 입력될 시 나머지 공간은 채우지 않는다.
        • TINYTEXT(n): 문자열 데이터 타입(최대 255byte)
        • TEXT(n): 문자열 데이터 타입(최대 65535byte)
        • MEDIUMTEXT(n): 문자열 데이터 타입(최대 16777215byte)
        • LONGTEXT(n): 문자열 데이터 타입(최대 4294967295byte)
      • 숫자형
        • TINYINT(n): 정수형 데이터 타입(1byet) -128~ +127 또는 0 ~255수 표현 가능
        • SMALLINT(n): 정수형 데이터 타입(2byet) -32768~ +32767 또는 0 ~655536수 표현 가능
        • MEDIUMINT(n): 정수형 데이터 타입(3byet) -8388608~ +8388607 또는 0 ~16777215수 표현 가능
        • INT(n): 정수형 데이터 타입(4byet) -2147483648~ +2147483648 또는 0 ~4294967295수 표현 가능
        • BIGINT(n): 정수형 데이터 타입(8byte)= 무제한 수 표현 가능
        • FLOAT(길이, 소수): 부동 소수형 데이터 타입(4byte)- 고정 소수점을 사용 형태
        • DECIMAL(길이, 소수): 고정 소수형 데이터 타입고정(길이+1byte) - 소수점을 사용 형태
        • DOUBLE(길이, 소수): 부동 소수형 데이터 타입(8byte) -DOUBLE을 문자열로 저장
      • 날짜형
        • DATE: 날짜(년도, 월, 일) 형태의 기간 표현 데이터 타입(3byte)
        • TIME: 시간(시, 분, 초) 형태의 기간 표현 데이터 타입(3byte)
        • DATETIME: 날짜와 시간 형태의 기간 표현 데이터 타입(8byte)
        • TIMESTAMP: 날짜와 시간 형태의 기간 표현 데이터 타입(4byte)- 시스템 변경 시 자동으로 그 날짜와 시간이 저장된다.

    DDL

    • 데이터베이스나 테이블을 정의하는 언어
    • CREATE 
      • 데이터베이스 만들기 + 한글 인코딩
        • CREATE DATABASE 이름 DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
      • 테이블 만들기 
        • CREATE TABLE 테이블명(필드1 값(데이터)형식, 필드2 값(데이터)형식 );
        • 형식에 auto_increment를 사용하면 인덱스 번호가 자동으로 증가 된다.

    데이터베이스 생성, 확인 및 이동
    테이블 생성 및 확인

    • ALTER
      • 테이블의 특정 컬럼(열)을 삭제하거나 추가, 변경할 때 사용하는 명령어
      • 컬럼 삭제
        • ALTER TABLE 테이블명 DROP COLUMN 컬럼명;
      • 컬럼 추가
        • ALTER TABLE 테이블명 ADD 컬럼명 타입;
      • 컬럼 속성 변경
        • ALTER TABLE 테이블명 MODIFY 컬럼명 타입;

    컬럼 추가
    컬럼 속성 변경
    컬럼 삭제

     

    • DROP
      • 테이블 삭제하기
      • 테이블을 잘못 만들었거나 더 이상 필요 없는 경우
      • DROP TABLE 테이블명;
    • TRUNCATE
      • 테이블 초기화하기(테이블의 모든 행(row) 일괄 삭제)
      • TRUNCATE TABLE 테이블명;

    DML

    • 데이터베이스의 내부 데이터를 관리하기 위한 언어
    • CRUD
      • 대부분의 컴퓨터 소프트웨어가 가지는 기본적인 처리 기능

    • SELECT : 검색
      • SELECT * FROM 테이블명; (*은 모든 컬럼을 가져와라)
      • SELECT *FROM 테이블명 WHERE 필드1 = 조건값1;
      • SELECT *FROM 테이블명 WHERE 필드1 = 조건값1 ORDER BY 필드1 ASC; (조건에 맞는 조건을 오름차순으로 정렬)
      • SELECT 필드1, 필드2, 필드3 FROM 테이블명 WHERE 필드1 = 조건값1 ORDER BY 필드1 ASC; (필요한 필드만 가져옴)
      • SELECT 필드1, 필드2, 필드3 FROM 테이블명 WHERE 필드1 = 조건값1 ORDER BY 필드1 ASC LIMIT 개수; (가져오는 데이터 수 제한)
      • SELECT 필드1, 필드2, 필드3 FROM 테이블명 WHERE 필드1 = 조건값1 ORDER BY 필드1 ASC LIMIT 개수 offset 숫자; (숫자만큼 뛰어넘고 출력)
      • WHERE절
        • 비교연산자
          • =, >, >=, <, <=
        • 부정연산자
          • !=, ^= (같지 않다.), <> (같지 않다) , NOT 컬럼명= (~와 같지 않다.)
        • SQL 연산자
          • BETWEEN a AND b : a와 b의 값 사이에 있으면 참(a와 b값도 포함)
          • IN (list) : 리스트에 있는 값 중에서 어느 하나라도 일치하면 참
          • LIKE “비교문자열” : 비교문자열과 형태가 일치하면 사용(%,_ 사용)
            • %: 0개 이상의 어떤 문자
            • _ : 1개의 단일문자
          • IS NULL : NULL 값이 경우 true, 아니면 false
        • 논리 연산자
          • AND, OR, NOT

    데이터 조회

    • INSERT : 추가
      • INSERT INTO 테이블명 (필드1, 필드2, 필드3) VALUES (값1, 값2, 값3);
      • INSERT INTO 테이블명 VALUES(값1, 값2, 값3); //필드를 명시하지 않을 때는 테이블의 모든 컬럼에 값을 추가할 때만 사용할 수 있다.

    데이터 추가

    • UPDATE : 수정
      • UPDATE 테이블명 SET 필드1=값1 WHERE 필드2=조건2;

    • DELETE : 삭제
      • DELETE FROM 테이블명 WHERE 필드1=값1;
      • WHERE절 꼭 써서 테이블 전체가 삭제되는 걸 방지..!

    DCL

    • 관리자가 데이터으 보안, 무결성 유지, 병행제어, 회복 등을 하기 위해 사용하는 언어
    • COMMIT, ROLLBACK, GRANT, REVOKE
    • COMMIT
      • 데이터베이스 내의 연산이 성공적으로 종료되어 연산에 의한 수정 내용을 지속적으로 유지하기 위한 명령어
      • COMMIT;
      • ex) UPDATE 학생 SET 연락처='232-0077' WHERE 성명='김길동';
      • COMMIT; 
        • UPDATE 명령에 의해 수행한 연산 결과를 정상적으로 종료하고, 그대로 유지하겠다는 의미가 된다.
    • ROLLBACK
      • 데이터베이스 내의 연산이 비정상적으로 종료되거나 정상적으로 수행이 되었다 하더라도 수행되기 이전 상태로 되돌리기 위해 연산 내용을 취소하는 명령어
      • ROLLBACK;
      • ex) DELETE FROM 학생 WHERE 성명='최길동';
      • ROLLBACK;
        • [학생]테이블에서 최길동 학생의 자료를 삭제했지만 ROLLBACK명령에 의한 연산이 취소되어 삭제된 자료가 다시 되살아난다.
    • GRANT
      • 관리자가(DBA) 사용자에게 데이터베이스에 대한 권한을 부여하기 위한 명령어
      • GRANT 권한 내용 ON 테이블_이름 TO 사용자[WITH GRANT OPTION]; 
        • 관리자가 사용자에게 테이블에 대한 권한을 부여한다.
        • WITH GRANT OPTION: 사용자가 관리자로부터 부여받은 권한을 다른 사용자에게 부여할 수 있는 권한 부여권까지 부여하고자 할 때 사용하는 옵션
    • REVOKE
      • 관리자(DBA)가 사용자에게 부여했던 권한을 취소하기 위해 사용되는 명령어
      • REVOKE 권한 내용 ON 테이블_이름 FROM 사용자 [CASCADE];
        • 관리자가 사용자에게 부여했던 테이블에 대한 권한을 취소
        • CASCADE: 사용자가 다른 사용자에게 권한을 부여했을 경우 CASCADE 옵션을 이용해 사용자의 권한을 취소하면 사용자가 부여했던 다른 사용자들의 권한도 연쇄적으로 취소된다.
    728x90
Designed by Tistory.