Sql개발자 16

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

Mysql Auto Increment, Primary Key, Foreign Key 옵션 정리

🤳 Mysql Auto Increment 란? 테이블 값을 입력하다보면 자동으로 값을 증가 시켜야된다. 그 이유는 테이블 마다 PK(primary key) 설정을 한다. 그래서 PK의 특징은 고유성(unique) 중복된 데이터를 가지면 안되는 특징 때문에 각 row에 index를 체크해서 자동으로 값을 올려주는 옵션이 AUTO_INCREMENT이다. 조건: 기본키(Primary Key)에만 옵션 부여가 가능하다. 사용 예제 CREATE TABLE auto_test( id INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY, name VARCHAR(64) ); 개념 : AUTO_INCREMENT을 사용하다가 1~5번까지의 데이터를 넣고 2~5번 데이터를 지우고 데이터를 다시 생성..

Sql개발자 2022.12.08

SQL 튜닝의 정리

SQL 튜닝의 필요성 SQL 쿼리문을 작업시 여기서 다양한 SQL쿼리가 성능의 차이를 초래할 수 있다. 데이터의 수가 몇만개가 있는 테이블을 풀스캔을 통해 조회를 하게 되면 정말 오랜시간이 걸리고 성능에 좋지않다. 이러한 상황을 개선할수있는 방법으로 SQL 쿼리의 성능에 따라 다양하게 튜닝작업을 할수있고 성능면에서 향상시킬수있어 튜닝에 필요성을 느낄수있다. SQL 튜닝을 알아보기 전에 먼저 SQL이란 무엇일까? Structured Query Language의 약자이다 SQL 종류는 크게 3가지 (TCL 제외하고)로 구분된다 DML(Data Manipulation Language) 데이터를 조작하는 명령어 Insert Delete Update Select DCL(Data Control Language) 데..

Sql개발자 2022.09.12

DBMS 와 RDBMS 개념 정리

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

Sql개발자 2022.09.11

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

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

SQL 정규화(Normalization) 와 반정규화(De-Normalizat)

SQLD Study 4일차 정규화란? 1. 정규화는 데이터의 일관성, 최소한의 데이터 중복, 최대한의 데이터 유연성을 위한 방법이며 데이터를 분해하는 과정이다 2. 정규화는 데이터 중복을 제거하고 데이터 모델의 독립성을 확보하기 위한 방법이다 3. 정규화된 모델은 테이블로 분해되고 , Join을 수행하며 하나의 합집합으로 만들수 있다 정규화 절차 (저는 시험문제로 제출될수 있는 BCNF 까지만 공부를 했습니다) 정규화 절차 설명 제1정규화 속성(Attribute)의 원자성을 확보한다 중복값을 제거한다 기본키를 설정한다 제2정규화 기본키의 2개 이상의 속성으로 이루어진 경우, 부분 함수 종속성을 제거 한다 제 3정규화 기본키를 제외한 칼럼 간에 종속성을 제거한다 즉 , 이행 함수 종속성을 제거한다 BCNF..

Sql개발자 2021.10.08

엔터티(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