IT 79

[SQLD] GRORP BY, HAVING 절

Group By, Having 절 집계 함수(Aggregate Function) - 여러 행들의 그룹이 모여서 그룹당 단 하나의 결과를 돌려주는 함수이다. - GROUP BY 절은 행들을 소그룹화 한다. - SELECT 절, HAVING 절, ORDER BY 절에서 사용할 수 있다. 집계 함수 명 ( [DISTINCT | ALL] 칼럼이나 표현식 ) - ALL : Default 옵션이므로 생략 가능함. - DISDINCT : 같은 값을 하나의 데이터로 간주할 때 사용하는 옵션이다. 집계 함수의 종류 집계 함수 사용 목적 COUNT( * ) NULL 값을 포함한 행의 수를 출력한다. COUNT( 표현식 ) 표현식의 값이 NULL값인 것을 제외한 행의 수를 출력한다. SUM( [DISTINCT | ALL ]..

[SQLD] 함수(Function)

함수(Function) 함수 조직도 Infotance. 함수는 입력되는 값이 아무리 많아도 출력은 하나만 된다는 M:1 관계라는 중요한 특징을 가지고 있다. 단일행 함수의 종류 종류 내용 문자형 함수 문자를 입력하면 문자나 숫자 값을 반환한다. 숫자형 함수 숫자를 입력하면 숫자 값을 반환한다. 날짜형 함수 DATE 타입의 값을 연산한다. 변환형 함수 문자, 숫자, 날짜형 값의 데이터 타입을 변환한다. NULL 관련 함수 NULL을 처리하기 위한 함수 일단 큼지막 하게 대충 알아보고 아래에 상세하게 알아보자. 단일행 함수의 중요 특징 - SELECT,WHERE,ORDER BY 절에 사용 가능하다. - 각 행(Row)들에 대해 개별적으로 작용하여 데이터 값들을 조작하고, 각각의 행에 대한 조작 결과를 리턴한..

[SQLD] WHERE

WHERE WHERE 절 - 두 개 이상의 테이블에 대한 Join 조건을 기술하거나 결과를 제한하기 위한 조건을 기술 할 때. SELECT 칼럼명 FROM 테이블명 WHERE 조건식; - WHERE 절은 FROM 절 다음에 위치한다. - Column명은 보통 조건식의 좌측에 위치한다. - 비연산자 - 문자, 숫자, 표현식 (보통 조건식의 우측에 위치) - 비교 칼럼명(Join 사용 시) 연산자 종류 비교연산자나 논리 연산자는 아실거라고 생각하고 이 2개는 빼고 서술하겠습니다. 연산자의 종류 구분 연산자 연산자 의미 SQL 연산자 Between A and B A와 B의 값 사이에 있으면 된다. (A와 B값 포함) IN (list) List에 있는 값 중에서 어느 하나라도 일치하면 된다. Like '문자열'..

[SQLD] TCL (Transaction Control Language)

TCL(TraTransaction Control Language) Transaction(트랜잭션) - 데이터베이스의 논리적 연산단위 - 밀접히 관련되어 분리될 수 없는 한 개 이상의 데이터베이스 조작 - 하나의 트랜잭션에는 하나 이상의 SQL 문장이 포함된다. - 분할할 수 없는 최소의 단위 - 그렇기 때문에 전부 적용하거나 전부 취소한다. - All Or Nothing의 개념 * 올바르게 반된 데이터를 데이터베이스에 반영시키는 것(COMMIT) * 트랜잭션 시작 이전의 상태로 되돌리는 것(ROLLBACK) * 저장점기능(SAVEPOINT) 트랜잭션의 특성 특성 설명 원자성 트랜잭션에서 정의된 연산자들은 모두 성공적으로 실행되던지 아니면 전혀 실행되지 않은 상태로 남아 있어야 한다.(All or Noth..

[SQLD] DML(Data Manipulation Language)

DML(Data Manipulation Language) DML(Data Mainpulation Language) -> 데이터 조작어 -> 테이블에 관리하기를 원하는 자료들을 입력, 수정, 삭제, 조회하는 명령어들 자 일단 시작하기 전에 이번 챕터를 같이 해줄 제가 미리 만들어놓은 테이블을 소개합니다 CREATE TABLE `my_contacts` (`last_name` varchar(30) , `first_name` varchar(20) , `email` varchar(50) , `gender` char(1), `birthday` date , `profession` varchar(50), `location` varchar(50), `status` varchar(20), `interests` varcha..

[SQLD] DDL(Data Definition Language)

DDL(Data Definition Language) -> 데이터 정의어 데이터 유형 -> 데이터베이스의 테이블에 특정 자료를 입력할 때, 그 자료를 받아들일 공간을 자료의 유형별로 나누는 기준 -> 특정 칼럼을 정의할 때 선언한 데이터 유형은 그 칼럼이 받아들일 수 있는 자료의유형을 규정함. -> 선언한 유형이 아닌 다른 종류의 데이터가 들오려고 하면 에러가 발생됨 자주 쓰이는 데이터 유형 데이터 유형 설명 CHAR(number) - 고정길이 문자열 정보 - number는 기본 길이 1바이트 - number만큼 최대 길이를 갖고 고정 길이를 가지고 있으므로 할당된 변수 값의 길이가 number보다 작을 경우에는 그 차이 길이만큼 빈 공간으로 채워짐 VHARCHAR(number) - 가변 길이 문자열 정..

[SQLD] 관계형 데이터베이스 개요

관계형 데이터베이스 개요 데이터베이스 - 넓은 의미에서는 일상적인 정보들을 모아 놓은 것 자체를 의미 - 특정 기업이나 조직 또는 개인이 필요에 의해 데이터를 일정 형태로 저장해 놓은 것 관계형 데이터베이스 - 정규화를 통한 합리적인 테이블 모델링을 통해 이상(Anomaly)현상을 제거하고 데이터 중복을 피할 수 있으며, 동시성 관리, 병행 제어를 통해 많은 사용자들이 동시에 데이터를 공유 및 조작할 수 있는기능을 제공함 - 메타 데이터를 총괄 관리할 수 있기 때문에 데이터의 성격, 속성 또는 표현 방법 등을 체계화할 수있고, 데이터 표준화를 통한 데이터 품질을 확보할 수 있는 장점이 있다. SQL(Struct Query language) - 관계형 데이터베이스에서 데이터 정의, 데이터 조작, 데이터 제..

[SQLD] 분산 데이터베이스와 성능

분산데이터베이스 분산 데이터베이스 - 여러 곳으로 분산되어있는 데이터베이스를 하나의 가상 시스템으로 사용할 수 있도록 한 DB - 논리적으로 동일한 시스템에 속하지만, 컴퓨터 네트워크를 통해 물리적으로 분산되어 있는 데이터들의 모임. 물리적 Site 분산, 논리적으로 사용자 통합·공유 Therefore. 분산 데이터베이스는 데이터베이스를 연결하는 빠른 네트워크 환경을 이용하여 데이터베이스를 여러 지역 여러 노드로 위치시켜 사용성/성능 등을 극대화 시킨 데이터베이스라고 정의할 수 있다. 분산 데이터베이스의 6가지 투명성 * 분할 투명성(단편화) : 하나의 논리적 Relation이 여러 단편으로 분할되어 각 단편의 사본이 여러Site에 저장 * 위치 투명성 : 사용하려는 데이터의 저장 장소 명시 불필요. 위..

[SQLD] 데이터베이스 구조와 성능

데이터베이스 구조와 성능 슈퍼/서브타입 데이터 모델 - 최근 데이터 모델링을 할 때 자주 쓰이는 모델링 방법. - 데이터의 특징을 공통과 차이점의 특징을 고려하여 효과적으로 표현할 수 있기 때문. - 공통의 부분을 슈퍼타입으로 모델링하고 공통으로부터 상속받아 다른 엔터티와 차이가 있는 속성에 대해서는 별도의 서브엔터티로 구분하여 업무의 모습을 정확하게 표현하면서 물리적인 데이터모델로 변환을 할 때 선택의 폭을 넓힐 수 있는 장점이 있다. - 논리적인 데이터 모델에서 이용되는 형태이고 분석단계에서 많이 쓰이는 모델이다. 슈퍼/서브타입에 대한 변환을 잘못하면 성능이 저하되는 이유 1) 트랜잭션은 항상 일괄로 처리하는데 테이블은 개별로 유지되어 Union연산에 의해 성능이 저하될 수 있다. 2) 트랜잭션은 항..

[SQLD] 대량 데이터에 따른 성능

대량 데이터 발생에 따른 성능 대량 데이터 발생에 따른 테이블 분할 개요 - 일의 처리되는 양이 한군데에 몰리는 현상은 어떤 업무에 있어서 중요한 업무에 해당되는 데이터가 특정 테이블에 있는 경우에 발생이 되는데 이런 경우 트랜잭션이 분산 처리 될 수 있도록 테이블단 위에서 분할의 방법을 적용할 필요가 있다. - 대량의 데이터가 존재하는 테이블에 많은 트랜잭션이 발생하여 성능이 저하되는 테이블 구조에 대해 수평/수직 분할에 의한 성능향상을 볼 수 있다. * 하나의 테이블에 대량의 데이터가 존재하는 경우 - 인덱스의 Tree 구조가 너무 커져 효율성이 떨어져 데이터를 처리(입력, 수정, 삭제, 조회)할 때 디스크 I/O를 많이 유발하게 된다. * 한 테이블에 많은 수의 칼럼이 존재하는 경우 - 데이터가 디..