MySQL 18

GraphQL Express Apollo-Server Mysql 서버 구축

GraphQL은 클라이언트가 서버로부터 효율적으로 데이터를 가져오는 것에 대해 흥미를 느껴서 GraphQL 활용해봤다. 프로젝트: Express와 GraphQL를 활용해서 RestfulAPI & GraphQL API 구축 학습: GraphQL 런닝커브가 있으며 Apollo-Server, schema, resolver 개념이 필요하다. GraphQL 구현 소스: Github Source ☝ 구현 소스를 보실수 있습니다. https://github.com/yoogukhyeon/graphql-express-server GitHub - yoogukhyeon/graphql-express-server Contribute to yoogukhyeon/graphql-express-server development by ..

Mysql - union, union all 차이

🤷‍♂️ UNION AND UNION ALL 사용법 차이? UNION이란? union ( distinct ): 중복을 제거한다. 쿼리의 결과를 합친다. 중복된 row는 제거 UNION ALL 이란? union all: 중복을 제거 하지 않는다. 쿼리의 결과를 합친다. 같은 ROW의 결과도 보여준다. 🤷‍♂️ UNION AND UNION ALL 개념? UNION ALL 중복을 제거하지 않으므로 UNION보다 속도가 빠르다 MySQL의 내부적으로 UNION ALL과 UNION을 처리하는 과정 최종 UNION[ ALL | DISTINCT ] 결과에 적합한 임시 테이블을 메모리 테이블로 생성 UNION 또는 UNION DISTINCT의 경우, 임시 테이블의 모든 컬럼으로 Unique Hash 인덱스 생성 쿼리 ..

Sql개발자 2022.12.21

Mysql Subquery 개념 정리!

🤳 Mysql 서브쿼리(subquery) 란? 서브쿼리(subquery)란 하나의 SQL 문 안에 포함되어 있는 또 다른 SQL문을 말한다. 첨 select 문이 메인쿼리이고 from (select) 문이 서브쿼리가 된다. select * from prem_board where 1 = 1 and b_no = ( select bc_seq from prem_board_comment group by bc_seq limit 1 ) order by b_no desc 🤳 Mysql 서브쿼리 장점? 서브쿼리는 쿼리를 구조화시키므로, 쿼리의 각 부분을 명확히 구분할 수 있게 해준다. 서브쿼리는 복잡한 JOIN이나 UNION과 같은 동작을 수행할 수 있는 또 다른 방법을 제공 서브쿼리는 복잡한 JOIN이나 UNION보다..

Sql개발자 2022.12.09

DBMS 와 RDBMS 개념 정리

DB - DataBase 데이터베이스는 여러 응용 시스템들의 통합된 정보를 저장하여 운영할 수 있는 공용 데이터들의 묶음입니다. 서로 연관된 여러 가지의 자료의 모음으로 그 내용을 구조화하여 검색과 갱신에 효율성을 높인 것입니다. DBMS란? DBMS는 DataBase Management System의 약자로 데이터베이스를 관리하는 시스템이다. 사용자와 DB사이에서 사용자의 요구에 따라 데이터를 생성해주고, DB를 관리해주는 소프트웨어이다. DBMS는 데이터를 계층 또는 탐색 형식으로 저장한다. DB는 여러사람이 공유하고 사용할 목적으로 관리되는 정보다. 데이터 베이스를 조작하는 소프트웨어를 DBMS라고 한다. RDB(Relational DataBase)란? 우선 RDB는 관계형 데이터 모델에 기초를 둔..

Sql개발자 2022.09.11

DB (MySQL) NULL 처리 내장함수(IFNULL, CASE)

MySQL에서 Column의 값이 Null인 경우를 처리해주는 함수들은 IFNULL, CASE 등등이 있습니다. 저는 제가 실무에서 주로 사용하는 IFNULL, CASE만 알아보겠습니다. IFNULL 해당 Column의 값이 NULL을 반환할 때, 다른 값으로 출력할 수 있도록 하는 함수이다. 기본 구조 SELECT IFNULL(Column명, "Null일 경우 대체 값") FROM 테이블명; EX: 간단하게 설명하자면 sec_to_time은 초를 시간으로 바꿔주는 함수입니다. cast는 문자열혹은 숫자로 변환해주는 함수입니다. 즉 컬럼에 값이 null 이라면 '00:00:00' 을 주는 ifnull 사용 방법입니다! CASE 해당 Column 값을 조건식을 통해 True, False를 판단하여 조건에 ..

카테고리 없음 2022.08.03

MySql 유용한 시간 더하기 빼기 함수

함수 설명 MySQL에서 특정 시간을 기준으로 더하거나, 빼야 하는 경우가 있습니다. 이 때 사용하는 함수가 DATE_ADD와 DATE_SUB입니다. DATE_ADD는 기준 날짜에 입력된 기간만큼을 더하는 함수고, DATE_SUB는 기준 날짜에 입력된 기간만큼을 빼는 함수입니다. 시간 더하기 DATE_ADD(기준 날짜, INTERVAL) 시간 빼기 DATE_SUB(기준 날짜, INTERVAL) 예제 시간 더하기 DATE_ADD(기준 날짜, INTERVAL) 시간 빼기 DATE_SUB(기준 날짜, INTERVAL) ▶DATE_ADD 예제 쿼리 (Example Query) 현재 시간 select now() 2022-07-20 12:00:00 현재 시간에 1초 더하기 쿼리 SELECT DATE_ADD(NOW(..

Sql개발자 2022.07.20

Mysql 타입변환 (type casting)

MySQL은 비교나 검색을 수행할 때 데이터의 타입이 서로 다를경우, 내부적으로 타입이 같아 지도록 자동 변환하여 처리합니다. 하지만 사용자가 명시적으로 타입을 변환 할수 있도록 연산자 함수를 제공하고 있읍니다. 대표적으로 제가 가장 유용하게 쓴 타입변환 함수를 보려합니다. CAST() CAST() 함수는 인수로 전달받은 값을 명시된 타입으로 변환하여 반환합니다. 이때 변환하고자하는 타입을 as에 전달을 하면됩니다. 대표적으로 이렇게 사용할수있습니다. 문자를 숫자로 변환할 때에는 select cast('1' as unsigned) as test 숫자를 문자로 변환할 때에는 select cast(2 as char(1)) as test

Sql개발자 2022.06.14

RDBMS MYSQL varchar vs char vs text 차이점

TYPE BYTE DESCRIPTION char 255 고정형 varchar 65535 가변형 text 65535 가변형 1. char 고정형 char(8)로 데이터타입 선언시 글자를 한개를 넣던 두개를 넣던 8byte의 공간을 차지한다. (고정) ex) 전화번호 , 주민번호 , 우편번호 등에 사용될수있음. 2. varchar 가변형 varchar(10)로 데이터타입 가변형 선언시 글자를 2개를 넣든 3개를넣든 2byte 3byte 공간을 유동적으로 차지한다. 3. text 가변형 text는 최대 65535자입니다. 값을 편집하거나 인덱스에 일부로 사용될수없습니다 그럼 varchar vs text 차이 index 일부로 사용가능 여부 varchar index에 사용가능하다. text index로 사용이 ..

Sql개발자 2022.04.16

Bcrypt를 활용해서 비밀번호를 암호화 하기

비밀번호 암호화 하는 이유? 사용자의 비밀번호를 데이터베이스에 저장할 때 비밀번호를 그대로 저장하게 되면 매우 위험하다. 만약 데이터베이스가 해커들에게 털리면 사용자의 개인정보 & 비밀번호가 그대로 노출되기 때문이다. 따라서 사용자들의 비밀번호를 해싱 알고리즘을 통해서 안전하게 데이터베이스에 저장하는이유다. 그래서 Bcrypt 사용하는 이유다. Bcrypt란? 웹 혹은 앱등등 개발을 할때 보안은 가장 기본적으로 수행되어야 할 요소입니다. 비밀번호를 그대로 DB에 저장을 한다면 해킹당할 위험이 있습니다. 이를 방지하고자 Bcrypt모듈을 활용합니다. Bcrypt는 단방향 해시 함수를 이용한 모듈로써 salt 라는 개념을 사용합니다. Salt라는 값과 해시된 비밀번호를 합쳐서 DB에 암호화 하여 저장을 합니..

SQL의 문법 순서와 실행 순서는 서로 다릅니다.

SQL 작업을 하다보면 SQL 실행 순서와 작동 순서를 숙지하고있다면 좋습니다. 문법 작성 순서와 실행 작동 순서를 알아보겠습니다. 문법 작성 순서 1. SELECT 컬럼명 2. FROM 테이블명 3. WHERE 조건식 4. GROUP BY 컬럼명 5. HAVING 조건식 6. ORDER BY 컬럼명 7. LIMIT 조건 QUERY 문법 작성 순서 입니다. 하지만 실행 작동 순서는 다릅니다 1. FROM 2. ON 3. JOIN 4. WHERE 5. GROUP BY 6. HAVING 7. SELECT 8. ORDER BY 실행 작동 순서는 1. FROM 테이블 조회 2. WHERE 데이터 조건 확인후 추출 3. GROUP BY 컬럽 그룹화 4. HAVING 그룹화 조건 5. SELECT 데이터 추출 6...

Sql개발자 2022.03.14

[문제해결] You are using safe update mode

에러현상 mysql 워크벤치를 사용할때 저런 에러현상이 나올떄가 있습니다. 이러한 에러 현상을 리턴합니다 Error Code: 1175. You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column To disable safe mode, toggle the option in Preferences -> SQL Editor and reconnect. 이러한 현상이유는 테이블에서 키값을 이용한 UPDATE나 DELETE만을 허용하도록 되어 있는데, 그렇지 않게 좀더 넓은 범위의 SQL을 적용하려고 할떄 WORKBENCH에서 경고를 주는것입니다 다수에 쿼리 사용할떄 저런 에러 현상이 발생 합..

Sql개발자 2021.10.20

관계형 데이터베이스 집합연산과 관계연산 & SQL 종류

SQL개발자 study 10일차 회사는 다니면서 병행하느라고 공부를 제대로 하지 못하고 있네요 ㅠㅠㅠㅠ 그래도 오늘은 아침일찍 출근해서 30분정도 끄적여본 공부를 다시 복습합니다 관계형 데이터베이스의 특징은 릴레이션을 사용해서 집합 연산과 관계 연산을 할 수 있다. 집합 연산 집한 연산 설명 합집합(UNION) - 두 개의 릴레이션을 하나로 합하는 것이다 차집합(DIFFERENCE) 본래 릴레이션에는 존재하지만 다른 릴레이션에는 존재하지 않는 것을 조회한다 교집합(INTERSECTION) 두 개의 릴레이션 간에 공통된 것을 조회한다 곱집합(CARTESIAN PRODUCT) 각 릴레이션에 존재하는 모든 데이터를 조합하여 연산한다 관계 연산 관계 연산 설명 선택 연산 릴레이션에서 조건에 맞는 행 만을 조회한..

Sql개발자 2021.10.19

MySql 구조 분석

회사 DATABASE TABLE 패턴과 자주쓰는 컬럼들을 정리했습니다. 저희 회사는 MYSQL 사용합니다 자주 사용하는 Data Type Char (문자형 데이터 타입) 고정 길이 데이터 타입 255byte (255자 까지) 지정된 길이보다 짧은 데이터를 입력될시 나머지 공간을 공백으로 채워진다 Varchar (문자형 데이터 타입) 가변 길이 데이터 타입 지정된 길이 보다 짧은 데이터를 입력될시 빈 공백을 채우지 않는다 Text (문자형 데이터 타입) 문자열 데이터 타입으로 장문에 글을 넣어야될때 사용된다 Int 정수형 데이터 타입 3byte로 unsigned 사용시에 음수값을 저장하지않는다 또한 INTEGER 라고도 사용한다 CHAR 와 VARCHAR 차이? char 와 varchar 차이 char는 ..

Sql개발자 2021.10.14

엔터티(Entity) 종류

SQLD 시험준비 2일차 엔터티(Entity) 종류 엔터티의 종류는 유형과 무형에 따른 종류, 엔터티가 발생하는 시점에 따른 종류로 나누어 진다 엔터티를 유형과 무형으로 분류하는 기준은 물리적 형태의 존재 여부이다 1. 유형과 무형에 따른 엔터티의 종류 유형 엔터티 업무에서 도출되며 지속적으로 사용되는 엔터티이다 개념 엔터티 유형엔터티는 물리적 형태이지만, 개념 엔터티는 물리적 형태가 없다 사건 엔터티 비즈니스 프로세스를 실행하면서 생성되는 엔터티 이다 2. 발생 시점에 따른 엔터티 종류 기본 엔터티 (basic) 키 엔터티 중심 엔터티 (Main) 기본엔터티와 행위 엔터티 중간에 있는것 행위 엔터티 (Actice) 2개 이상의 엔터티로부터 발생된다 3. 속성의 특징과 종류 1. 속정의 특징 = 속성은 ..

Sql개발자 2021.10.06

[SQLD] 데이터 모델링의 이해

1. 데이터 모델링의 특징 현실세계를 DB로 표현하기 위한 추상화 고객이 쉽게 이해할 수 있도록 단순화 복잡하지 않게 이해할수 있도록 명확성 추상화 Abstraction 단순화 Simplification 명확성 Clarity - 현실세계를 DB로 표현하기 위한 추상화 - 누구나 쉽게 이해 가능 - 복잡함 no - 모호하지 않고 , 명확하게 - 한가지의 의미를 가집 2. 데이터 모델링의 단계 1.개념적 모델링 2. 논리적 모델링 3. 물리적 모델링 개념적 모델링 논리적 모델링 물리적 모델링 - 업무 전체의 데이터 모델 정의를 수행하고 복잡하게 표현하지 않는다 - 업무적 용어는 가급적 피한다 - 개념적 모델링을 논리적 모델링 으로 변환하는 작업 - 정규화를 수행해서 데이터 모델의 독립성을 확보한다 - 데이터..

Sql개발자 2021.10.05

Mysql 제약 조건에 대해서 알아봐요!

제약조건은 (Constraint) 테이블에 잘못된 데이터의 입력을 막기위해서 일정한 규칙을 지정해서 사용하기 위한것입니다. 즉 제약조건(Constraint)이란 데이터의 무결성을 지키기 위해, 데이터를 입력받을 떄 실행되는 검사 규칙 입니다. 이러한 이유로 제약 조건은 CREATE 문으로 테이블을 생성할 때나 ALTER 문으로 컬럼을 추가할 때도 설정할 수 있다. Mysql 제약조건(Constraint)의 종류 1. Not Null = Null 값 입력 금지 (항상 값이 있어야된다) 2. Unique = 중복값 입력 금지 (null 값은 중복 입력 가능) 3. Primary Key = Not Null + Unique (항상 값이 있어야되고 중복금지) 4. Foreign key = 다른 테이블의 컬럼을 조..

Sql개발자 2021.10.04

NODE.JS ORM 과 Sequelize & Sequelize-cli 대해서

저희 회사에 프로젝트는 NODE.JS ORM방식을 활용하고 있기 때문에 저는 첨으로 ORM을 공부하게 되었습니다. ORM란? ORM(Object Relational Mappings)이란 프로그램 상의 객체(Object)와 DB의 테이블(Relation)이 일대일 대응하는 관계를 맺는것(Mappings)을 의미합니다. ORM을 이용하면 query가 아닌 메서드로서 데이터를 조작할 수 있다는 것이 큰 장점입니다. 예를 들면 USER 테이블을 조회 하기 위해서 MySql SELECT * FROM 테이블명 이렇게 USER 테이블을 조회할수 있다 하지만 ORM 활용하면 ORM USER맵핑 테이블에 USER.findAll() 로 USER테이블을 조회할수있다 이렇게 ORM에서는 테이블과 맵핑되는 객체의 메서드를 통해..

카테고리 없음 2021.09.25

MySql 자료형과 옵션 (Data Types and Options)

MySQL은 오픈 소스와 관계형 데이터베이스 시스템(Ralational DBMS) 입니다. MySQL의 기초 개념은 - TABL(테이블) : 데이터를 기록하는 최종적인 곳 - Schema(스키마) : 데이블들을 모아 놓은 곳 - 데이터베이스(Database) : 마찬가지로 테이블들을 모아 놓은 것 - 관계형 데이터베이스(Relational Database) : key : value 들이 간단한 관계를 테이블화 시킨 데이터 베이스 - SQL (Structrued Query Language) : 관계형 데이터베이스 관리 시스템의 데이터를 관리하기 위해 설계된 특수 목적의 프로그래밍 언어 - 쿼리(Query) : 데이터베이스에 정보를 요청하는 것. 질의 라고도 합니다 MySql을 사용하기 위해서는 기초 개념으..

ITstudy 2021.09.10