728x90
반응형
SMALL

안녕하세요, 혼자 공부하는 SQL을 보고 학습한 자료를 남깁니다.

 

ORDER BY 절

SELECT문의 차례는 꼭 지켜야 합니다.

ORDER BY 절은 결과를 바꾸진 않는다. 다만 차례를 바꾼다.

작업할 때 이렇게 전체 데이터베이스 구성도를 펼쳐 놓고 프로그래밍을 하는 것이 좋다.

드래그한 부분 즉 ORDER BY 절은 제외하고 한 번 쿼리를 실행을 해보자.

Work bench를 끄고 다시 실행을 하면 USE 데이터베이스가 지워집니다. 그래서 다시 USE 문을 실행을 해주어야 합니다.

ORDER BY를 사용을 하면 자동으로 오름차순을 사용을 한다.

DESC를 사용을 하면 내림차순을 사용을 한다.

ASC는 보통 생략된다.

만일 SELECT문 순서가 다르면 오류가 발생한다.

잇지와 트와이스는 키가 같다. 이렇게 동률일 때는 ORDER BY에 컬럼을 더 추가해서 추가한 컬럼으로 순서를 더 나눌 수 있다.

그래서 만일 키가 같을 시 데뷔 일자로 순서를 정렬하는 쿼리문을 만들 수 있다.

LIMIT을 사용을 하면 3개의 행을 잘라서 보여준다.

그래서 조회한 결과에서 위 3개의 행만 자르고 나머지는 안 보여준다.

WHERE 절은 생략은 가능하지만, 순서가 변경되는 것은 안 된다.

데뷔 일자 오름차순으로 정렬하여 조회한 결과를 LIMIT 명령어를 통해서 3개의 행만을 잘라서 조회한다.

LIMIT은 반드시 ORDER BY절 다음에 나와야 한다.

LIMIT에도 옵션이 있다. 

예를 들어 LIMIT 3,2를 하면

3번째 초과부터 2개를 조회한다.

예를 들어 회원이 사는 지역을 알고 싶다.

컬럼에 addr 만을 조회를 하면 여러 지역들이 나오게 된다.

그러면 DISTINCT문을 사용하면 굉장히 편리하다.

중복된 컬럼을 다 제거하고 하나씩만 보여준다.

회원들은 딱 5개의 지역에서만 살고 있다는 것을 알 수 있게 된다.

GROUP BY절

GROUP BY는 그룹으로 서로를 묶어주는 것이 바로 GROUP BY 에요.

회원들의 buy 테이블을 알아보려고 한다.

각각 회원이 몇개 구매를 했는지 알고 싶어해요.

GROUP으로 묶어서 합계를 구하고 싶다.

그러면 집계함수를 쓰면 된다.

SUM()함수를 사용을 하면 합계를 구할 수 있다.

mem_id별로 그룹을 묶어가지고 합계를 내라.

mem_id별로 묶어서 SUM() 합계를 내라의 의미이다.

이렇게는 우리가 직접 합칠 수가 없다. 그래서 GROUP BY절 및 집계 함수를 사용한다.

회원 아이디 및 총 구매 개수의 별칭을 주어서 조금 더 깔끔하게 결과를 조회할 수 있다.

총 구매 금액이 궁금할 수 있다.

이 경우 price * amount 의 SUM을 구하면 된다.

회원이 한 번 올때 마다 몇개 씩 구매하는지 평균을 구하고 싶다.

그러면 AVG()함수를 사용을 하면 된다.

그러면 각 mem_id별 평균 구매 개수를 구할 수가 있다.

COUNT() 함수를 사용을 하면 총 갯수를 구할 수가 있다.

COUNT(*)를 하면 *은 모든 행을 의미하기 때문에 모든 행의 갯수를 파악한다.

예를 들어, 만일 핸드폰이 있는 회원만 조회를 하고 싶다면 COUNT(phone1) 을 사용해서 조회를 하면 된다.

COUNT() 함수는 비어있는 행은 조회를 하지 않는다.

별칭을 사용해서 이쁘게 결과를 출력했다.

mem_id별 총 구매 금액이 1000 초과인 그룹을 구하려고 한다.

하지만 WHERE SUM(price*amount) > 1000 을 사용하면 오류가 발생하는 것을 확인할 수 있다.

그래서 HAVING절을 써야 한다.

그룹함수를 조건절로 사용하고 싶다면 

HAVING절을 사용해라

그러면 결과가 정상적으로 조회가 된 것을 볼 수 있다.

만일 결과를 ORDER BY를 하고 싶다면 ORDER BY 절에 집계 함수를 추가할 수 있다.

그러면 결과가 차례가 정렬되어서 조회된 것을 볼 수 있다.

 

감사합니다.

https://www.youtube.com/watch?v=6qkPy7RfLqQ&list=PLVsNizTWUw7GCfy5RH27cQL5MeKYnl8Pm&index=8

 

728x90
반응형
LIST
728x90
반응형
SMALL

안녕하세요, 혼자 공부하는 SQL을 보고 학습한 자료를 남깁니다.

SELECT문

SELECT문은 SELECT~FROM~WHERE 절로 사용되는 것이 가장 보편화된 방법이다.

무엇을 선택하라는 이야기잖아요.

테이블들을 가져와서 조회를 하는 것이 바로 SELECT문이다.

테이블들을 변경을 하는 것은 아니다.

읽기만 한다.

이 그림을 갖고 같이 공부를 해볼 것이다.

회원은 10건 그리고 구매는 12건이 있다.

샘플 데이터베이스가 MySQL에도 있고, 다른 데이터베이스도 샘플 데이터베이스를 제공을 해주는데 문제는 영문으로 제공을 해준다. 그래서 초보자 분들께서 사용을 하실 때 감이 안오는 경우가 많다.

인터넷 쇼핑몰이라고 보시면 되겠다.

인터넷 쇼핑몰을 가정해서 회원을 관리한다.

회원이 10명 있다. 이 회원이 물건을 구매한게 12건 있다.

이렇게 두 가지 테이블을 가지고 실습을 진행을 하겠다.

market_db 라고 데이터베이스 이름을 줄 것이다.

member 그리고 buy 이 두 가지 테이블이 있다.

회원 테이블과 구매 테이블은 1:N의 관계이다.

 

실습

File > Open SQL Script 를 클릭하면 

다음과 같이 SQL Script를 열 수 있다.

어떠한 SQL문도 드래그를 하지 않고 위의 번개 표시를 클릭을 하면

SQL Script가 실행된 것을 볼 수 있다.

만일 데이터에 문제가 생긴다면

다시 이와 같은 스크립트 파일을 실행을 하면 

DB를 DROP하고 다시 데이터 베이스를 만들고 DB를 적용하고 테이블들을 만들고, 데이터를 입력하고 마지막으로 SELECT문으로 테스트까지 한다.

_를 사용을 해서 컬럼명을 알아보기 쉽게 만든다.

-- 를 통해서 주석을 달아 각 컬럼에 대한 설명을 적을 수 있다.

핸드폰 번호의 경우 숫자이지만 계산을 하거나 하는 용도가 아니면 010처럼 숫자와 다른 형식도 들어가므로 문자열로 타입을 설정한다.

키는 SMALLINT로 작은 정수로 데이터 타입을 명시한다.

전화번호가 없는 회원이 있을 수 있다.

그래서 스크립트를 실행을 하면 항상 초기화가 된다.

다운로드를 하여서 저장해 놓는다.

SCHEMAS 창에서 우클릭을 하고 'Refresh All' 버튼을 클릭을 하면

SCHEMAS 창이 새로고침이 된다. 

그러면 market_db가 생성된 것을 볼 수가 있다.

모든 쿼리문의 끝은 ;(세미콜론)으로 끝난다.

*를 통해서 member 테이블의 모든 열들을 조회할 수 있다.

SELECT문을 실행을 하면 result창에 결과가 조회된다.

조회된 결과는 목록으로 나오며, 차례가 다를 수 있다.

알파벳 순으로 정렬이 된 것이다.

USE를 잘못 사용을 하면 다른 데이터베이스를 사용하게 될 수 있다.

USE문을 사용하면 다시 USE문을 사용할 필요는 없다.

하지만 USE문을 여러번 사용을 했다고 해서 문제가 생기는 것은 아니다. 그냥 다시 실행될 뿐이다.

실제로 데이터가 정말 많다면, WHERE 조건문을 사용해서 일부 내용만 파악을 해야 한다.

주로 SELECT문은 WHERE 조건절과 같이 세트로 사용이 된다.

이렇게 Enter를 쳐서 절을 나누어도 무방하다.

테이블은 market_db 데이터베이스 안에 있는 테이블을 실질적으로 조회를 하는 것이다.

따라서 위의 USE market_db문이 없더라도 market_db 데이터베이스 안에 있는 테이블을 조회가 가능하다.

예제에서는 market_db를 USE문을 사용하였으므로 SELECT문으로 조회할 시 market_db를 테이블 명 앞에 명시해줄 필요는 없다.

USE sys; 문을 사용을 하였다.

market_db를 테이블 명 앞에 명시를 해주었으므로 SELECT문을 조회를 하면 다시 market_db 안에 있는 member 테이블에서 데이터가 조회가 된다.

하지만, 여러 데이터베이스를 오가면서 데이터를 조회할 일은 거의 없다.

만일 오류가 발생하면 Output창에 조회가 발생한다.

초록색은 정상적으로 쿼리가 실행된 것이고,

만일 오류가 발생을 하면

이와 같이 빨간색으로 오류가 발생한 것을 볼 수 있다.

sys 데이터베이스에 member 테이블이 없다는 의미이다.

특정 테이블 컬럼을 조회해야 할 때는 먼저 SELECT * 구문을 사용하여 모든 테이블을 result 창에서 조회를 한 다음

필요한 컬럼만 다시 조회해서 SELECT문을 만들면 된다.

이렇게 특정 컬럼만을 하여 조회를 한 것을 볼 수 있다.

하지만 컬럼명이 영어로 되어있기 때문에 우리는 어떤 컬럼에서 정보를 가지고 왔는지 그리고 어떤 데이터를 가지고 왔는지 파악하기가 한눈에 어려울 수 있다.

이런 경우 Alias를 사용한다.

키 처럼 띄어쓰기가 없는 경우 Alias를 그냥 입력해도 되고,

데뷔 일자 처럼 띄어쓰기가 있는 경우 ""(쌍따옴표)로 묶어주어야 한다.

result에 조회된 결과는 컬럼명이 실제로 한글로 표기가 되었지만, 이는 참조일 뿐이며, height 또는 debut_date 컬럼명으로 결과가 조회된 것이다.

별명을 줄 수 있다.

다음과 같이 여러 WHERE 절을 이용한 구문들이 가능하다.

WHERE height <= 162 는 회원 테이블에서 평균 키가 162 이하인 그룹들을 조회하는 것이다.

만일 WHERE height >= 165 AND mem_number > 6 라면 두 조건을 모두 만족하는 그룹들이 조회가 될 것이다.

WHERE height >= 165 OR mem_number > 6 이라면 두 조건 중 하나라도 만족을 하는 그룹들이 조회가 될 것이다.

WHERE height >= 163 AND height <= 165 라면 평균키가 163이상이며 165이하인 그룹을 결과로 조회한다.

이는 WHERE height BETWEEN 163 AND 165와 완전히 일치하다.

WHERE addr = '경기' OR addr = '전남' OR addr = '경남' 은 AND로 엮는 것이 말이 안된다. 왜냐하면 한 멤버가 주소가 경기에서 살거나 전남에서 살거나 경남에서 사는 것은 말이 안되기 때문이다. 그래서 OR로 묶어주어야 경기에서 사는 멤버, 전남에서 사는 멤버 그리고 경남에서 사는 멤버가 모두 조회가 된다.

WHERE addr IN('경기', '전남', '경남'); 숫자가 아니라 문자 같이 띄어져 있는 것 떨어져 있는 것은 IN을 사용하면 됩니다.

LIKE의 경우 문자를 비교하는 것이다.

WHERE mem_name LIKE '우%' 자가 들어간다.

'우' 자가 들어가고 뒤에는 무엇이든지 관계가 없어요. =(이퀄)을 사용을 하면 결과가 조회가 안된다. 

한 개의 글자는 _(언더바)이다.

 

감사합니다.

https://www.youtube.com/watch?v=_JURyg_KzHE&list=PLVsNizTWUw7GCfy5RH27cQL5MeKYnl8Pm&index=7

 

728x90
반응형
LIST
728x90
반응형
SMALL

안녕하세요, 혼자 공부하는 SQL을 보고 학습한 자료를 남깁니다.

 

데이터베이스 개체

뷰, 인덱스, 스토어드 프로시저, 트리거 등 데이터베이스 내에 있을 수 있는 오브젝트이다.

테이블이 대표적인 데이터베이스의 개체이다.

테이블을 돌리기 위해 나머지 필요한 개체들이 있다.

이 내용 하나 하나가 공부할 것이 있다.

 

인덱스

데이터를 조회할 때 데이터가 빠르게 나올 수 있도록 만드는 것이다.

실무라면 데이터가 몇백만건, 몇천만건 되면 컴퓨터가 느려지게 된다.

책의 찾아보기 개념과 거의 동일한 개념이다.

폭포수 모델이라는 글자를 찾아보라고 하면 1페이지부터 다 찾아봐야 한다.

그런데 찾아보기로 ㅍ을 찾으면

1페이지를 다 뒤지는 것 보다 두 세번 만에 찾을 수가 있다.

이것이 바로 인덱스의 도움 때문이다.

인덱스는 없어도 관계는 없다.

책 내용이 바뀌는 것은 아니다.

빨리 찾을 수 있는 도움을 주는 것이지 실무에서는 대용량의 데이터를 사용할 때는 너무 오래 걸려요.

실무에서는 인덱스를 반드시 사용한다.

SELECT * FROM member WHERE member_name = '아이유'; 를 실행을 한다.

result의 우측에 밑의 화살표를 클릭을 하면 여러 탭들을 볼 수가 있다.

그 중 Execution Plan을 클릭을 하면 다음과 같이 실행계획을 볼 수 있다.

빨간색으로 Full Table Scan 즉 전체 테이블을 뒤져서 아이유를 찾아냈다.

이것 사실 무지하게 오래 걸리는 일이다.

처음에 Index는 없다.

Index를 만들어준 다음에 진행을 해야 한다.

CREATE INDEX idx_member_name ON member(member_name); 명령어를 통해서 실행을 하면 눈에 보이는 결과는 없지만 

맨 아래 Output 창에 초록색 체크 표시로 인덱스 생성 쿼리문이 완료된 것을 볼 수가 있다.

이렇게 찾아보기를 만든 것이다.

다시 SELECT문을 실행을 하면

다음과 같이 Execution Plan(실행 계획)이 조금 바뀐 것을 볼 수가 있다.

원래 Full Table Scan인데

지금은 Non-Unique Key Lookup 인데 이를 인덱스를 사용해서 아이유를 찾아냈다는 의미이다.

엄청나게 빠른 결과이다.

진짜 데이터 건수가 많더라도 진짜 빠른 결과를 낼 수 있다.

 

뷰는 가상의 테이블이다. 진짜 데이터가 없다.

뷰는 마치 윈도우에 바로가기와 비슷한 개념이다.

바로가기 프로그램인 Microsoft Edge를 보면 다음과 같이 대상의 위치가 나온다.

이 디렉터리의 실행파일이 실제로 실행되는 것이다.

뷰 또한 비슷하다.

뷰도 내가 뷰를 실행한 것 처럼, 테이블을 실행한 것 처럼 착각하지만

실제로는 뷰에서 테이블을 가져와서 보여주는 것이다.

뷰가 아니라 테이블에 접근한 것과 동일한 효과를 내는 것이다.

뷰는 테이블을 SELECT하는 구문이다.

뷰에 SELECT가 작동을 해서 

뷰의 SELECT가 작동을 해서

다시 테이블에 접근을 해서 데이터를 가져와서 실행이 되는 것이다.

뷰를 직접 만들어보겠다.

SQL+ 버튼을 클릭을 하면 새 쿼리 창을 만들 수 있다.

CREATE VIEW 하고 뷰 이름을 지어줍니다. member_view

그리고 그 밑에 AS 하고

SELECT문을 입력을 하면

VIEW는 실제 SELECT문이에요

Output창의 #10번의 result를 보면 초록색 표시로 체크된 것을 볼 수 있다. Action과 Message 그리고 Duration/Fetch 창을 볼 수 있다. 실행된 쿼리문, 이에 대한 메시지 그리고 처리 시간 / Fetch 등을 확인해 볼 수 있다.

뷰 생성문이 완료된 것이다.

뷰를 다시 실행을 하면

데이터에 있는 SELECT문이 결과로 나오는 것을 볼 수가 있다.

 

스토어드 프로시저

SQL문은 프로그래밍 언어와는 조금 다르다.

하지만 이를 가능하게 해주는 것이 바로 스토어드 프로시저이다.

예를 들어 IF문 또는 반복문등을 SQL문으로 만들 수 있도록 도와주는 것이 바로 스토어드 프로시저이다.

만일 쿼리 탭을 닫을 때 실행도중 이와 같은 창이 나온다면 

저장하지 않을 것이므로 Don't Save 버튼을 클릭하면 된다.

만일 두 개의 쿼리문을 동시에 아주 자주 많이 사용한다고 가정을 해보자.

자주 까먹을 수가 있다. 그래서 이를 스토어드 프로시저를 만들어서 사용할 수 있다.

DELIMITER //과 DELIMITER; 는 두 명령문 사이의 쿼리문을 묶어주는 역할을 수행 한다.

다음 화면은 예약어로 이루어진 프로시저의 예시이다.

이름은 myProc이다. 

이를 실행을 하면 다음과 같은 Output 창에서 프로시저 생성문이 완료된 것을 볼 수 있다.

CALL 예약어를 통해서 프로시저를 실행할 수 있다.

실행을 하면 다음과 같이 두 개의 쿼리문이 실행된 것을 볼 수 있다.

탭이 두개이다. (Result3, Result4)

CALL만 갖고도 이 두개의 쿼리문을 실행한 것이다.

저장 프로시저가 프로그래밍 용어에 들어가서 사용할 수 있는 일이 많다.

 

감사합니다.

https://www.youtube.com/watch?v=lBk5YhLZevs&list=PLVsNizTWUw7GCfy5RH27cQL5MeKYnl8Pm&index=6

 

728x90
반응형
LIST
728x90
반응형
SMALL

안녕하세요, 혼자 공부하는 SQL을 보고 학습한 자료를 남깁니다.

 

데이터베이스 구축 절차

데이터베이스 만들기 -> 테이블 만들기 -> 데이터 입력/수정/삭제하기 ->> 데이터 조회/활용하기

DBMS 설치하기

소프트웨어는 이미 설치를 하였다.

설치 시 원래 갖고 있던 system 데이터베이스 또는 sample 데이터베이스는 들어가 있다.

하지만 우리가 만들 쇼핑몰 데이터베이스는 아직 만들지 않았다.

쇼핑몰 데이터베이스를 만들어야 한다.

실습

 

schemas 는 데이터베이스와 같은 용어이다.

schemas 창을 우클릭 하고 'create schema'를 클릭하면

다음과 같이 데이터베이스를 만들 수 있다.

소문자로 적는 이유는 대문자로 적더라도 어차피 다시 소문자로 변환이 된다.

apply 버튼을 클릭하면

다음과 같은 창이 실행되고 SQL문을 볼 수 있다.

원칙은 우리가 MySQL workbench를 사용하지 않고 SQL문을 사용해서 데이터베이스를 만들어야 한다.

처음에는 우리가 익숙하지 않아서 workbench를 사용하도록 하고 후반부에는 우리가 SQL문을 사용하도록 할게요.

apply 버튼을 클릭하고 성공창을 보고 finish 버튼을 클릭하면

다음과 같이 shop_db가 만들어진 것을 볼 수가 있다.

File > Close Tab 을 클릭해서 Tab들을 모두 닫을 수 있다.

그러면 데이터 베이스를 완성하였고

다음과 같이 데이터베이스 안에 테이블을 만들 차례이다.

모델링을 했다는 가정 하에 표를 보고 테이블들을 만들어보겠습니다.

아이디, 회원 이름 그리고 주소는 전부 다 영어로 작성을 해야 한다.

아이디를 기본 키로 할 것이고 회원 이름은 영문 이름으로 주어야 한다.

테이블을 만들어보겠다.

shop_db를 우클릭하고 'create table' 버튼을 클릭한다.

Table Name에는 member를 소문자로 입력하고

Column에 더블 클릭을 하면 다음과 같이 Column Name과 Datatype 및 PK와 NN등을 설정할 수 있다.

테이블을 다 만들었으면

하단 우측에 Apply 버튼을 클릭하면

다음과 같은 창이 열리는 것을 볼 수 있다.

'Apply' 버튼을 클릭을 하면 테이블이 만들어진 것을 볼 수 있다.

shop_db > Tables > member > Columns 를 더블 클릭을 하면 다음과 같이 만들어진 컬럼들을 볼 수 있다.

다음과 같이 member, product 이렇게 두 개의 테이블을 만들었다.

데이터 입력하기

행은 열 단위로 넣는 것이 아니라 가로 단위로 넣어야 한다.

위와 같이 데이터를 간단하게 넣어볼 예정이다.

member 테이블에 우클릭하고 Select Rows - Limit 1000 을 클릭하면 

다음과 같은 창이 뜬 것을 볼 수가 있다.

result를 보면 데이터가 없어서 null이 나오는 것을 볼 수 있다.

result의 행을 더블 클릭하면 다음과 같이 데이터를 입력하거나 수정할 수 있다.

다음과 같이 창이 부족할 경우 늘려서 창의 크기를 늘릴 수 있다.

member_addr 탭을 늘린 화면이다.

이렇게 더블클릭하여 데이터를 입력할 수 있다.

다음 화면은 데이터 4개를 입력한 것이다.

Apply 버튼을 클릭을 하면

다음과 같은 창이 뜬 것을 볼 수 있다.

'Apply' 버튼을 클릭을 하면 

데이터가 성공적으로 입력이 된 것을 확인할 수 있다.

product 테이블에도 데이터를 입력하였다.

다시 새로운 데이터를 member 테이블에 추가해보겠다.

select rows - limit 1000 버튼을 클릭하고 result 창에서 새로운 행을 더블클릭 한 다음 새로운 데이터를 입력하고 'Apply' 버튼을 클릭을 하면 

다음과 같이 SQL문이 자동 완성되는 것을 볼 수 있다.

머라이어가 '영국 런던 먹자골목'으로 이사를 갔다고 가정을 해보자.

머라이어 행의 member_addr을 더블클릭하고 다음과 같이 데이터를 수정한다.

그리고 'Apply'버튼을 클릭을 하면

만일 회원이 탈퇴를 했어요.

그러면 ▶ 버튼이 있는 곳에 우클릭하고 Delete Row(s) 버튼을 클릭하면 

다음과 같이 행이 지워지는 것을 볼 수가 있다.

'Apply' 버튼을 클릭하면

다음과 같이 SQL문이 나오고 'Apply' 버튼을 클릭을 하면 

행이 완전히 삭제가 된 것을 볼 수 있다.

이렇게 다음 표와 같이 데이터 베이스 구축을 완전히 완료를 했다.

안에 테이블을 만들었고, 데이터를 입력했고, 수정도 했고 삭제도 했다. 이렇게 데이터베이스 구축을 완전히 끝냈다.

데이터의 활용이 더 중요하다.

SELECT문이라는 아주 중요한 쿼리문을 배워볼 것이다.

데이터를 다 만들었으니 데이터를 다 조회하는 것을 해보겠다.

SELECT 문을 소문자로 입력할 수도 있지만 대문자로 입력을 했다.

예약어이기 때문이다.

예를 들어 CALL을 입력하면 안 된다.

예약어가 아니기 때문이다. 약속된 것이 아니기 때문이다.

SELECT * INTO 이렇게도 입력하면 안 된다.

예약어가 아니기 때문이다. 약속된 것이 아니기 때문이다.

* 를 통해서 모든 테이블의 열들을 볼 수 있다.

SQL문을 실행하기 위해서 shop_db를 더블클릭을 하면 다음과 같이 좌측 창에 shop_db가 조금 두꺼워졌다.

지금부터 SQL문에 작성한 member 테이블은 shop_db안에 있다.

그리고 이 SQL문은 shop_db한테 적용시킨다는 의미가 된다.

드래그 해서 번개버튼을 누르면

다음과 같이 result가 나타나는 것을 볼 수가 있다.

보고 싶은 데이터를 특정하고 싶다면

열을 직접 입력하여 SELECT문을 작성할 수도 있다.

member_name과 member_addr 이렇게 보시면

이 두개의 열만 볼 수 있다.

출력을 해보면

다음과 같이 두 개의 열이 출력되는 것을 볼 수 있다.

또 다른 예제로 member_name이 '아이유'인 데이터만 보고 싶다

그러면 WHERE절에 member_name='아이유' 절을 추가해서

다음 result에 나오는 것과 같이 아이유 데이터만 볼 수 있다.

만일 다음과 같이 두개의 SQL문을 작성을 해서 실행을 하면

member5, member6 이렇게 두 개의 탭으로 나누어서 result가 나오는 것을 볼 수가 있다.

쿼리문을 두개를 동시에 날리는 경우는 드물다.

그래서 보통 선택해서 쿼리문을 실행을 한다.

SCHEMAS창에서 shop_db를 우클릭하고 'Drop Schema...' 버튼을 클릭을 하면 

shop_db를 지우고 다시 만들어서 연습해 볼 수 있다.

아니면 shop_db2를 만들어서 작업을 해도 된다.

이 내용에 대해 자세히 이해하면 좋다.

 

감사합니다.

https://www.youtube.com/watch?v=EftIRlr6rPI&list=PLVsNizTWUw7GCfy5RH27cQL5MeKYnl8Pm&index=5

 

728x90
반응형
LIST
728x90
반응형
SMALL

안녕하세요, 혼자 공부하는 SQL을 보고 학습한 자료를 남깁니다.

 

데이터베이스 모델링

데이터베이스 모델링은 건축 설계도와 같다.

프로젝트 진행 단계

프로젝트 - 현실 세계에서 일어나는 업무를 컴퓨터 시스템으로 옮겨놓는 과정이다.

더 쉽게는 '대규모 소프트웨어'를 작성하기 위한 전체적인 과정이라고 볼 수 있다.

간단한 프로젝트는 한 두명이 작업 가능하다.

복잡한 프로젝트는 한 두명이서 작업하는 것은 불가능하다.

대표적인 모델은 '폭포수 모델'이다.

폭포수가 떨이지듯이 작업을 하는 것이다. 단계별로 프로젝트를 진행하는 것이다.

1. 프로젝트 계획, 2. 업무 분석, 3. 시스템 설계, 4. 프로그램 구현, 5. 테스트, 6. 유지보수

 

일반적으로 데이터 베이스 모델링은 시스템 설계에 속한다.

우리가 살고 있는 세계를 데이터베이스에 넣기 위한 작업

데이터베이스 안에는 테이블들이 필요하다. 현실세계에서 테이블이 오는 것이다.

예를 들어 회원 테이블, 직원 테이블, 구매 테이블, 물품 테이블

이런식으로 테이블을 만들 수 있습니다.

 

데이터 모델링은 정답은 없다.

현실세계에서 추출을 할 때 사람에 따라서 다르게 추출을 할 수 있다.

하지만 모범답안 정도는 있다.

설계도를 잘 못 그리면 건축물이 안 예쁘거나 위험할 수 있다.

그렇듯이 데이터베이스 모델들도 좋은 모델링과 나쁜 모델링도 존재한다.

데이터 모델링이 완료된 작업은 다음과 같다.

전체 데이터베이스 설계도의 모습이다.

컴퓨터의 폴더와 약간 비슷하다. 파일들이 들어갈 수 있다. 그게 테이블이라고 볼 수 있다.

우리가 관심을 갖을 것은 쇼핑몰 데이터 베이스이다. 슈퍼마켓을 옮겨놓은 것이라고 볼 수 있다.

ID는 중복이 되면 안 된다.

id는 문자로 해야 된다. 회원 이름도 문자 그리고 주소도 문자로 넣어야 한다.

하지만 가격은 숫자로 넣어야 한다. 정확한 숫자가 적혀있어야겠죠.

제조일자는 날짜가 적혀있어야겠죠.

이것이 바로 데이터 타입입니다.

 

감사합니다.

https://www.youtube.com/watch?v=j2DAiY-OXGs&list=PLVsNizTWUw7GCfy5RH27cQL5MeKYnl8Pm&index=4

 

728x90
반응형
LIST
728x90
반응형
SMALL

안녕하세요, 혼자 공부하는 SQL을 보고 학습한 자료를 남깁니다.

 

MySQL은 교육용은 무료 (Community)

상용은 유료입니다. (Standard, Enterprise, Cluster CGE)

 

MySQL 설치를 위한 컴퓨터 환경

64bit Windows 10 (또는 11)

 

MySQL 다운로드 및 설치

msi는 그냥 설치할 수 있는 프로그램입니다.

허용이 나오면 예를 누르시면 됩니다.

Custom으로 설치합니다. (우리가 필요한 것만 설치하면 됩니다.)

- MySQL Server > MySQL Server 8.0.21

- Application >  MySQL Workbench

- Documentations > Sample and Examples 8.0.21 (샘플 데이터를 사용할 예정)

이렇게 세 가지를 설치를 합니다.

- Product Configuration > Standalone mysql 체크 > config type 확인 및 TCP/IP 체크 > Authentication Method > Use Legacy Authentication Method  선택 > Accounts and Rules 에서 password 설정 > mysql service name 설정 > execute 클릭

- Sample 데이터베이스 다운로드 > username과 패스워드 입력 > execute 클릭

 

#mysql workbench

mysql server에 접속을 해서 sql 작동을 주고 받고 주고 받고 한다.

root는 현재 내 컴퓨터에 있는 mysql에 접속하겠다는 의미이다.

 

#workbench 사용 방법

오른쪽에 있는 파란색 네모들을 보고 좌단, 하단, 우측단을 켜거나 끌 수 있다.

가운데 있는 창은 메모장과 같은 창이다. 이를 통해 SQL문 작성이 가능하다.

SHOW DATABASES; 는 자바의 Hello, World와 같은 문구이다.

DBMS는 데이터베이스를 관리하는 소프트웨어이다.

한 개가 아니라 여러개의 데이터베이스가 있다.

그 데이터베이스들이 바로 조회된 목록이다.

메모창을 닫으려면 탭에 SQL File4 옆에 x를 누르면 닫힙니다.

새창을 열고 싶으시면

File > New Query Tab 을 클릭하면 새창이 열리는 것을 볼 수 있다.

File > Exit 를 클릭하면 MySQL Workbench가 닫히는 것을 볼 수가 있다.

 

감사합니다.

https://www.youtube.com/watch?v=8r1W_7nuo2U&list=PLVsNizTWUw7GCfy5RH27cQL5MeKYnl8Pm&index=3

 

728x90
반응형
LIST
728x90
반응형
SMALL

안녕하세요, 혼자 공부하는 SQL을 보고 학습한 자료를 남깁니다.

 

MySQL은 교육용은 무료 (Community)

상용은 유료입니다. (Standard, Enterprise, Cluster CGE)

 

MySQL 설치를 위한 컴퓨터 환경

64bit Windows 10 (또는 11)

 

MySQL 다운로드 및 설치

msi는 그냥 설치할 수 있는 프로그램입니다.

허용이 나오면 예를 누르시면 됩니다.

Custom으로 설치합니다. (우리가 필요한 것만 설치하면 됩니다.)

- MySQL Server > MySQL Server 8.0.21

- Application >  MySQL Workbench

- Documentations > Sample and Examples 8.0.21 (샘플 데이터를 사용할 예정)

이렇게 세 가지를 설치를 합니다.

- Product Configuration > Standalone mysql 체크 > config type 확인 및 TCP/IP 체크 > Authentication Method > Use Legacy Authentication Method  선택 > Accounts and Rules 에서 password 설정 > mysql service name 설정 > execute 클릭

- Sample 데이터베이스 다운로드 > username과 패스워드 입력 > execute 클릭

 

#mysql workbench

mysql server에 접속을 해서 sql 작동을 주고 받고 주고 받고 한다.

root는 현재 내 컴퓨터에 있는 mysql에 접속하겠다는 의미이다.

 

 

 

 

 

 

 

감사합니다.

https://www.youtube.com/watch?v=8r1W_7nuo2U&list=PLVsNizTWUw7GCfy5RH27cQL5MeKYnl8Pm&index=3

 

728x90
반응형
LIST

+ Recent posts