db

이번 글에서는 SQL Injection 공격과 SQL 안티패턴에 대해서 알아보겠습니다.SQL InjectionSQL Injection은 공격자가 SQL 쿼리에 악의적인 데이터를 삽입하여 데이터베이스를 조작하거나 정보를 탈취하는 공격기법입니다.  다음과 같은 쿼리를 볼 수 있습니다.-- 입력값으로 "1 OR 1=1"를 전달SELECT * FROM users WHERE id = '1 OR 1=1';해당 쿼리는 항상 참으로 연산되기 때문에 users 테이블의 모든 데이터가 공격자에게 보여지게 됩니다. 이러한 공격을 예방할 수 있는 예방방법이 존재하는데요. 알아보겠습니다.SQL 안티패턴1. SELECT *해당 패턴의 문제점은 다음과 같습니다.불필요한 데이터를 모두 가져오기 때문에 네트워크와 메모리의 낭비로 이어..
이번 글에서는 VIEW, GROUP BY, ORDER BY 등 여러 가지 개념에 대해 알아보겠습니다. VIEWVIEW(뷰)란 하나 이상의 테이블에서 데이터를 조회하는 가상 테이블입니다.이때, 데이터는 실제로 저장되지 않고, SQL 쿼리 결과를 테이블 처럼 사용할 수 있습니다. VIEW는 다음과같은 특징을 가지고 있습니다.재사용 가능복잡한 쿼리를 단순화하여 재사용 가능데이터 보안특정 열이나 행만 보여줌으로써 데이터 접근을 제한데이터 일관성동일한 데이터를 여러 쿼리에서 강요할 때 일관된 결과를 제공CREATE VIEW 학생_정보 ASSELECT 학번, 이름, 나이 FROM 학생 WHERE 나이 > 20;SELECT * FROM 학생_정보;해당 쿼리를 통해 학생 테이블에서 나이가 20살 초과인 학생의 학번, ..
이번 글에서는 DDL, DCL, DML에 대해서 알아보도록 하겠습니다.DDLDDL은 데이터베이스의 구조를 정의하는 데 사용되는 SQL의 명령어 집합입니다.테이블, 인덱스, 스키마 등 데이터베이스 객체를 생성, 변경, 삭제하는 작업을 수행합니다. DDL 에는 다음과 같은 구문이 있습니다.CREATE테이블, 데이터베이스, 인덱스 등을 생성CREATE TABLE 학생 ( 학번 INT PRIMARY KEY, 이름 VARCHAR(50), 나이 INT);ALTER기존 테이블 또는 객체를 수정ALTER TABLE 학생 ADD 학과 VARCHAR(50);DROP테이블, 데이터베이스 등을 삭제DROP TABLE 학생;TRUNCATE테이블의 데이터를 모두 삭제(구조는 유지)TRUNCATE TABLE 학생;..
이번 글은 SQL에 대해서 간략하게 알아보려고 합니다.SQLSQL이란 Structured Query Language로 RDBMS에서 데이터를 저장, 검색, 수정, 삭제하기 위해 사용되는 표준 언어입니다. SQL에는 다음과 같은 특징이 있습니다.표준화국제 표준 (ISO, ANSI)으로 정의되어 대부분의 관계형 데이터베이스에서 사용가능 (MySQL, PostgreSQL..)관계형 데이터 모델 지원테이블 형식으로 데이터를 관리하며, 테이블 간 관계를 쉽게 처리간결하고 직관적데이터 조작이 간단한 명령어로 이루어져 있어 사용이 쉽고 읽기 편함다양한 기능DDL, DML, DCL 명령어로 구분됨 SQL의 특징에 대해서 알아보았습니다. 근데 C언어와 같은 프로그래밍 언어와 어떤 차이가 있을까요? C언어는 주로 데이터를..
이번 글에서는 스키마, 데이터 독립성, 무결성 제약조건 등의 내용을 다루게 됩니다. 스키마란?스키마는 데이터베이스의 구조와 제약 조건을 정의한 청사진이라고 보면 아주 편합니다.데이터베이스가 어떻게 구성되고, 어떤 데이터가 저장되며, 데이터 간의 관계는 무엇인지를 설명합니다. 스키마는 3단계로 나눌 수 있습니다. 이를 3단계 데이터베이스 구조라고 합니다. 3단계 데이터베이스 구조란 하나의 데이터베이스를 관점에 따라 세 단계로 나는 것을 의미합니다. 하나하나 알아보도록 합시다.외부 스키마외부 스키마는 특정 사용자나 애플리케이션이 데이터를 보는 방식(뷰)을 정의한 겁니다.서브 스키마라고도 합니다. 따라서, 데이터베이스 하나에 여러 외부 스키마가 존재할 수 있습니다.  외부 스키마의 역할은 다음과 같습니다.사용..
Choony
'db' 태그의 글 목록