| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 |
- While
- 접근제어지시자
- JAVA기초
- 자바 멀티스레딩
- 집합관계
- OPP개념
- this예약어
- IntelliJ IDEA
- 시스템 환경 변수 편집
- java변수
- Java
- for문
- function
- Java데이터 타입
- 메서드 오버로딩
- Thread
- 인텔리제이 기초 설정
- break문
- 형 변환
- continue문
- 인텔리제이 한글 깨짐 해결법
- 반복문
- multi-threading
- 메서드
- 포함관계
- 컴파일
- 연관관계
- 상수
- 생성자
- JAVA객체지향
- Today
- Total
목록MySQL (21)
최원종의 개발 블로그
SQL 쿼리 실행 순서 차이우리가 쓰는 순서: SELECT → FROM → WHERE → GROUP BY → HAVING → ORDER BY → LIMIT실제 실행 순서: FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY → LIMIT 일반적인 실행 순서 상세순서절역할1FROM / JOIN테이블을 가져와 결합2ONJOIN 조건 적용3WHERE개별 행 필터4GROUP BY행을 그룹으로 묶기5HAVING그룹 필터6SELECT출력할 컬럼 결정7DISTINCT중복 제거8ORDER BY정렬9LIMIT행 수 제한 ORDER BY에서 SELECT별칭을 쓸 수 있는 이유ORDER BY 는 SELECT 이후에 실행됩니다.그래서 SELECT 에서 정의한 별칭을 ORDER ..
샘플 DB-- 샘플 DB 구성 create database if not exists library;use library;-- 도서관 시스템에 DB 구축 -- 학생 테이블 create table student( id int primary key auto_increment, name varchar(20) not null);-- 도서 테이블 create table book( id int primary key auto_increment, title varchar(50) not null);-- 대출 테이블 create table borrow( id int primary key auto_increment, student_id int not null, book_id int not null,..
GROUP BY 개념과 기본 쿼리GROUP BY는 같은 값을 가진 행들을 묶어서 그룹 단위로 집계할 때 사용비유: 영수증 묶음 편의점 영수증이 100장 있다고 가정합니다. 날짜별로 묶으면 → 날짜별 총 구매 금액을 알 수 있습니다. 상품별로 묶으면 → 상품별 판매 수량을 알 수 있습니다. GROUP BY 는 이 "묶는 기준"을 정하는 명령어입니다. 구조SELECT 그룹컬럼, 집계함수FROM 테이블명GROUP BY 그룹컬럼;use sns; -- GROUP BY 없이 : 전체 좋아요 개수 출력 select count(*) as 전체좋아요수from like_log;select * from like_log;-- 게시글 별 좋아요 수 select post_id, count(*) as 좋아요수from lik..
도메인이란?소프트웨어가 해결하려는 비즈니스의 범위 SNS 도메인 : 좋아요, 팔로워, 게시글, 피드 같은 기능들 중심에 비즈니스를 가진다. 커머스 도메인 : 주문, 배송, 결제, 장바구니와 같은 중심에 비즈니스를 가진다. 금용 도메인 : 이체, 계좌, 이자, 한도 등 중심의 비즈니스를 가진다.아주 간단한 SNS 서비스 데이터베이스 만들어 보기SNS 는 GROUP BY, 집계 함수가 가장 많이 쓰이는 대표적인 도메인 SNSDBdrop database sns;create database sns; use sns;-- user 테이블 생성 create table user( id int primary key auto_increment, nickname varchar(50) not null unique..
인라인 필터 설명 (사전 필터)OUTER JOIN(LEFT JOIN, RIGHT JOIN)에서는 결과가 완전히 달라짐.INNER JOIN에서는 어디에 쓰든 결과가 같지만, LEFT JOIN 같은 외부 조인에서는 위치에 따라 데이터 개수가 달라짐.ON 절에 쓰면: 조건에 안 맞아도 왼쪽 테이블(e) 데이터는 살아있고, 오른쪽 테이블 값만 NULL로 나옴.WHERE 절에 쓰면: 조건에 안 맞으면 왼쪽 데이터까지 통째로 날아가 버림. (사실상 INNER JOIN처럼 동작하게 됨)데이터-- user 테이블| id | nickname ||----|-----------|| 1 | 철수 || 2 | 영희 || 3 | 민준 |-- post 테이블| id | title ..
핵심 패턴 복습현재 유효한 데이터 → to_date = '9999-01-01'JOIN 종류 공식 명칭 정리공식 명칭생략형설명INNER JOINJOIN양쪽 모두 매칭되는 행만LEFT OUTER JOINLEFT JOIN왼쪽 전체 + 오른쪽 NULL 허용RIGHT OUTER JOINRIGHT JOIN오른쪽 전체 + 왼쪽 NULL 허용FULL OUTER JOINFULL JOIN양쪽 전체 (MySQL 미지원, PostgreSQL 지원)CROSS JOIN-모든 조합 (카테시안 곱) 문제 풀이 사용할 DBuse employees;show tables;desc employees;desc salaries;desc titles;desc departments;desc dept_emp;desc dept_manager; 1번 ..
별칭 (Alias)칼럼명이나 테이블명에 별명을 붙여서 결과를 읽기 쉽게 함코드-- 컬럼에 별칭SELECT student_id AS 학번, name AS 이름, major AS 학과FROM student;-- AS 생략 가능SELECT student_id 학번, name 이름 FROM student;-- 테이블에 별칭 (JOIN 에서 유용)SELECT s.name, su.subject_name, e.scoreFROM enrollment eINNER JOIN student s ON e.student_id = s.student_idINNER JOIN subject su ON e.subject_id = su.subject_id;-- e, s, su 가 테이블 별칭-- 계산 ..
JOIN 이 필요한 이유회원 이름과 주문 정보를 함께 보고 싶다면?member 테이블에 이름이 있고orders 테이블에 주문 정보가 있음→ JOIN 으로 두 테이블을 연결 샘플 데이터 -- 15장 join 쓰는 법-- 결과 확인SELECT * FROM student;SELECT * FROM subject;SELECT * FROM enrollment;-- INNER JOIN : 매칭되는 데이터만-- 두 테이블 모두에 매칭되는 행만 결합합니다. 조건이 맞지 않으면 결과에서 제외됩니다.-- 학생 이름 + 수강한 과목명 + 점수select s.name as 학생이름, su.subject_name as 과목명, e.scorefrom enrollment as einner join student ..
ERD : ERD(Entity-Relationship Diagram)는 는 데이터베이스의 테이블 구조와 관계를 시각적으로 표현한 설계도 코드 작성 전에 ERD로 먼저 설계하면 좋은 점어떤 테이블이 필요한지 한눈에 파악테이블 간 관계(1:N, N:M 등) 미리 확인잘못된 설계를 초기에 발견하고 수정팀원과 설계 내용 쉽게 공유ERD 기본 기호가장 대중적인 IE(Information Engineering) 표기법 내에서도'참여 제약(Optionality)'을 어떻게 표현하느냐의 차이테이블(엔터티) : 직사각형으로 표시PK : 열쇠 아이콘 또는 PK 표시FK : 관계선으로 연결관계선: 1:1 → 양쪽 수직선(||---||) 1:N → 한쪽 수직선(||), 다른 ..
관계 차수 : 두 테이블이 서로 어떤 방식으로 연결되어 있는지를 나타냄.관계설명실생활 예시1:1 (일대일)A 하나 = B 하나사람 ↔ 여권1:N (일대다)A 하나 = B 여러 개고객 ↔ 주문N:M (다대다)A 여러 개 = B 여러 개학생 ↔ 수업 1:1 관계 ( 한 명의 회원은 하나의 배송지만 등록할 수 있다고 가정)member 테이블id (PK) name1홍길동2김영희 member_address 테이블id (PK)member_id (FK, UNIQUE)address101서울시 강남구 역삼동112부산시 해운대구 FK 컬럼에 UNIQUE를 붙이면 1:1 관계가 됨USE shop;select * from member; desc member;CREATE TABLE member_address ( id ..