FE BE 개발 메모장/SQL & DataBase

    SQL의 제약 조건과 ACID

    제약조건(Constraint)은 테이블에 잘못된 데이터의 입력을 막기 위해 일정한 규칙을 지정하는 것이다. SQL에서는 여러가지 제약을 사용할 수 있다. NOT NULL - NULL 값 입력을 허용하지 않음. UNIQUE - 중복 데이터를 방지하지만, NULL의 중복은 방지 못함. - 테이블 내에서 항상 유일무이한 값을 가질 것 PRIMARY KEY [기본 키] - NOT NULL + UNIQUE 조건을 만족한다. - 한 테이블 내에서 단 하나의 PK만 존재 - 해당 컬럼값은 반드시 존재해야 하고, 유일해야 한다. FOREGIN KEY [외래 키, 참조 키] - NULL값이 허용된다. - 다른 테이블의 데이터를 조사해서 무결성 검사. - 참조되는 컬럼은 반드시 UNIQUE 또는 PK로 지정 CHECK -..

    SQL Select문

    SQL SELECT 문은 하나 또는 그 이상의 테이블에서 데이터를 가져오는 데이터 조작 언어 중 하나이다. DQL문 SELECT문 공식문서 사양 SELECT [ALL | DISTINCT | DISTINCTROW ] [HIGH_PRIORITY] [STRAIGHT_JOIN] [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT] [SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS] select_expr [, select_expr] ... [into_option] [FROM table_references [PARTITION partition_list]] [WHERE where_condition] [GROUP BY {col_name | expr | pos..

    SQL Schema, Query 디자인과 몇 가지 종류(관계형 DB)

    스키마(Schema)란? 스키마(Schema)는 데이터 베이스에서 데이터가 구성되는 방식과 서로 다른 엔티티(entities)간의 관계를 설명한다. 데이터베이스의 청사진과 같다. 학교를 위한 데이터베이스를 구축한다고 가정할 경우 간단한 예로 School이라는 스키마 즉 DB의 청사진을 만들었다. 쉽게 교사(Teacher), 수업(Classes), 학생(Student)과 같은 데이터를 저장하기위해 샘플을 준비해뒀다. 다시 보는 기본용어 entities: Teacher, Classes, Student같은 테이블을 표현하는 정보의 단위이다. fields: 각 테이블이 가지고 있는 열들의 집합을 말한다. record: 행렬에서 행에 해당되고, 각 열이 담고있는 자료를 말한다. 데이터관의 연결 관계 샘플을 예제로..

    SQL의 연산자와 데이터 타입(MySQL 기준)

    데이터 타입의 정의 데이터 타입(자료형)은 컴퓨터 시스템과 프로그래밍 언어에서 실수, 정수, 소수 자료형 등 여러 종류의 데이터를 식별하는 타입으로해당 자료형에 대한 가능한 값, 수행을 할 수 있는 명령어, 데이터의 형태, 의미, 크기와 해당 자료형의 값이 저장되는 방식이다. 데이터 유형 정의 CHAR(n) 고정 길이 데이터 타입(최대 255byte), 지정된 길이보다 짧은 데이터 입력 시 나머지 공간은 공백으로 체워진다. VARCHAR(n) 가변 길이 데이터 타입(최대 65535byte), 지정된 길이보다 짧은 데이터 입력 시 나머지 공간은 채우지 않는다. TINYTEXT(n) 문자열 데이터 타입(최대 255byte) TEXT(n) 문자열 데이터 타입(최대 65535byte) MEDIUMTEXT(n) ..

    Database와 관계형 데이터베이스, SQL을 알아보자

    SQL이란? Structured Query Language 의 약자로 구조화 된 Query 언어를 말한다. Query란? 번역하면 질의문을 뜻한다. 저장되어 있는 정보를 필터링 하기 위한 질문이다. 결국, SQL은 데이터베이스용 프로그래밍 언어이고, 데이터베이스에 Query를 보내 원하는 데이터를 가져올 수 있다. 데이터베이스는 왜 필요할까? In_Memory DB를 사용하기 전에는 데이터를 클라이언트나 서버에 저장해 두게 된다. 만약 서버나 클라이언트가 종료되면, 안에 저장되 있던 정보들은 모두 사라진다. File I/O 원하는 데이터만 가져올 수 없고, 항상 모든 데이터를 가져온 뒤 서버에서 필터링이 필요하다. for loop문을 사용해 필터링을 하게 되면 서버의 부하가 많이 걸리게된다. Databa..