DBMS

    [SQL]데이터 무결성 & 트랜잭션 & 가상 테이블

    [SQL]데이터 무결성 & 트랜잭션 & 가상 테이블

    여러사용자가 규칙 없이 아무 데이터나 입력하면 데이터베이스는 엉망이 되어 사용할 수가 없다. 이를 방지하기 위해 관계형 데이터베이스 시스템은 몇 가지 규칙을 정하였다. 그중 대표적인 것이 데이터 무결성과 제약 조건, 트랜잭션과 동시성 제어이다. 📌데이터 무결성 데이터베이스에 저장된 데이터 값과 사용자가 의도한 데이터 값을 일치해야 한다. 또한 데이터는 정확성, 유효성, 일관성, 신뢰성이 지켜져야 하며 이를 어기는 잘못된 입력,수정,삭제로부터 보호되어야 한다. 예를 들어 숫자가 들어와야하는 데이터 값에 숫자가 아닌 문자같은 데이터 타입이 들어 온다거나 기본 키(primary key) 값에 중복 값이나 null값이 입력된다면 데이터 식별에 큰 문제가 생길 수 있다. 이를 위해 데이터베이스 시스템은 데이터에 ..

    [SQL]DDL (테이블 생성 & 추가 & 수정 & 삭제)

    [SQL]DDL (테이블 생성 & 추가 & 수정 & 삭제)

    📌테이블 생성 테이블을 생성, 변경 및 삭제 할때는 DDL(Data Definition Language)을 사용해야 한다. 테이블을 생성할 때는 CREATE TABLE 문법을 사용한다. 이 구문은 DBMS에 따라 다르기 때문에 각자가 사용하는 DBMS 설명서를 참고해야 한다. 💡일반적으로 테이블 생성하는 방법 CREATE TABLE 생성할 테이블명 ( 열 이름 데이터 형식(크기) NOT NULL, 열 이름 CHAR (10) PRIMARY KEY, 열 이름 CHAR (10) NOT NULL REFERENCES 테이블1 (테이블1 고유키), 열 이름 INTEGER NOT NULL DEFAULT 1, 열 이름 VARCHAR(100) NULL ); 테이블을 만들려면 기본적으로 생성할 테이블명, 그에 속할 열 이..

    [SQL]DML(데이터 삽입 & 수정 & 삭제)

    [SQL]DML(데이터 삽입 & 수정 & 삭제)

    📌 데이터 삽입 (INSERT) 데이터를 삽입하는 종류는 여러 개가 있다. 데이터 전체 행을 삽입하거나 일부만 삽입할 수 있고 SQL 결과문을 삽입할 수도 있다. 데이터 전체 행을 삽입하는 방법은 열 이름을 지정하지 않고 삽입하는 방법과 열 이름을 지정한 후 삽입하는 방법으로 나눌 수 있다. 열 이름을 지정하지 않고 삽입하는 방법은 코딩을 짧게 해도 된다는 장점이 있는 반면 데이터를 삽입하는 값의 순서가 변경될 경우 테이블이 망가질 수 있는 위험이 있다. 그에 반해 열 이름을 지정한 후 행전체를 삽입하는 방법은 열 이름을 지정하기 때문에 코딩을 길게 해야 한다는 단점이 있지만 순서에 따라 값 매칭이 잘되었는지 확인할 수 있고 오류도 적다. 행의 일부분만 삽입할 때도 동일한 문법을 사용한다. 'SELECT..

    SQL 하위 쿼리(Sub-query)

    SQL 하위 쿼리(Sub-query)

    하위 쿼리(Sub-query)란 하나의 SQL문장에 속하는 또 다른 SQL문장으로, 두 번 이상의 질의를 통해 얻을 수 있는 결과를 한 번의 질의로 해결할 수 있다. 하위 쿼리를 사용하면 복잡한 SQL문장도 간단히 만들 수 있고, DBMS의 데이터 처리 속도도 빠르게 향상시킬 수 있다. FROM절의 하위 쿼리 실무에서 하위 쿼리를 사용할 때는 FROM절에서 크게 두 가지의 용도로 나눌 수 있다. 첫 번째는 조건에 맞는 대상자를 선정한 후 요약할 때 사용되고, 두 번째는 조인할 때 사용된다. 첫 번째 용도로 하위쿼리를 사용할 때는 하위 쿼리를 작성한 후 테이블 별칭을 꼭 주어야 한다. 이때 테이블 별칭을 주지 않으면 에러가 발생한다는 점이다. 테이블 별칭을 줄 때 AS 키워드를 사용해도 되고 생략해도 된다..

    SQL 테이블 합치기 (조인과 집합)

    SQL 테이블 합치기 (조인과 집합)

    조인(JOIN): 열(Column) 합치기 내부 조인(INNER JOIN) 내부조인은 `교집합`이라 생각하면됩니다. 내부 조인은 두 개 이상의 테이블에서 관련된 데이터를 결합하여 검색하는데 사용되는 조인 유형입니다. 내부 조인은 조인 조건에 맞는 행만 반환하며, 조인 조건에 맞지 않는 행은 제외됩니다. 내부 조인을 하는 방법은 다음과 같이 두 가지가 있습니다. 1. FROM / WHERE SELECT column1, column2, ... FROM table1, table2 WHERE table1.column = table2.column; 2. INNER JOIN ⭐ ⭐ ⭐ SELECT column1, column2, ... FROM table1 (INNER) JOIN table2 ON table1.co..

    SQL 문자, 숫자, 날짜, COUNT, CASE WHEN, 데이터의 그룹화

    SQL 문자, 숫자, 날짜, COUNT, CASE WHEN, 데이터의 그룹화

    SELECT 그룹화할 열 이름1, 집계 함수 FROM 테이블명 WHERE 조건절 GROUP BY 열 이름1 HAVING 집계 함수 조건 ORDER BY 열 이름; -- '특정한 테이블에서 특정한 조건을 만족하는 데이터를 추출한 후 특정한 조건을 만족한 -- 그룹화된 특정 열 및 집계 함수를 나타내라'는 뜻이다. 문자 함수 함수 설명 함수 설명 LOWER 모든 문자를 소문자로 변환 RTRIM 문자열 오른쪽 공백을 잘라낸다. UPPER 모든 문자를 대문자로 변환 LTRIM 문자열 왼쪽 공백을 잘라낸다. INITCAP 첫글자만 대문자,나머지 소문자 TRIM 문자열의 양쪽을 잘라낸다. LENGTH 문자의 길이를 나타낸다. REPLACE 특정 문자열을 다른 문자열로 대체한다. SUBSTR 문자 값 중 원하는 길이..

    SQL SELECT, WHERE, ORDER BY, IN, LIKE, TRIM

    SQL SELECT, WHERE, ORDER BY, IN, LIKE, TRIM

    SQL 문법 요약 및 작성 특징 SELECT [DISTINCT] 열 이름 [or 별칭(alias)] FROM 테이블 이름 [WHERE 조건식] [ORDER BY 열 이름 [ASC or DESC]]; -- GROUP BY와 HAVING에 대해서는 다음에 설명하도록 하겠습니다. -- 이런게 있구나 정도로만 보시면 됩니다. SELECT 그룹화할 열 이름1, 집계 함수 FROM 테이블명 WHERE 조건절 GROUP BY 열 이름1 HAVING 집계 함수 조건 ORDER BY 열 이름; ※참고 SQL은 소문자와 대문자를 구분하지 않는다. SELECT를 select라고 입력해도 결과값은 차이가 없다. 하지만 복잡한 SQL문장을 작성할 때 보기 쉽게 표현하기 위해 SELECT같은 키워드,명령어는 대문자로 입력하고 열..

    SQL 데이터베이스(DB), SQL이란?

    SQL 데이터베이스(DB), SQL이란?

    데이터베이스의 정의 데이터베이스(DB)란 구조적인 방식으로 관리되는 데이터의 집합을 이야기한다. 즉, 서로 연관된 정보의 중복을 최소화하여 한곳에 저장함으로써 다수의 사용자가 필요한 정보에 효율적으로 접근할 수 있게 한 정보의 집합체이다. 또한 데이터베이스는 실시간 접근과 동시 공유가 가능하다. 데이터베이스의 체계적인 관리는 데이터베이스 관리 시스템(DBMS)을 통해 이루어진다. DBMS는 데이터를 정리하고 보관하기 위한 용도로 사용된다. 이를 위해 데이터 생성, 수정, 삭제, 검색 등의 기능을 수행한다. 대표적인 DBMS는 Oracle, MySQL, PostgreSQL, MongoDB 등이 있다. DBMS(데이터베이스 관리 시스템) 특성 DBMS는 실시간 접근성, 계속적인 변화, 동시 공용, 내용에 의..