6.3 Delete (SQL)
레코드 삭제 구문 만약 서비스를 운영하는 중 회원이 탈퇴를 하거나, 회사에서 퇴사자가 발생한다면 개인과 관련된 정보들을 삭제해야한다. Database에서는 데이터의 삭제를 위해서 DELETE는 구문을 지원한다. DELETE의 사용방법은 다음과 같다: table_name: 레코드를 삭제하려는 테이블명 DELETE FROM table_name...
레코드 삭제 구문 만약 서비스를 운영하는 중 회원이 탈퇴를 하거나, 회사에서 퇴사자가 발생한다면 개인과 관련된 정보들을 삭제해야한다. Database에서는 데이터의 삭제를 위해서 DELETE는 구문을 지원한다. DELETE의 사용방법은 다음과 같다: table_name: 레코드를 삭제하려는 테이블명 DELETE FROM table_name...
레코드 변경 구문 SQL에서는 레코드의 값을 변경하기 위한 목적으로 UPDATE 구문을 제공한다. UPDATE의 문법은 다음과 같다: tb_name: 변경할 테이블명 col: 변경할 컬럼 val: 저장할 값 UPDATE tb_name SET col1 = val1, col2 = val2, ... WHERE ...; ...
DML DDL (Data Definition Language)가 테이블에 저장할 데이터를 정의하는 구문이라고 하면, DML (Data Manipulaion Language)은 DDL을 통해서 정의된 테이블에 레코드 데이터를 생성, 변경, 삭제하는 구문이다. 즉, DML은 Database에 데이터를 수정하는 구문으로, INSERT, UPDATE, D...
테이블 삭제 구문 Database를 운영하다보면 테이블을 나누기도, 합치기도 하며 테이블의 schema가 변경된다. 이떄 더 이상 사용하지 않는 테이블이 생겨, 테이블의 삭제가 필요하다. DROP TABLE은 더 이상 사용하지 않는 테이블을 삭제하는 DDL 구문이다. DROP TABLE의 사용방법은 다음과 같다: DROP TABLE tb_name...
테이블 변경 구문 ALTER TABLE은 테이의 정보를 변경하는 DDL 구문이다. ALTER TALBE은 주요한 세가지 기능을 지원한다. Table 이름 변경 Constraint 변경 Column 변경 Table 이름 변경 (RENAME) Table 0: Employee Table employee_id ...
테이블 생성 구문 CREATE TABLE은 테이블을 생성하기 위한 DDL구문이다. 테이블 생성 구문은 다음과 같이 사용할 수 있다: CREATE TABLE tb_name ( col_name_1 TYPE column_constraint_1, col_name_2 TYPE column_constraint_2, ... CONS...
SQL에서는 DQL, DDL, DML 총 3가지 분류의 명령을 지원한다. DQL Data query language, DQL은 데이터 조회를 하기위한 구문이다. SELECT로 시작하는 구문이 DQL에 해당하며, 이전 챕터까지는 DQL에 대해서 다뤘다. DDL Data definition language, DDL은 데이터를 정의하기 ...
SQL에서는 Timestamp와 Date 타입과 관련된 연산자와 함수를 제공한다. 이번 포스트에서는 PostgreSQL을 기준으로, SQL에서 제공하는 Timestamp와 Date를 처리하는 연산자/함수에 대해서 알아볼 것이다. 그리고 시간 연산자/함수를 응용하여 간단한 쿼리문을 작성해본다. 시간 타입 연산자와 함수에 대해서 알아보기 전에 시간 타...
SQL에서는 문자열의 처리를 지원하기 위한 연산자와 함수를 제공한다. 이번 포스트에서는 PostgreSQL을 기준으로, SQL에서 제공하는 문자열 처리 연산자/함수에 대해서 알아볼 것이다. 그리고 문자열 연산자/함수를 이용하여 간단한 쿼리문을 작성해본다. 문자열 연산자/함수 PostgreSQL에서 지원하는 문자열과 관련된 함수와 연산자는 [0]에 ...
SQL혹은 다른 대부분의 프로그래밍 언어에서도 값을 계산/변환하는 방법으로 연산자와 함수를 제공하고 있습니다. 연산자 연산자는 수학기호로 포현할수 있는 연산을 지원한다. 예를 들어 1 + 1이라는 표현식이 존재할 때 +가 연산자에 해당한다. SQL은 숫자/문자/시간과 관련된 연산자를 제공한다. 함수 연산자를 두개의 값 혹은 하나의 값에 대한 연산만...
Chapter 4에서는 SQL에서 다루는 자료형과 관련된 함수에 대해서 알아본다. WHERE절을 사용하여 값을 비교할 때 어떤 경우에는 따옴표 (‘)를 붙이고, 어떤 경우에는 안붙이는지, 그리고 날짜를 비교할 떄 왜 YYYY-MM-DD와 같은 형태로 쿼리문을 작성하는지 궁금했다면, Chapter 4를 통해 궁금증을 해소할 수 있다. Data Type...
HAVING 개요 Table 0: Film Table film_id title rental_rate length 1 명량 4.99 120 2 암살 2.99 9...
GROUP BY 개요 Table 0: Film Table film_id title rental_rate length 1 명량 4.99 120 2 암살 2.99 ...
DISTINCT의 개요 DISTINCT는 조회된 데이터의 중복 값을 제거하는 쿼리 구문이다. 아래의 Film Table에서 대여료에 해당하는 rental_rate를 조회했을 떄는 중복값이 생긴다: Table 0: Film Table film_id title rental_rate ...
이번 포스트에서는 SQL에서 데이터를 효과적으로 집계하는 데 사용되는 집계 함수에 대해서 다룰 예정이다. Chapter 1에서 SELECT 구문을 통해 raw 데이터를 조회하는 방법을 배웠다. 하지만 때때로 특정 조건에 해당하는 row 수를 알아내거나, 특정 컬럼의 합계, 평균, 최소값, 최대값을 알아야 할 때가 있다. 이럴 때 사용하는 것이 바로 집...
SQL을 이용하여 조회를 하다보면 특정 기준을 통한 정렬이 필요하다. 또한 SELECT문을 실행했을 때 database는 저장하고 있는 모든 데이터를 반환하려하기 때문에 제한하는 구문이 필수적이다. 정렬과 조회할 row를 제한하는 SQL 구문으로는 ORDER BY, OFFSET, LIMIT가 있다. ORDER BY 데이터를 조회할 때 때때로 생성...
데이터를 조회하는 업무를 진행하거나, 개발을 하면서 조회를 하기 위한 쿼리를 작성하는 경우, 기본 연산자만으로는 기능적인 한계가 있다. 이번 포스트에서는 WHERE 절을 더욱 효과적으로 사용할 수 있게 해주는 IN, BETWEEN, LIKE 구문에 대해 다룰 예정이다. IN 먼저, IN 구문에 대해 알아보자. 이 구문은 특정 컬럼이 여러 값 중 하...
WHERE문의 필요성 실무에서 데이터베이스를 다루다 보면, 특정 조건에 맞는 데이터를 조회해야 할 때가 많다. 예를 들어, 고객 정보를 관리하는 customer 테이블이 있을 때, 특정 회원의 정보를 조회하거나, 특정 기간 동안 가입한 회원들을 찾아야 할 수 있다. 이번 글에서는 이러한 상황에 활용할 수 있는 SQL 구문이 WHERE이다. Fig...
데이터베이스 구조 이해하기 Fig. 0: Database 먼저, 데이터베이스가 데이터를 어떻게 저장하는지 기본 개념을 알아볼 필요가 있다. 데이터베이스의 데이터는 마치 spread sheet와 같이 구조화된다. 데이터베이스는 Table, Row, Column이라는 개념을 이용하여 구조화 되어 있으며, 각각의 정의는 다음과 같다. Table...
SIP (Session Initiation Protocol) SIP (Session Initiation Protocol)는 인터넷 통신에서 음성, 비디오, 메시징 등의 멀티미디어 통신 세션을 시작, 관리, 종료하는데 사용되는 프로토콜이다. SIP는 인터넷 전화 (VoIP) 및 기타 멀티미디어 통신 서비스에서 사용자간의 연결을 위해 널리 사용된다. ...
SIP의 메세지는 요청과 응답으로 구성되어있다. SIP 메세지의 기본적인 구성은 다음과 같다. Start-line Message header Message body Start-line Start-line은 어디에 어떤 메세지를 전달하는지를 표현한다. Request일때와 Response일때의 기술이 다르며 다음와 같다. Request...
HTTP (Hipertext Transfer Protocol) HTTP는 web상의 데이터 통신을 위해 hypertext를 전달하는 protocol이다. Server-client 구조로 동작하며, Application layer에 속한다. 일반적으로 client side에서 요청을 보내면 server side에서 응답을 보내는 형태로 동작한다. ...
RTMP (Real-Time Messaging Protocol) RTMP는 Adobe Flash Player나 Adobe Air와 같은, Adobe Flash platform에서 multimedia data를 전송하기 위해 개발한 protocol이다. RTMP는 TCP transport layer위에서 동작하는 application layer이다. ...
HLS (HTTP Live Streaming) HLS는 Apple에서 2009년 출시한 Adaptive HTTP Streaming으로 다음과 같은 장점을 가졌다. HLS의 기본 컨셉은 media를 segment라는 수 초 단위의 video file로 나누어 저장한 뒤, 이를 관리할 playlist file을 둔다. Client는 playlist을 먼...
FFmpeg에서 Decoding와 Encoding을 지원하는 codec 구현이 있다. 외부 libopus / libvpx / libx264 와 같은 외부 lib을 이용하는 경우도 있으며, 자체 구현된 codec도 존재한다. Codec과 관련된 코드가 모두 포함되어 있기 때문에 FFmpeg source중 가장 방대하다. Struct AVCodec ...