본문 바로가기
728x90
반응형

SQL18

[MariaDB/Mybatis] foreach 사용 동적 쿼리문 📂 foreach 문법 📌Mybatis foreach문 지원 태그 collection : 전달받은 인자. List or Array 형태만 가능item : 전달받은 인자 값을 alias 명으로 대체open : 구문이 시작될때 삽입할 문자열close : 구문이 종료될때 삽입할 문자열separator : 반복 되는 사이에 출력할 문자열index : 반복되는 구문 번호이다. 0부터 순차적으로 증가 📌 동적 쿼리 사용 #{item} 📌 다건 insert INSERT INTO table ( item_id , locale_code , lang_code ) VALUES ✏️ 변수 # : SQL DB 실행 시에 데이터 .. 2025. 4. 28.
인덱스 튜닝 📁 개념📌 Index Range ScanB-Tree 인덱스의 가장 일반적이고 정상적인 형태의 스캔 방식인덱스 루트에서 리프 블록까지 수직 탐색한 후에 리프 블록을 수평 탐색 방식수평 탐색 범위는 인덱수 구성, 조건절 연산자에 따라 달라짐인덱스 선두 컬럼에 대한 '=' 조건은 반드시 있어야 함 (WHERE절에 인덱스 선두컬럼에 대한 조건이 반드시 있어야함)💡Index Range Scan 불가능한 경우 (1) 중간값 검색 (양쪽 % LIKE 조건) (2) 부정형 비교 조건 (3) 인덱스 컬럼 변형할 경우 (4) 인덱스 구성 컬럼이 모두 NULL레코드인 경우 IS NULL 조건 사용 (5) OR 조건 (Concatenation으로 옵티마이저에 대한 UNION ALL 분기 처리시 사용 가능) .. 2025. 4. 16.
SQLD 자격증 📂 1. 데이터모델링의 이해📌 1. 데이터 모델의 이해1) 모델링정의 : 다양한 현상을 표기법에 의해 표기하는 것특징 : 추상화, 단순화, 명확화3가지 관점 : 데이터 관점, 프로세스 관점, 상관 관점2) 데이터 모델정의 : 정보시스템을 구축하기 위한 데이터 관점의 업무분석 기법기능시스템 가시화 (시스템 구조와 행동 명세화, 시스템 구축의 구조화된 틀 제공)문서화 (세부사항은 숨기는 다양한 관점 제공, 상세 수준의 표현방법 제공)중요성파급효과복잡한 정보요구사항의 간결한 표현데이터 품질유의점중복 : 데이터베이스가 여러 장소에 같은 정보를 저장x비유연성 : 데이터 정의와 데이터 사용프로세스와 분리비일관성 (ex. 신용상태에 대한 개인 없이 고객의 납부 이력정보 갱신)3) 데이터모델링의 3단계개념적 데이터.. 2025. 4. 10.
U-Camp SQL 강의 📒 SQL📕 Oracle DB 설치1. Windows1) 오라클 소프트웨어 설치Database Download Database Express Edition설치파일의 위치에 한글 포함X실행파일을 관리자 권한으로 실행2) 21c Express Edition 접속sqlplus " / as sysdba"3) Oracle User 생성c## + 사용자 이름 으로 생성 (비밀번호 tiger)create user c##scottidentified by tiger;grant dba to c##scott; : 권한 부여connect c##scott/tiger : 접속4) table 생성SQL 실습 스크립트 생성alter session set nls_Date_format='RR/MM/DD';drop table emp;.. 2025. 4. 10.
SQL - 혼자 공부하는 SQL 📒 SQL 문법📕 1. SELECT ~ FROM ~ WHERE1) Use문use 데이터베이스 이름;데이터 베이스 지정한 번 지정하면 계속 유지 (MySQL 워크벤치 재시작하거나, 새 쿼리 창을 열면 USE 재지정 해야함)여러 번 수행해도 오류 발생X2) SELECTselect 컬럼명from 테이블명where 조건식group by 컬럼명having 조건식order by 컬럼명limit 시작, 개수;3) WHERE 절조회되는 데이터의 조건 지정where 없이 조회 (테이블의 모든 행 출력)select *from 테이블명 관계 연산자, 논리 연산자 사용BETWEEN ~ ANDIN()LIKE (일부 글자 검색)_ (언더바, 한 글자 검색)4) ORDER BY절결과가 출력되는 순서를 조절asc(오름차순), d.. 2025. 4. 10.
SQL 문제 1. WHERE절--문제1 ) EMP 테이블에서 JOB이 Manager,Clerk,Analyst가 아닌 사원의 사원번호, 성명, 담당업무, 급여, 부서번호를 출력하여라SELECT empno, ename, job, sal, deptno FROM emp WHERE job NOT IN('MANAGER', 'CLERK', 'ANALYST');--문제 2) 모든 사원의 이름 및 급여, 급여에 300을 더한 값을 출력하시오.SELECT ename, sal, (sal +300) FROM emp;--문제 3) emp 테이블에서 이름, 급여, 보너스, 연봉을 출력하시오(출력값 변환).select ename, sal, comm, nvl(sal12 + comm, sal12) "연봉" from emp;--문제 4) emp 테.. 2025. 4. 10.
SQL - 프로그래머스 Lv1 📕 이름이 있는 동물의 아이디프로그래머스 이름이 있는 동물의 아이디문제코드SELECT ANIMAL_IDFROM ANIMAL_INSWHERE NAME is not null📕 여러 기준으로 정렬하기프로그래머스 여러 기준으로 정렬하기문제코드SELECT ANIMAL_ID, NAME, DATETIMEFROM ANIMAL_INSORDER BY NAME ASC, DATETIME DESC📕 아픈 동물 찾기프로그래머스 아픈 동물 찾기문제코드SELECT ANIMAL_ID, NAMEFROM ANIMAL_INSWHERE INTAKE_CONDITION = "Sick"ORDER BY ANIMAL_ID📕 어린 동물 찾기프로그래머스 어린 동물 찾기문제코드SELECT ANIMAL_ID, NAMEFROM ANIMAL_INSWHE.. 2025. 4. 10.
SQL - 프로그래머스 Lv2 📕 최솟값 구하기프로그래머스 최솟값 구하기문제코드SELECT min(datetime)FROM ANIMAL_INS📕 동물 수 구하기프로그래머스 동물 수 구하기문제코드SELECT COUNT(*)FROM ANIMAL_INS📕 동명 동물 수 찾기프로그래머스 동명 동물 수 찾기문제코드SELECT NAME, COUNT(NAME)FROM ANIMAL_INSGROUP BY NAMEHAVING COUNT(NAME) >= 2ORDER BY NAME📕 중복 제거하기프로그래머스 중복 제거하기문제코드SELECT COUNT(DISTINCT(NAME)) AS COUNTFROM ANIMAL_INS 📕 이름에 el이 들어가는 동물 찾기프로그래머스 이름에 el이 들어가는 동물 찾기문제코드-- 코드를 입력하세요SELECT ANI.. 2025. 4. 10.
SQL - 이것이 MySQL이다 📒 MySQL 설치 및 DB 구축과정 미리 실습하기📕 DBMS/MySQL1. DBMS1) DBMS 개념데이터베이스데이터의 집합 (데이터 저장공간 자체)여러 명의 사용자나 응용 프로그램이 공유하고 동시에 접근이 가능해야 함DBMS데이터베이스를 관리, 운영하는 역할2) 특징데이터의 무결성데이터베이스 안의 데이터에 오류가 있어서는 안됨데이터의 독립성데이터베이스의 크기를 변경하거나 데이터 파일의 저장소를 변경하더라도, 기존에 작성된 응용 프로그램은 영향 받지X서로 의존적 관계가 아닌 독립적인 관계보안데이터베이스 안의 데이터에 아무나 접근하는 것이 아니라 데이터를 소유한 사람이나 데이터에 접근이 허가된 사람만 접근 가능사용자의 계정에 따라서 다른 권한을 가짐데이터 중복의 최소화동일한 데이터가 여러 개 중복되어.. 2025. 4. 10.
SQL - 프로그래머스 Lv3 ~ 4 📒 Lv3📕 카테고리 별 도서 판매량 집계하기프로그래머스 카테고리 별 도서 판매량 집계하기문제코드SELECT A.CATEGORY, SUM(B.SALES) AS TOTAL_SALESFROM BOOK AINNER JOIN BOOK_SALES BON A.BOOK_ID = B.BOOK_IDWHERE SUBSTR(SALES_DATE, 1, 7) = '2022-01'GROUP BY CATEGORYORDER BY CATEGORY📕 오랜 기간 보호한 동물(1)프로그래머스 오랜 기간 보호한 동물(1)문제코드SELECT A.NAME, A.DATETIMEFROM ANIMAL_INS ALEFT OUTER JOIN ANIMAL_OUTS BON A.ANIMAL_ID = B.ANIMAL_IDWHERE B.DATETIME IS.. 2025. 4. 10.
SQLP 실기 문제 복원 1. 51회https://bae9086.tistory.com/563 SQLP 51회 실기 1번,2번문제 복기9월 20일날 제가 시험친 51회 결과가 나왔는데요. 아쉽게 1점차로 떨어졌네요.. 다음번에 다시 도전해야겠어요그것과는 별개로 실기문제의 복기를 해보는 글을 작성하려고 합니다.1번과 2번이 있bae9086.tistory.com 2. 50회 실기11번풀스캔이였고 버퍼 100k 였음 ​답 인덱스 스캔을 유도하기 위한 신규 인덱스 생성​2번실행계획 순서인덱스스캔 t1_x1 (A-row 10000) ->테이블액세스 t1 (A-row 1000)​답인덱스 컬럼 추가​3번조건(인덱스는 단편화X)버퍼1000건, 테이블 액세스후 버퍼 1010건​답인덱스 컬럼 순서 변경​4번인덱스스캔->테이블액세스 방향이었음 버퍼1.. 2025. 4. 10.
7. 전체 텍스트 검색과 파티션 📒 전체 텍스트 검색과 파티션📕 1. 전체 텍스트 검색1) 개념긴 문자로 구성된 구조화되지 않은 텍스트 데이터를 빠르게 검색저장된 텍스트의 키워드 기반의 쿼리를 위해 빠른 인덱싱 가능텍스트로 이루어진 문자열 데이터의 내용을 가지고 생성한 인덱스InnoDB와 MyISAM 테이블만 지원char, varchar, text의 열에만 생성 가능인덱스 힌트의 사용이 일부 제한됨여러 개의 열에 FULLTEXT 인덱스 지정# 전체 텍스트 인덱스 생성CREATE FULL TEXT INDEX 인덱스 이름ON 테이블 이름 (열 이름);# 전체 텍스트 인덱스 삭제ALTER TABLE 테이블 이름 DROP INDEX FULLTEXT(열 이름);2) 전체 텍스트 검색을 위한 쿼리전체 텍스트 인덱스를 이용하기 위한 쿼리는 일.. 2025. 4. 9.
6. 스토어드 프로그램 📒 스토어드 프로그램📕 1. 스토어드 프로시저1) 개념어떠한 동작을 일괄 처리하기 위한 쿼리문의 집합DELIMITER $$CREATE PROCEDURE 스토어드 프로시저이름(IN 또는 OUT 파라미터)BEGIN // SQL 프로그래밍 코딩END $$DELIMITER ;CALL 스토어드 프로시저 이름();2) 특징MySQL 성능 향상유지관리 간편모듈식 프로그래밍이 가능함보안 강화 (사용자별로 테이블에 접근 권한이 아니고, 스토어드 프로시저에만 접근 권한을 줌)📕 2. 스토어드 함수1) 개념사용자가 직접 만들어서 사용하는 함수어떤 계산을 통해서 하나의 값을 반환하는데 주로 사용사용 전 SET GLOBAL log_bin_trust_function_creators = 1; 스토어드 함수 생성 권한 허용 필.. 2025. 4. 9.
5. 인덱스 📒 인덱스📕 1. 인덱스의 개념1) 장점검색의 속도 빨라짐해당 쿼리의 부하가 줄어들어서, 시스템 전체 성능 햐앙2) 단점인덱스가 데이터베이스 공간 차지해서 추가적인 공간 필요 (대략 10% 정도)처음 인덱스를 생성하는데 시간이 많이 소요됨데이터 변경 작업이 자주 일어날 경우에는 성능 나빠짐📕 2. 인덱스의 종류와 자동 생성1) 클러스터형 인덱스사전처럼 책의 내용이 순서대로 정렬행 데이터를 인덱스로 지정한 열에 맞춰서 자동 정렬 (오름차순 정렬)PRIMARY KEY로 지정한 열은 클러스터형 인덱스가 생성UNIQUE NOT NULL로 지정한 열은 클러스터형 인덱스 생성특징생성 시 데이터 페이지 전체가 다시 정렬됨인덱스 자체의 리프 페이지가 곧 데이터 (인덱스 자체에 데이터가 포함되어 있음)보조 인덱스보.. 2025. 4. 9.
4. 테이블과 뷰 📒 테이블과 뷰📕 1. 제약 조건1) PRIMARY KEY 제약 조건입력되는 값 중복X, NULL값 X기본 키로 생성한 것은 자동으로 클러스터형 인덱스가 생성됨CREATE TABLE 구문 안에서 기본 키를 지정하면 MySQL이 알아서 설정기본 키는 각 테이블 별로 하나만 존재두 개 이상의 열을 합쳐서 기본 키로 설정 가능# 기본 키 지정CREATE TABLE userTBL( userID CHAR(8) NOT NULL PRIMARY KEY, name VARCHAR(10) NOT NULL, birthYear INT NOT NULL);# 기본 키 이름 지정CREATE TABLE userTBL( userID CHAR(8) NOT NULL, name VARCHAR(10) NOT N.. 2025. 4. 9.
3. SQL 문법 📒 SQL 문법📕 SQL 기본1. SQL 분류1) DML (Data Manipulation Language)데이터 조작 (선택, 삽입, 수정, 삭제)테이블의 행 사용DML을 사용하기 위해서는 그 전에 테이블 정의 필요트랜잭션 발생하는 SQL종류SELECTINSERTUPDATEDELETE2) DDL (Data Definition Language)데이터베이스, 테이블, 뷰, 인덱스 등 데이터베이스 개체를 생성/삭제/변경하는 역할트랜잭션을 발생하지 않음되돌림(ROLLBACK), 완전 적용(COMMIT) 시킬 수 없음실행 즉시 MySQL에 적용됨종류CREATEDROPALTER3) DCL (Data Control Language)사용자에게 어떤 권한을 부여하거나 빼앗을 때 사용종류GRANTREVOKEDENY2.. 2025. 4. 9.
2. MySQL 유틸리티 📒 MySQL 유틸리티📕 데이터베이스 모델링1. 소프트웨어 개발 모델1) 폭포수 모델과정1️⃣ : 프로젝트 계획2️⃣ : 업무 분석3️⃣ : 시스템 설계4️⃣ : 프로그램 구현5️⃣ : 테스트6️⃣ : 유지보수장점각 단계가 명확히 구분되어서 프로젝트의 진행 단계가 명확해짐단점문제가 발생했을 경우에도 앞 단계로 거슬러 올라가기 어려움2. 데이터베이스 모델링개념현 세계에서 사용되는 작업을 DBMS의 데이터베이스 개체로 옮기기 위한 과정현실에서 쓰이는 것을 테이블로 변경하기 위한 과정종류개념적 모델링 (업무 분석 단계)논리적 모델링 (업무 분석 후반 ~ 시스템 설계 전반)물리적 모델링 (시스템 설계 후반)🗒️ 예시공간 낭비되는 L자형 테이블 분리테이블의 중복되는 정보 제거각 행을 구분하는 유일한 값으로 .. 2025. 4. 9.
1. MySQL 설치 📒 MySQL 설치 및 DB 구축과정 미리 실습하기📕 DBMS/MySQL1. DBMS1) DBMS 개념데이터베이스데이터의 집합 (데이터 저장공간 자체)여러 명의 사용자나 응용 프로그램이 공유하고 동시에 접근이 가능해야 함DBMS데이터베이스를 관리, 운영하는 역할2) 특징데이터의 무결성데이터베이스 안의 데이터에 오류가 있어서는 안됨데이터의 독립성데이터베이스의 크기를 변경하거나 데이터 파일의 저장소를 변경하더라도, 기존에 작성된 응용 프로그램은 영향 받지X서로 의존적 관계가 아닌 독립적인 관계보안데이터베이스 안의 데이터에 아무나 접근하는 것이 아니라 데이터를 소유한 사람이나 데이터에 접근이 허가된 사람만 접근 가능사용자의 계정에 따라서 다른 권한을 가짐데이터 중복의 최소화동일한 데이터가 여러 개 중복되어.. 2025. 4. 9.
728x90
반응형