Database/MySQL (DBeaver) 22

[DBeaver] MySQL - 테이블 조인(Join)하기 (Foreign Key)

테이블 조인(Join)하기   Join이란 ?두 개 이상의 테이블에서 데이터를 결합하여 하나의 테이블로 사용할 수 있는 기능이다.Join을 사용하면 관련된 데이터를 효율적으로 검색하고 분석할 수 있다.  조인이 필요한 이유 예를 들어보자면, 중복데이터 관리!온라인에서 쇼핑을 할 때 고객의 데이터가 저장될 것이다.- 고객 정보 - 주문상품정보 고객이 상품을 주문했을 때 구매한 상품 정보만 저장하면 되는데이 두개가 한 테이블에 저장이 된다면 이름, 이메일이 중복으로 저장이 된다.  그러므로 고객정보와 고객이 구매한 상품 정보는 따로 저장을 해준다.고객이 가입을 하고 상품을 구매할 때 고객의 정보가 필요하기 때문에 테이블에서 아이디를 불러오는 작업을 해준다.이것을 관계형데이터베이스라고 한다.   이제 조인(j..

[DBeaver] MySQL - 시간 처리하는 함수 2

시간 처리하는 함수 2 date_add, date_sub, datename, dayofweek, weekday   - 날짜 연산 함수date_add, date_sub  date_add() : 날짜에 특정 기간을 더해준다.interval 3 year, interval 3 month, interval 3 day 등...사용예제 :3일 후의 날짜를 구하시오-> date_add(날짜, interval 3 day)date_sub(): 날짜에서 특정 기간을 빼준다.사용예제 :3일 전의 날짜를 구하시오.-> date_sub(날짜, interval 3 day)  - 요일 데이터 추출하는 함수datename, dayofweek ,weekday datename(): 영문 요일명 (Sunday, Monday, ...) SE..

[DBeaver] MySQL - 시간 처리 하는 함수들

시간 처리 하는 함수들   1. 현재 날짜, 시간 조회● 현재 날짜와 시간을 조회하는 함수now ()select now();now를 실행했을 때 다른 시간이 나오는 이유-> 글로벌서비스라서 UTC(절대시간) 을 반환한다.  ● 현재 날짜만 조회 하는 함수 curdate()select curdate();● 현재 시간만 조회 하는 함수 curtime()select curtime();    2. 날짜, 시간 데이터 중 일부데이터 가져오기  (년도, 월, 날짜, 시간, 분, 초, 요일) ● 년도만 가져오는 함수 year()select year(컬럼명)from 테이블명; ● 월만 가져오는 함수 month()select month(컬럼명)from 테이블명; ● 날짜만 가져오는 함수 day()select day(컬럼..

[DBeaver] MySQL - NULL 값인 데이터 변경하는 IFNULL() 함수

NULL 값인 데이터 변경하는 IFNULL() 함수    값이 null인 데이터를 다른 값으로 변경하여 출력할 때 ifnull() 함수를 사용한다.select ifnull(컬럼명, 변경값) as 새컬럼명from 테이블명;   stock_quantity에 null이 있으면, 0으로 나오게 조회하자. - null 값이 있는 전체 데이터 - ifnull을 사용해서 전체 데이터 옆에 null인 값을 0으로 바꿔서 조회했을 때select *, ifnull(stock_quantity, 0)from books;  - ifnull을 사용해서 null인 값을 0으로 바꿔서 전체 데이터를 출력하고싶을 때select id, title, author_fname, author_lname, released_year, ifnull..

[DBeaver] MySQL - 페이징 처리 하는 LIMIT 키워드, offset

페이징 처리 하는 LIMIT 키워드, offset    데이터를 끊어서 가져올 때 limit 키워드를 사용한다.  ● books 테이블의 데이터를 5개만 가져오기select *from bookslimit 5;  - offset 이란?데이터를 가져오는 시작점이다.limit 0, 5 : 처음부터 5개 가져와라.   --> 1~5limit 5, 5 : 그다음의 5개 가져와라.   --> 6~10// MySQL에서 데이터는 0부터 시작한다.   ● books 테이블의 데이터를 처음부터 5개만 가져오기  ● 그 다음의 5개만 가져오기     정렬 키워드와 같이 사용해보자. ● 출간년도가 제일 낮은순으로 정렬해서 5개만 가져오기// limit는 마지막에 입력해준다.select *from booksorder by r..

[DBeaver] MySQL - 그룹화한 데이터에 조건 적용하기 : HAVING

그룹화한 데이터에 조건 적용하기 : HAVINGgroup by 로 데이터를 그룹화한 데이터에 조건을 적용하려면 HAVING을 사용한다.   사용예제- 출간년도가 2000년 이상인 데이터에서  년도별 재고수량의 평균값이 70보다 큰 데이터의 년도와 평균값을 조회  // 입력 순서대로 정리해보면 이렇다.출간년도가 2000년 이상인 데이터에서--> select *from bookswhere released_year >=2000;년도별 재고수량의 평균값이 70보다 큰select *from bookswhere released_year >= 2000group by released_year HAVING stock_quantity > 70; 최종 데이터의 년도와 평균값을 조회select released_year, AV..

[DBeaver] MySQL - 그룹화해서 데이터 조회하는 GROUP BY 키워드

그룹화해서 데이터 조회하는 GROUP BY 키워드  ~~별로 데이터를 묶어서 조회할 때 사용한다.select *from 테이블명group by 컬럼명;   사용예제author_fname 별로 몇권의 책을 썼는지  fname과 책의 수 조회select author_fname, count(author_fname) as book_cntfrom booksgroup by author_fname;    년도별로 책이 몇권 출간되었는지 년도와 책의 수 조회select released_year, count(released_year) as book_cntfrom booksgroup by released_yearorder by released_year desc;          // 보기 편하게 정렬까지 해서 조회

[DBeaver] MySQL - 조건문 함수 if()와 case 키워드

조건문 함수 if()와 case 키워드  if() 함수데이터를 가공할 때 2가지 상황에 대해서 처리하는 함수이다.조건의 참/거짓 여부에 따라 값을 출력한다.  사용예제: books 테이블에서 페이지수가 300 이상인 책은 긴책,  그렇지 않으면 짧은책이라고 하고 컬럼 이름은 book_type으로 한다.select *, if(pages >= 300, '긴책', '짧은책') as book_typefrom books;  사용예제: 출간년도가 2000년 이상인 책들은 최신책이라 하고  그렇지 않으면 예전책 이라고 하자. 컬럼 이름은 typeselect *, if(released_year>=2000, '최신책', '예전책') as typefrom books;   case 키워드if는 조건이 2가지일 때 사용한다...

[DBeaver] MySQL - 값이 null인 데이터 조회하기

값이 null인 데이터 조회하기   값이 null인 데이터를 조회할 때는: is nullnull이 아닌 데이터를 조회할 때는: is not null을 사용해준다. 사용법select *from 테이블명where 컬럼 is null;   재고가 null인 데이터를 조회select *from bookswhere stock_quantity is null; 재고가 null이 아닌 데이터를 조회select *from bookswhere stock_quantity is not null;

[DBeaver] MySQL - 부등호 (=, !=, >, <, >=, <=)와 BETWEEN 키워드

부등호 (=, !=, >, =,    특정 범위 내에 값을 조회할 때 부등호와 between 키워드를 사용한다.  ● 부등호 ( =, != ) 출간년도가 2017년인 데이터 조회( = )select *from bookswhere released_year = 2017;  출간년도가 2017년이 아닌 데이터 조회( != )select *from bookswhere released_year != 2017;  ● 부등호 ( >, =,  책의 재고가 100보다 크거나, 30보다 작은 데이터 조회( >,  // ~거나 일 때는 or를 사용해준다.select *from bookswhere stock_quantity >100 or stock_quantity       출간년도가 1990년도에서 2015년 사이의 책 데..

home