SQL자격증하면서 정말 많이 봤지만학습한 내용들을 복습하지 않으면 안되니 !한 방에 정리해보려합니다.DBMSRDBMS 외데이터베이스 구조 용어릴레이션(관계)정규화DBMS에 대해 알아보기 전에 데이터베이스를 알아합니다.데이터 베이스 : 데이터를 효율적으로 관리하고 활용할
설명: 날짜만 저장합니다.형식: YYYY-MM-DD (예: 2024-11-29)범위: 1000-01-01 ~ 9999-12-31특징: 시간 정보는 저장되지 않습니다.예제:설명: 날짜와 시간을 모두 저장합니다.형식: YYYY-MM-DD HH:MM:SS (예: 2024-1

MariaDB에서 DATETIME과 TIMESTAMP는 모두 날짜와 시간을 저장하기 위해 사용되지만, 주요 차이는 시간대(Timezone) 처리 방식과 동작 특성에 있습니다.시간대(Timezone)와 무관:저장된 값은 입력된 그대로 저장되며, 서버의 시간대나 클라이언트
JOIN 문은 두 개 이상의 테이블을 연결하여 데이터를 조회할 때 사용하는 SQL 구문입니다. 여러 종류의 JOIN이 있으며, 각각 특정 요구에 맞는 데이터를 가져옵니다.결국 '내'가 만드는 프로젝트랑은 다르기에 직접 시도하는게 짱이다.
SQL에서 ZEROFILL은 숫자형 데이터 타입에 사용되는 속성으로, 숫자를 자동으로 0으로 채워 정해진 자릿수를 맞춰주는 기능입니다.주로 INT 또는 DECIMAL 타입과 함께 사용되며, 숫자를 0으로 채워 출력하기 위해 사용됩니다. 이 속성을 적용하면 값이 자릿수보
A라는 컬럼의 속성으로 Auto increment 추가하는데이 Auto increment라는 놈은 데이터 삽입 실패 해도 값을 늘린다.또 원래라면 10이 들어올 차례에 사용자가 100을 입력하게 되면 다음 레코드는 101부터 시작하게 됨요
MySQL 출력:MySQL에서 timestamp는 \`'YYYY-MM-DD HH:mm:ss' 형식의 문자열로 반환됩니다.예: 2024-12-02 11:58:59JavaScript 출력:JavaScript의 Date 객체는 Date 객체가 자동으로 로컬 타임존을 반영하여
**위 코드는 연결이 완료된 데이터베이스에 SQL 쿼리문을 보내 데이터를 받아내고 받아낸 데이터로 API요청 처리를 할 수 있게 해주는 메서드입니다.** query()메서드에 1번째 인자로는 SQL 쿼리문을 넣어줄 수 있습니다. 위 예제 처럼 "SELECT * FR
이전에 작성한 .query()관련 글을 보고 오는 걸 추천합니다. \[링크]그런데 where의 조건이 동적으로 들어온다면 ?Group by의 조건이 동적으로 들어온다면 ?그래서 필요한 2가지 정도의 방식이 있습니다.위 코드는 SQL 쿼리를 작성할 때 문자열 보간법(템플
위 DELETE API 요청을 처리하고 res.status(200).json(results); 에서 아래 코드와 같은 객체가 반환되게 됩니다.이 데이터는 MySQL 쿼리를 실행한 결과로 반환된 메타데이터 객체입니다. MySQL에서 INSERT, UPDATE, DELET
SQL에서 기간별 조건을 적용하려면 WHERE 절에 날짜 및 시간 필드를 사용하여 조건을 작성할 수 있습니다. 데이터베이스에서의 날짜와 시간 처리 방식에 따라 다양한 연산자를 활용할 수 있습니다.다음은 몇 가지 일반적인 예제와 패턴입니다:BETWEEN 연산자를 사용하여
리팩토링 하기전에는 allBooks 함수 표현식에1\. if(category_id && newBook)문2\. if(category_id)문3\. else()문으로 조건식을 만들고 각 조건문 블록에 conn.queryI()문 중복 존재하는 걸 확인 할 수 있습니다.1.
데이터베이스 페이징은 큰 데이터셋을 작은 페이지 단위로 나누어 필요한 만큼만 가져오는 기술입니다. 대량의 데이터를 효율적으로 처리하고 클라이언트와 서버의 리소스 사용을 최적화하기 위해 사용됩니다.성능 향상: 한 번에 모든 데이터를 클라이언트로 보내면 서버 부하와 네트워
SQL의 EXISTS란?EXISTS는 SQL 서브쿼리의 결과가 존재하는지 여부를 확인하는 데 사용됩니다.결과가 하나 이상의 행을 반환하면 TRUE,행이 없으면 FALSE를 반환합니다.EXISTS는 보통 조건절에서 사용되며, 특정 조건에 해당하는 데이터가 있는지 확인할
selected의 값을 배열\[]로 받을 예정입니다.만약 위 코드에서 selected 배열의 개수가 동적으로 생성된다면..let sql변수의 c.id IN (?)의 플레이스 홀더?를 어떻게 동적으로 생성할 수 있을까요?Array.isArray(selected)가 tru

LAST_INSERT_ID()는 MySQL 및 MariaDB에서 마지막으로 삽입된 AUTO_INCREMENT 값을 반환하는 함수입니다. 주로 INSERT 쿼리 이후에 사용하여, 방금 삽입된 행의 고유 ID를 가져올 때 활용됩니다.현재 세션(session) 기준: LAS

위 코드는 mysql라이브러리 문법이고, Error 없이 실행하게 된다면JSON형으로 results가 반환되는데 , 그 반환되는 값이 맨 위 사진에 보듯 결과가 반환된다.이때 7가지의 반환데이터들에 대해서 알아보자.의미: 쿼리 결과에서 반환된 필드(컬럼)의 수입니다.S
아래는 DELETE, TRUNCATE, CASCADE, DROP 기능을 비교한 표입니다:DELETE:특정 데이터를 선택적으로 삭제 가능.테이블의 구조와 제약 조건은 유지.삭제된 데이터는 트랜잭션 로그에 기록되며, 롤백 가능.TRUNCATE:테이블의 모든 데이터를 빠르게
이전글에 DELETE, TRUNCATE, CASCADE, DROP 기능을 살펴 봤습니다.\[링크]테이블의 delete를 사용하게 되어도 Auto_Increment의 값을 유지 됩니다.그러나 Truncate를 사용하게 되면 Auto_Incremeent의 값은 0으로 초기
SQL_CALC_FOUND_ROWS는 MySQL에서 사용되는 쿼리 힌트로, SELECT문과 함께 사용하여 쿼리에서 페이징 처리를 할 때 유용합니다.페이징 처리는 데이터베이스의 특정 범위 데이터를 가져오면서, 전체 데이터의 개수(totalCount)도 함께 구해야 할 때