전체 글

WEB 개발과 관련된 지식을 기록하고자
·IT 공부/DB
MySQL의 InnoDB엔진을 사용하는 경우, 외래키를 사용할 수 있습니다. 외래키는 부모 테이블과 자식 테이블 간의 관계를 위해 생성하는 키로, 해당 컬럼에 인덱스 생성이 필요하며 변경 시에는 반드시 부모 테이블이나 자식 테이블에 데이터가 존재하는지 체크하는 작업이 필요합니다.  개발 환경에서는 위와같은 테이블간의 관계가 좋은 가이드 역할을 할 수도 있지만, 테이블간의 체크로 인해 잠금이 여러 테이블로 전파하여 데드락이 발생하는 경우도 있습니다. 또한, 부모와 자식 테이블의 관계를 생각안하고 데이터를 삭제 및 변경 하는 경우에도 작업이 실패하는 경우게 생기게됩니다. ERROR 1451 (23000): Cannot delete or update a parent row: a foreign key const..
·IT 공부/DB
데이터베이스에서도 함수가 존재합니다. 흔히 알고있는 count, max, min, sum, avg같은 집계함수도 있지만, 그 외에도 굉장히 많은 함수들이 존재합니다. 그 중에서 문자열과 관련된 자주 사용되는 함수에대해서 알아보려고 합니다. 문자열concatsubstringupper / lower문자열관련 함수는 위의 세가지 종류에 대해서 알아보겠습니다.concat문자열을 연결하고 싶은 경우에 사용합니다.SELECT concat("My Name is ", "JONGIN"); 위와같이 "My Name is "라는 문자열과 "JONGIN"이라는 문자열을 합치기 위해 실행해보면,위와같은 결과가 출력되는 것을 확인할 수 있습니다.  결과 컬럼을 보면, 사용한 함수가 그대로 출력되기 때문에 가독성이 굉장히 떨어진다..
·IT 공부/DB
집계함수SELECT절에 사용되며, 여러 행으로부터 하나의 결가값을 반환하는 함수이다.종류에는 COUNT, SUM, MIN, MAX, AVG가 존재합니다.COUNT레코드의 수를 반환해준다.SELECT count(*) FROM customers;count(*)를 사용하게 되면, 모든 레코드 수를 반환하게 됩니다. customers 테이블에는 총 120개의 레코드가 존재한다는 것을 알 수 있습니다.⚠️주의count 함수는 값이 NULL인 값은 집계하지 않습니다.SELECT count(first_name) FROM customers;first_name 컬럼에 대해서 카운트 함수를 사용하면,count(*)의 결과에서는 모든 레코드의 수가 반환되었지만, count(first_name)을 사용하게되면 NULL인 값을..
·IT 공부/DB
데이터 베이스 정규화란?데이터베이스 내의 데이터 구조를 조직화하고 최적화하는 과정으로, 데이터의 중복을 제거하는 것이 목적이다.중복을 제거함으로써, 효율성을 향상시키고 데이터 무결성을 보장할 수 있다. 정규화의 단계에는 1NF, 2NF, 3NF, BCNF(보이스-코드 정규화), 4NF, 5NF가 존재하지만, 여기서는 3NF까지만 다루고 있습니다.이유는 3NF까지만 만족하더라도, 실무에서는 정규화 되었다고 말하기 때문입니다. 제 1 정규화(1NF)제1 정규화를 만족하기 위해서는 다음 3가지의 조건을 만족해야한다.테이블은 기본키를 가지는 것반복되는 행이 존재하지 않는 것컬럼에는 오직 단일 값만이 존재하는 것위의 데이터를 보면 빨강색행이 완전히 중복하고 있기 때문에, 반복되는 행이 존재하지 않는 것 에 위배됩..
·IT 공부/DB
MySQL에서 새로운 컬럼을 추가 및 삭제하는 것부터,기존의 컬럼의 제약조건/컬럼명/데이터 타입을 수정하는 SQL을 정리해봤습니다.컬럼 추가 & 삭제추가ALTER TABLE ADD COLUMN ;위의 sql은 기본적 데이터 타입만 추가한 컬럼이지만, 그 외에도 제약조건이나 컬럼의 위치를 변경하는것도 가능하다.ALTER TABLE usersADD COLUMN email VARCHAR(50) UNIQUE AFTER name;위와같이, users 테이블에 email 컬럼을 추가하는데 데이터타입은 VARCHAR(50)이고, UNIQUE 제약조건을 가지며 name 컬럼 뒤에 위치시킨다.삭제ALTER TABLE DROP COLUMN ;제약조건 수정기본키 추가ALTER TABLE ADD PRIMARY KEY ();..
·IT 공부/git
Git이란?Git은 소규모 프로젝트부터 대규모 프로젝트까지 모든 것을 빠르고 효율적으로 처리하도록 설계된 무료 오픈 소스 분산 버전 제어 시스템분산 버전제어시스템이란?분산형 버전제어시스템(DVCS, Distributed Version Control System)이란, 중앙에서 관리하고 있는 전체 프로젝트의 히스토리와 변경 내용을 복제하여, 로컬 환경에 저장소를 만들어 관리하는 방식그래서 왜 써야하는데?개발자라면 당연히 알고있어야되고, 써야하는 것으로 잘 알려져있는 git은 도대체 왜 필요한 것 일까?이직하기 전의 회사가, 버전관리시스템없는 환경이었기 때문에 얼마나 git(버전관리시스템)이 편리하고 중요한지에 대해 깨달을 수 있었습니다. 파일은 서버 파일 시스템으로부터 FTP를 이용해 다운로드하거나, 업로..
JONGI-N CHOI
내가 한 노력들