분류 전체보기 56

[SQL] 인덱스(INDEX)의 종류와 생성, 변경, 삭제, 조회 방법

우리가 책 중간에 북마크 용도로 무언가를 붙이거나 표시해두는 것처럼, 관계형 데이터베이스 상에서 테이블의 특정 데이터를 빠르게 찾기 위해 인덱스를 사용한다. 이때 인덱스는 데이터베이스 객체이자 자료 구조를 의미한다. 인덱스는 사용자가 직접 생성해줘야 사용할 수 있는데, 예외적으로 PK 인덱스는 특정 컬럼을 기본 키(PK)로 지정하게 되면 데이터베이스에 의해 자동으로 생성된다. 인덱스는 특성에 따라 하나의 인덱스도 여러 가지 분류에 속할 수 있다. 예를 들어 어떤 인덱스가 단일 인덱스이면서 UNIQUE인덱스에 해당할 수 있다. 인덱스의 종류 인덱스 구성 컬럼 개수에 따른 분류 : 단일 인덱스, 복합(결합) 인덱스 유일성 여부에 따른 분류 : UNIQUE 인덱스, NON-UNIQUE 인덱스 인덱스 내부 구조..

DB/SQL - Oracle 2024.02.13

[Web] 프로토콜(Protocol) : HTTP, TCP, UDP, IP + Port(포트번호) 그리고 OSI 7 Layer

먼저, 프로토콜이란 무엇일까? 프로토콜이란? 클라이언트와 서버가 서로 통신하기 위해서는 통신방법에 대한 약속이 필요한데, 이때 이 약속이 프로토콜이다. "통신규약"이라고 말한다. 웹 통신에 주로 쓰이는 IP, TCP, UDP, HTTP 모두 프로토콜에 해당하며 이번에는 위 4가지 프로토콜에 대해 자세히 다루고자 한다. 프로토콜은 아래의 OSI 7 Layer에 의해 좀 더 명확히 이해할 수 있다. OSI 7 Layer(OSI 7계층) ? OSI 7 계층은 네트워크에서 통신이 일어나는 과정을 7단계로 나눈 것을 말한다. 다양한 프로토콜에 대해서 바이블로서 정의하는 역할을 한다. 우리는 OSI 7 Layer(OSI 7계층)를 통해 통신이 일어나는 과정을 단계별로 파악할 수 있다. 각 Level에 대해 좀 더 ..

Web/Network 2024.02.10

[PL] 자바(Java)와 자바스크립트(JavaScript)의 특징 비교 : 컴파일 언어와 인터프리터 언어

웹 개발에서 HTML은 웹 페이지의 내용을 작성하여 뼈대를 형성하고, CSS는 그것을 디자인하며, JavaScript는 웹 페이지의 동적인 동작을 담당한다. JavaScript는 주로 웹 브라우저에서 클라이언트 측에서 실행되지만, Node.js와 같은 프레임워크를 사용하여 서버 측 프로그래밍에서도 사용할 수 있다. 또한, 현재 대부분의 컴퓨터나 스마트폰 등에는 JavaScript 인터프리터가 내장되어 있어, 웹 페이지를 빠르고 효율적으로 실행할 수 있다. 이번에는 웹 개발에서 필수적인 언어로 자리 잡고 있는 JavaScript에 대해 인터프리터 언어와 컴파일 언어 개념을 참고하여 알아보고자 한다. 자바스크립트(JavaScript)의 특징 자바스크립트는 객체 기반의 스크립트 언어이다. 동적이며, 타입을 명..

[SQL] 연산자 - 수식, 문자, 논리, 집합 연산자

연산자(Operator)는 말그대로 연산을 수행하는 역할을 한다. 오라클에서는 다양한 연산자를 제공하고 있는데 크게 다음과 같이 분류할 수 있다. 수식 연산자 문자 연산자 논리 연산자 집합 연산자 계층형 쿼리 연산자 이번 글에서는 수식,문자, 논리연산자를 다루고, 추가로 집합 연산자에서 MINUS만 다뤄보고자 한다. 계층형 쿼리 연산자도 다른 설명이 많이 필요해서 별도의 글에 다루고자 한다. 수식 연산자 : +, - , *, / 연산자 기능 예시 + 단항 연산자 : 양수 / 이항 연산자 : 덧셈 +1 은 양수 1을 의미함, 1 + 1 = 2 에서 +는 덧셈 기능 - 단항 연산자 : 음수 / 이항 연산자 : 뺄셈 -1 은 음수 -1을 의미함, 1 - 1 = 0 에서 -는 뺄셈 기능 * 곱셈 2 * 2 = ..

DB/SQL - Oracle 2024.02.09

[SQL] DDL(데이터 정의어) - truncate

SQL 종류 1. 데이터를 정의하는 쿼리 - DDL(데이터 정의어) : create, drop, alter, truncate 2. 데이터를 조작하는 쿼리 - DML(데이터 조작어) : insert, select, update, delete 3. 데이터를 제어하는 쿼리 - DCL(데이터 제어어) : grant, revoke 4. 트랜잭션 제어하는 쿼리 - TCL(트랜잭션 제어어) : commit, rollback, checkpoint DDL 특징 요약 - create : 테이블이나 인덱스, 뷰 등 데이터베이스 객체를 생성 - drop : 생성된 데이터베이스 객체를 영구히 삭제 - alter : 이미 생성된 데이터베이스 객체를 수정 - truncate : 테이블이나 클러스터의 데이터를 통째로 삭제 데이터 관..

DB/SQL - Oracle 2024.02.08

[SQL] 기본 집계 함수 - min, max, variance, stddev

집계 함수도 SQL함수의 일종으로, 대상 데이터를 특정 그룹으로 묶은 다음 이 그룹에 대해 총합, 최댓값, 최솟값 등을 구하는 함수를 말한다. 대표적인 집계함수 7가지에 대해 살펴보고자 한다. 앞서 다룬 count, sum, avg 에 대한 글은 아래 링크를 통해 확인해주세요! https://bio-logisch.tistory.com/34 [SQL] 기본 집계 함수 - count, sum, avg 집계 함수도 SQL함수의 일종으로, 대상 데이터를 특정 그룹으로 묶은 다음 이 그룹에 대해 총합, 최댓값, 최솟값 등을 구하는 함수를 말한다. 대표적인 집계함수 7가지에 대해 살펴보고자 한다. bio-logisch.tistory.com 대표적인 집계함수 7가지에 대해 살펴보고자 한다. 아래 집계함수를 활용하여 ..

DB/SQL - Oracle 2024.02.07

[SQL] 기본 집계 함수 - count, sum, avg

집계 함수도 SQL함수의 일종으로, 대상 데이터를 특정 그룹으로 묶은 다음 이 그룹에 대해 총합, 최댓값, 최솟값 등을 구하는 함수를 말한다. 대표적인 집계함수 7가지에 대해 살펴보고자 한다. 아래 집계함수를 활용하여 조회(select)하게 되면 결과값은 항상 숫자값인 튜플 하나가 나온다는 점도 기억하자. 각 함수에는 괄호가 붙고 그 괄호 안에는 매개변수가 들어간다는 점도 매우 중요하다. 집계함수(매개변수) 수학을 배우면서 익숙하게 봤던 단어들이라 쉽게 생각할 수 있지만, 데이터를 다루는 입장에서 집계 함수를 쓸 때 생각해볼 지점들이 꽤 있다. 무엇보다도 제대로 알아두면 정말 유용하게 쓰일 수 있다. COUNT - 튜플 수 산출 SUM - 합계 산출 AVG - 평균 산출 MIN - 최솟값 산출 MAX -..

DB/SQL - Oracle 2024.02.07

[SQL] 숫자 데이터 타입 (1) number

오라클에서 제공하는 숫자 데이터 타입은 총 4가지(number, float, binary_float, binary_double)가 있다. 하지만 주로 number형만 사용하므로 여기서는 number형에 집중하고자 한다. 다른 DBMS는 integer, int와 같은 정수형, 또는 decimal과 같은 실수형을 제공하고 오라클도 이런 타입으로 컬럼을 생성할 수 있지만 내부적으로는 모두 number형 으로 변환되어 생성된다. 컬럼을 생성할 때, number형으로 데이터 타입을 정의하면 아래와 같이 작성할 수 있다. 컬럼명 number(p,s) p : 최대 유효숫자 자릿수 s : 소수점 기준 자릿수 위와 같이 number(p,s) 형식으로 크기를 지정할 때, 여기서 p는 precision, 정밀도를 의미한다...

DB/SQL - Oracle 2024.02.06

[DB] 데이터베이스 정규화(DB Normalization) 개념과 장단점

데이터베이스 정규화에서 중요한 배경이 될 이상현상에 대해서는 아래 글을 참고 바랍니다. 2024.02.01 - [DB/SQL - Oracle] - [SQL] 이상현상(Anomaly) + 키 예제 [SQL] 이상현상(Anomaly) + 키 예제 이번에는 예제를 통해 키에 대해 좀 더 상세히 알아보고, 이상현상에 대해 자세히 다뤄보고자 한다. * 이전에 키에 대해 정리한 글은 아래 링크를 확인해주세요. https://bio-logisch.tistory.com/14 [SQL] bio-logisch.tistory.com 데이터베이스 정규화(DB Normalization)는 관계형 데이터 모델에서 데이터의 중복성을 제거하여 이상 현상*을 방지하고, 데이터의 일관성과 정확성을 유지하기 위해 "무손실 분해"하는 과정..

DB/Data modeling 2024.02.06

[SQL] where 조건절 - Like(패턴) 방식 파헤치기 + 정규 표현식

select문으로 데이터 조회 시 특히 특정 문자열을 포함한 값을 찾고자 할 때 Like를 자주 활용하게 된다. 예를 들어 거주지 주소를 입력하는 address 컬럼명의 값은 서울시, 서울특별시, 수원시, 경기도 수원시, 등등 같은 지역을 의미함에도 다른 값으로 저장된 경우가 있는데 이런 모든 경우를 포괄하면서 최대한 누락되지 않도록 조회를 하기 위해서 Like가 매우 유용하게 쓰일 수 있다. 예시) 컬럼이 address인 경우, 입력값에서 '서울'로 시작되는 문자열인 튜플만 조회 SELECT * FROM member WHERE address LIKE '서울%'; 또한 웹 서비스 중 검색 기능을 구현하고자 할 때 사용자가 검색창에 입력한 검색어를 기준으로, 해당 키워드가 포함된 게시글의 제목이나 내용을 ..

DB/SQL - Oracle 2024.02.03