SQL 23

[SQL] WHERE 문 (GROUP BY, HAVING), 집계 함수

WHERE 문 (GROUP BY, HAVING) WHERE 절 WHERE 절에 조건식을 넣어서 해당 조건에 맞는 레코드 출력 GROUP BY 절 그룹별로 묶어서 요약시 사용 SELECT 절에 그룹으로 묶을 컬럼명과 집계 함수를 넣은 후, 집계 함수를 제외한 컬럼명과 수식들은 반드시 GROUP BY 절에도 넣어야 한다. HAVING 절 GROUP BY의 결과에 대하여 추가 조건을 넣을 때 사용 집계 함수 집계 함수 레코드의 개수, 합계, 평균, 최대값, 최소값 등을 구할 때 사용 SELECT 문에 사용한다. 집계 함수 종류 COUNT(* | 컬럼) 레코드 개수 SUM(컬럼 | 수식) 합계 AVG(컬럼 | 수식) 평균 MAX(컬럼 | 수식) 최대값 MIN(컬럼 | 수식) 최소값 STDDEV(컬럼 | 수식) ..

SQL 2024.03.22

[SQL] 단일행 함수 (문자형, 숫자형, 날짜시간, 형변환, 제어흐름)

문자형 함수 CHAR_LENGTH(문자열) 문자의 개수 반환 LENGTH(문자열) 문자열에 할당된 바이트 수 반환 CONCAT(문자열들) 문자열들 연결 CONCAT_WS(구분자, 문자열들) 구분자와 함께 문자열 연결 GROUP_CONCAT(문자열) 자동으로 , 로 넣어서 구분하여 나열 LEFT(문자열, 길이)/RIGHT(문자열, 길이) 문자열의 왼쪽/오른쪽부터 길이만큼 문자열 반환 SUBSTR(문자열, 시작위치, 길이) 지정한 위치부터 길이만큼 문자열 반환 SUBSTRING_INDEX(문자열, 구분자, 인덱스) 지정한 구분자를 기준으로 문자열 분리 후 가져오는 함수 SQL은 인덱스가 1부터 시작한다. LPAD(문자열, 길이, 채울문자열)/RPAD(문자열, 길이, 채울문자열) 지정한 길이에서 문자열을 제외..

SQL 2024.03.22

[SQL] DB와 SQL의 기본

데이터 (Data) 관찰, 측정, 연구, 분석 등을 통하여 수집된 정보 데이터의 형태 정형 데이터 (Structured Data) 미리 정해진 형식과 구조에 따라 저장된 데이터 데이터 검색, 삽입, 수정, 삭제 연산 손쉽게 가능 주로 정형화된 업무나 서비스에 사용 엑셀의 스프레드 시트, 관계형 데이터베이스 테이블 반정형 데이터 (Semi-Structured Data) 구조화되어 있지 않아 연산 불가 데이터 내부의 데이터 구조에 대한 메타 정보를 함께 제공하는 파일 형식의 데이터 HTML, XML, JSON, 웹 로그, 센서 데이터 등 비정형 데이터 (Unstructured Data) 정해진 구조나 규칙이 없고 연산에 사용할 수 없는 형태의 데이터 소셜 데이터, 워드, PDF, 이미지, 영상 등 데이터베이..

SQL 2024.03.22

혼자 공부하는 SQL / 혼공 학습단 회고

6주간의 혼공학습단 SQL이 끝났다! 체감상 저번에 했던 머신러닝 때보다 일찍 끝난 느낌이다. (머신러닝이 넘 어려웠어서 시간이 안 갔나…) 이번에 SQL을 선택한 이유는 나는 백엔드 개발자를 목표로 하고 있어서 SQL 잘 알이 되고 싶고, 쿼리문도 잘 짜고 싶었기 때문… 책을 보는데 확실히 나는 백엔드를 공부하고 있어서 그런지 책을 보면서 익숙한 게 많았다! 하지만 이번 SQL 공부는 처음부터 다시 차근차근 기억하는 느낌으로 시작하고 싶었다. 나는 무엇이든지 반복 학습을 해야 기억에 잘 남기 때문이다. SQL 공부 이외에도 내가 원했던 것은 글을 누가 봐도 쉽게 이해할 수 있도록 써보는 것? 그리고 좀 재밌게 써보는 것… 근데 이게 젤 어렵다아… 나 혼자 하는 공부랑 남한테 알려주는 거랑 정말 다르다...

SQL 2024.02.09

혼자 공부하는 SQL / Chapter 08 SQL과 파이썬 연결

08-1 파이썬 개발 환경 준비 파이썬-MySQL 파이썬 설치 파이썬과 MySQL을 연결 시켜주는 PyMySQL 외부 라이브러리 설치 08-2 파이썬과 MySQL의 연동 파이썬과 MySQL 연동 데이터베이스 연동 import pymysql pymysql.connect(host=’서버IP주소’, user=’사용자’, password=’암호’, db=’데이터베이스’, charset=’문자세트(utf8)’) 커서 생성 cur = conn.cursor() 테이블 생성 cur.execute(”CREATE TABLE ~~”) 데이터 입력 cur.execute(”INSERT INTO 테이블 VALUES(~~)”) 데이터 조회 cur.fetchone() 커밋 하기 conn.commit() 사용 후 데이터베이스 닫기 c..

SQL 2024.02.09

혼자 공부하는 SQL / Chapter 07 스토어드 프로시저

07-1 스토어드 프로시저 사용 방법 스토어드 프로시저 (stored procedure) SQL에 프로그래밍 기능을 추가한 것 (조건문, 반복문…) 쿼리 문의 집합으로도 볼 수 있다. 어떠한 동작을 일괄 처리하기 위한 용도로 사용 스토어드 프로시저 기본 형식 DELIMITER $$ CREATE PROCEDURE 스토어드프로시저(IN 또는 OUT 매개변수) BEGIN // SQL 프로그래밍 코드 작성 END $$ DELIMITER;​ 매개변수 입력 매개변수 IN 입력매개변수이름 데이터형식 CALL 프로시저이름(전달값); ex) DELIMITER $$ CREATE PROCEDURE user_proc(IN userName VARCHAR(10)) // 유저네임값을 입력 매개변수로 전달 BEGIN SELECT *..

SQL 2024.02.09

혼자 공부하는 SQL / Chapter 06 인덱스

06-1 인덱스 개념을 파악하자 인덱스(Index) 데이터 조회가 빨라지는 도구 (SELECT 응답 속도) 예로 책 맨 뒤에 있는 찾아보기 같은 도구! 키워드나 단어들이 가나다 순으로 정렬되어 있어서 페이지를 금방 찾을 수 있는 것 처럼! 데이터가 많아지면 인덱스를 사용해서 성능을 좋게 할 수 있다. 하지만 인덱스도 공간 필요! 인덱스가 있다고 무조건 좋은 건 아님.. 필요 없는 인덱스를 만들거나 데이터 변경이 자주 되면 오히려 느려질 수도 인덱스 종류 클러스터형 인덱스 기본 키로 지정하면 자동 생성, 테이블에 1개만 만들 수 있다. 기본 키로 지정한 열을 기준으로 자동 정렬 예로 사전과 같음 보조 인덱스 고유 키로 지정하면 자동 생성, 테이블에 여러개 만들 수 있다. 자동 정렬은 안된다. 예로 책 뒤 ..

SQL 2024.02.04

혼자 공부하는 SQL / Chapter 05 테이블과 뷰

05-1 테이블 만들기 테이블(table) 표 형태로 구성된 2차원 구조, 행과 열로 구성 행: row, record라고 부른다. 열: column, field라고 부른다. 테이블 설계하기(구조 정의) 열에 적합한 데이터 형식 지정 기본 키 지정 외래 키 지정 테이블 만들기 데이터베이스 생성 (CREATE DATABASE) 테이블 생성 (CREATE TABLE) 빈 값 허용하지 않을 시 NOT NULL 열 기본키로 지정시 PRIMARY KEY 열 외래키로 지정시 FOREIGN KEY 열 1부터 자동 증가시 AUTO_INCREMENT 05-2 제약조건으로 테이블을 견고하게 제약조건(constraint) 데이터의 무결성을 지키기 위해 제한하는 조건 여기서 데이터의 무결성이란? 데이터에 결함이 없는 것을 의미..

SQL 2024.01.29
728x90