MySQL/혼공SQL 23

13강. SQL 테이블 제약조건(기본키, 외래키, 고유키)

05-2. 제약조건으로 테이블을 견고하게 👉🏻 제약 조건 - 테이블을 견고하게 만든다 - 데이터가 완전무결하게 도와준다 👉🏻 제약 조건의 기본 개념과 종류 ✅ 기본키 제약 조건 - ID는 기본키(Primary key) / 중복 불가 - 중복을 허용해버리면 이메일을 보낼 때 누구에게 보내는 건지 알 수 없다 - 혼란스러운 상황을 미연에 방지 - 데이터 결함이 없어지는 것 기본키 외래키 고유키 체크 기본값 NOT NULL 👉🏻 기본키 제약 조건 🧩 기본키 데이터를 구분할 수 있는 식별자 카카오톡의 수많은 회원 행들 중에서 아이디(기본키)만 알면 어떤 행인지 알 수 있다 값은 중복될 수 없다 NULL값이 허용되지 않는다 - 기본키 제약 조건은 가장 필수적으로 사용해야하는 제약 조건 - 테이블에는 기본키 제약 ..

MySQL/혼공SQL 2023.11.24

[SQL 기초 강의] 12강. GUI 환경에서 테이블 생성하기, SQL로 테이블 만들기

05-1. 테이블 만들기 - 엑셀의 시트와 유사 (하지만 엑셀의 시트는 테이블이라 부르지는 않음) - 테이블은 DB안에 있는 객체 - GUI 방식 (마우스로 클릭)과 SQL문을 통한 방식이 있다 🗃️ 네이버 쇼핑 DB 구성도 👉🏻 테이블 설계 - 집 짓기 전 건축 설계도 그리는 것 처럼 🧩 회원 테이블 - ID를 PK로 - 평균 키는 UNSIGNED TINYINT (0~255) 🧩 구매 테이블 - 구매 테이블의 ID를 회원 테이블의 ID와 PK - FK 관계로 연결되도록 - 순번: 기본키 (PK), AUTOINCREMENT 👉🏻 GUI 환경에서 테이블 만들기 🎮 DB 만들기 - 일단 DB만 쿼리문으로 만드는 듯 - 더블 클릭을 통해 데이터베이스 사용하기 🎮 테이블 만들기 - naver_db를 열어 'Ta..

MySQL/혼공SQL 2023.11.20

[SQL 기초 강의] 11강. SQL 프로그래밍(IF문, CASE문, WHILE문, 동적SQL)

04-3. SQL 프로그래밍 - 한마디로 코딩하는 것 - 일반 언어보다는 약하지만 일반적 코딩에 가깝게 SQL을 사용할 수 있는 것 👉🏻 스토어드 프로시저 - SQL 프로그래밍은 기본적으로 스토어드 프로시저 안에 만들어야 한다 - 스토어드 프로시저 이름은 우리가 지정 - 'SQL 프로그래밍 코딩'하는 부분에 코드 작성 더보기 `DELIMITER $$`는 MySQL 쿼리를 작성할 때 사용되는 구분자(delimiter)를 변경하는 명령입니다. 이 명령은 주로 저장 프로시저(Stored Procedure), 트리거(Trigger), 이벤트(Event) 등과 같은 복잡한 쿼리 블록을 정의할 때 사용됩니다. 일반적으로, MySQL에서 기본 구문 구분자는 세미콜론(`;`)입니다. 하지만 저장 프로시저 등의 복잡한 ..

MySQL/혼공SQL 2023.11.14

[SQL 기초 강의] 10강. 두 테이블을 묶는 JOIN(INNER JOIN, OUTER JOIN, CROSS JOIN, SELF JOIN)

04-2. 두 테이블을 묶는 조인 👉🏻 조인 - 두 개의 테이블을 묶는 것 - 회원 테이블과 구매 테이블을 묶어 하나의 정보를 만들고 싶다 - 배송 정보의 경우 구매한 물건에 대한 정보와 배송을 받을 회원의 정보가 필요함 👉🏻 내부 조인 - 제일 중요하고 많이 쓰임 - **조인이라고 안 하고 그냥 '조인'이라고 하면 내부 조인이라고 생각하면 됨 🧩 일대 다 관계 (one to many) 내부 조인의 기본 조건 예외도 있긴 하지만 PK - FK 관계 - 회원 테이블의 ID - PK(중복 불가), 하나 밖에 없음 - 구매 테이블의 ID - PK로 지정하면 큰일남 (한 사람당 한 번 밖에 못 삼) - FK(외래키)로 잡음 - 한 회원이 여러번 나타날 수 있음 (=여러번 구매할 수 있음) ✅ 기본키 - 외래키 ..

MySQL/혼공SQL 2023.11.13

[SQL 기초 강의] 9강. MySQL의 데이터 형식(정수형, 문자형, 실수형, 날짜형)과 형 변환

04-1. MySQL의 데이터 형식 - 테이블에 열을 여러개 만들었다 - 각 열에는 데이터 형식이 지정되어있다 - 숫자, 문자, 날짜 등.. - 각 형식 안에서도 세분화됨 👉🏻 정수형 소수점이 없는 숫자 🧩 종류 ✅ INT Integer 가장 무난 /기본적 내부적으로 4byte 차지 데이터를 정말 많은 건수를 저장함 예를 들어 나이를 저장한다면 0~100정도가 될것이다. 그런데 INT는 -21억 ~ 21억 까지 아주 큰 범위를 저장할 수 있다. 하지만 나이를 이렇게 많이 표현할 필요는 없다 ✅ SMALLINT 바이트수가 INT의 절반 ✅ TINYINT SMALLINT보다 더 작은 것 나이 정도는 TINYINT로 가능 🎮 테이블을 만들어 확인해보기 - 데이터 입력 - 잘 들어감 🎮 범위를 넘는 수 넣어보기..

MySQL/혼공SQL 2023.11.11

[SQL 기초 강의] 8강. 데이터 변경을 위한 SQL 문(INSERT, UPDATE, DELETE)

03-3. 데이터 변경을 위한 SQL 문 - SELECT 문은 조회만 하는 것. 변경을 하진 않는다 👉🏻 INSERT문 🧩 기본 문법 INSERT INTO 테이블명 [(컬럼명, 컬럼명, ...)] VALUES(데이터, 데이터, ...) - 컬럼명은 생략 가능 🎮 모든 열에 데이터 넣기 🎮 나이 열에는 데이터를 넣지 않기 🎮 입력 순서 바꿔도 OK - 값만 맞춰 넣어주면 된다 - 귀찮아도 정확하기 때문에 권장되는 방식 🧩 Auto Increment - 위에처럼 ID를 직접 1, 2, 3,... 이렇게 입력해주는 것이 아니라 ID가 자동으로 증가하며 입력되도록 - 번호가 의미 있는건 아니고 자동 생성만 되면 된다 - 현실에서 물건을 구매했을 때 구매번호(아이디)가 Auto Increment (중복X) - 이..

MySQL/혼공SQL 2023.11.11

[SQL 기초 강의] 7강. SQL SELECT 절의 형식(ORDER BY 절과 GROUP BY 절)

03-2. 좀 더 깊게 알아보는 SELECT 문 👉🏻 ORDER BY절 - SELECT ~ FROM ~ WHERE 다음으로 다양한 것이 붙을 수 있다 - 순서는 꼭 지켜야 한다 결과를 정렬해서 보여준다 있어도 되고 없어도 된다 내용이 바뀌는 게 아니라 차례를 바꿔주는 것 🎮 ORDER BY 없이 - 가능하면 예약어를 대문자로 사용자 정의어를 소문자로 🎮 데뷔 날짜를 기준으로 (오름차순) 정렬하기 - 기본적으로는 오름차순 기준 - ASC를 명시해줘도 되고 안해줘도 되고 🎮 내림차순 기준으로 보기 🎮 순서를 지키지 않았을 경우 - 오류난다 - SELECT ~ FROM ~ HWERE ~ ORDER BY 순으로 나와야 한다 🎮 순서를 지키면 - 오류가 나지 않는다 - 잇지와 트와이스처럼 키가 같을 때 그 안에서..

MySQL/혼공SQL 2023.11.08

[SQL 기초 강의] 6강. SQL 기본 문법(SELECT ~ FROM ~ WHERE)

03-1. 기본 중에 기본 SELECT ~ FROM ~ WHERE - SQL을 그냥 쿼리라고 부르기도 한다 🎨 SELECT SELECT ~ FROM ~ WHERE 의 형태가 가장 보편적 SELECT 하나만 나오는 경우도 가끔 있음 (하지만 특이한 케이스) 선택하라 데이터베이스 안의 테이블을 가져와서 조회하는 것 읽기만 하지 변경하지는 않음 🧩 앞으로 사용될 DB - 인터넷 쇼핑몰 데이터베이스를 가정, 인터넷 마켓의 회원을 관리 - 그 회원들이 물건을 산 건이 12건 있다 ✅ Data Base - 이름: market-DB ✅ 회원 테이블 - 이름: member - 컬럼: 아이디, 이름, 인원(가수 그룹을 회원으로 둠), 주소, 국번, 전화번호, 평균 키, 데뷔 일자 ✅ 구매 테이블 - 이름: buy - 컬..

MySQL/혼공SQL 2023.11.07

[SQL 기초 강의] 5강. 데이터베이스 개체(인덱스, 뷰, 스토어드 프로시저)

02-3. 데이터베이스 개체 🎨 데이터베이스 개체 - 데이터베이스 안에 들어있을 수 있는 오브젝트 테이블 뷰 인덱스 스토어드 프로시저 트리기 🎨 인덱스 데이터를 조회할 때 빠르게 조회할 수 있도록 도와주는 개체 실무에서 대용량의 데이터를 다룰 때 유용 책의 '찾아보기'와 동일한 개념 특정 단어를 찾아야하는 경우 책의 첫 장부터 쭉 읽으며 찾는 것이 아니라 책 뒷편에 실린 '찾아보기'를 통해 몇 페이지에 있는지 확인할 수 있다 없어도 문제는 없음 인덱스가 없다고 책 내용이 없는 것은 아닌 것 처럼 빨리 찾을 수 있도록 도와줄 뿐 실무에서는 인덱스를 반드시 사용한다 🎮 '아이유' 조회하기 - 이건 책 내용을 다 뒤진 것 - 만약 데이터가 400만건 있었다면 400만건을 다 뒤져서 아이유를 찾은 것 ✅ Exc..

MySQL/혼공SQL 2023.11.07

[SQL 기초 강의] 4강. 데이터베이스 만들기

02-2. 데이터베이스 시작부터 끝까지 - 데이터 베이스 만들기 - 데이터베이스 안에 테이블 만들기 - 테이블 안에 데이터 입력/수정/삭제하기 - 완성된 DB 조회 및 활용 👉🏻 DBMS 설치하기 - MySQL 설치 https://dev-study-501.tistory.com/191 [SQL 기초 강의] 2강. MySQL 설치 방법과 정상 작동 확인하기 01-2. MySQL 설치하기 🎨 MySQL - 대용량의 데이터 관리 및 운영 - 오라클이 인수 - 무료(community Eddition)와 상용(Standard/Enterprise Eddition) 둘 다 있음 🎮 설치하기 1. 컴퓨터 환경 확인 시작 버튼 마우스 dev-study-501.tistory.com - MySQL 에 원래 가지고 있던 시스템..

MySQL/혼공SQL 2023.11.03