본문 바로가기
반응형

도전기/SQLP13

01_복습 sqlp where 1 =1 사용하는 이유SQL 쿼리에서 **`WHERE 1=1`** 구문을 사용하는 이유는 주로 코드 작성의 편의성과 유지보수성을 높이기 위해서입니다. 이 구문은 항상 참(True)인 조건을 의미하며, 실제로 데이터베이스 쿼리의 결과에 영향을 미치지 않습니다.다음은 `WHERE 1=1`을 사용하는 주요 이유들입니다:1. **동적 쿼리 작성의 용이성**:동적 쿼리를 작성할 때, 여러 조건을 추가하거나 제거해야 하는 경우가 많습니다.`WHERE 1=1`을 사용하면 기본적으로 참인 조건을 설정해 놓고, 이후에 필요한 조건을 `AND` 또는 `OR`로 쉽게 추가할 수 있습니다.이렇게 하면 새로운 조건을 추가할 때마다 `WHERE` 절을 변경할 필요 없이 간단히 추가만 하면 되므로 코드가 깔끔해집니다.2.. 2024. 10. 24.
Do it SQL__DO_IT_05_(based SQL Server) chapter 05 다양한 SQL 함수 사용하기05-1 문자열 함수CONCAT 함수/ CAST, CONVERT 함수/ ISNULL,COALESCE함수/ LOWER, UPPER 함수/ LTRIM,RTRIM, TRIM 함수/ LEN함수/CHARINDEX함수/ LEFT,RIGHT 함수/ SUBSTRING함수/REPLACE함수/ REPLICATE함수/ SPACE 함수/REVERSE 함수/ STUFF함수/ STR함수 CONCAT 함수 :문자열과 문자열 연결 CAST, CONVERT 함수문자열과 숫자 또는 날짜 연결ISNULL,COALESCE함수:ISNULL 함수는  (열 이름, 대체할 값)COALESCE 함수는 (열 이름 1, 열 이름 2, .) / 마지막 인자까지 NULL일 경우 NULL 반환 LOWER, UP.. 2024. 9. 12.
Do it SQL__DO_IT_04_(based SQL Server) chapter 04 테이블을 서로 통합하는 조인 알아보기 04-1 조인 내부 조인/ 외부조인/ 교차조인/ 셀프조인데이터 모델링과 정규화모델링: 주어진 상황에서 논리 데이터 모델을 구성하는 작업정규화: 데이터 모델이 적절한 일관성을 유지하며 중복이 없는 논리 데이터 모델을 구성하는 것내부조인 INNER JOIN조인키에 해당하는 각 테이블의 열값을 비교해 조건에 맞는 값            |    |--Index Seek(OBJECT:([DoItSQL].[dbo].[stock].[nci_stock_2] AS [b]), SEEK:([b].[symbol]=N'MSFT' AND [b].[date] >= '2021-10-01 00:00:00.000' AND [b].[date] ORDERED FORWARD)[DoI.. 2024. 9. 1.
SQL_레벨업_Do_Do Intro  1장 DBMS 아키텍처W 생각R 생각DB는 다양한 트레이드 오프의 균형을 잡으려는 미들웨어 성능관점 데이터의 위치 결정이 중요 DB는 갱신보다 검색에 비중을 두고 설계 SQL 실행 가능한 절차로 변환하고자 실행 계획 만듦 Quiz DBMS의 데이터 캐시관리 위한 알고리즘LRU(Least Recently Use)   2장 SQL 기초W 생각R 생각SQL은 비절차형 언어, 간단하고 직관적 작성 CASE 식은 조건분기 표현 도구 쿼리는 입력과 출력을 모두 테이블에 있는 것을 기준으로 구현 집합이론 바탕 연산자 : Group by, Union, Intersect 윈도우 함수는 Group by 절에서 집약기능을 제외하고 자르는 기능만 추구 Quiz Adress 테이블에서 성별 별로 나이 순위를 매기는.. 2024. 8. 30.
Do it SQL__DO_IT_03_(based SQL Server) chapter 03 SQL 시작하기 03-1 SELECT 문으로 데이터 검색하기 주석 작성 방법/ 쿼리 실행 방법/ SELECT 문 특정 열 검색/ 테이블 열 정보확인SELECT문주석Tip select 열from 테이블where 조건order by 열-- 한줄/* */ 여러줄2개열을 나열하려면 쉼표 구분대소 문자 구분 체크자원 소모 고려 index, 조건문 사용테이블 열정보확인Alt+f1  03-2 WHERE 문으로 조건에 맞는 데이터 검색하기특정 값 검색/ 비교 연산자 / 논리 연산자특정 값 검색비교 연산자논리 연산자열 = 조건값, , !=, !ALLANDANYBETWEENEXISTINLIKENOTORSOME열 IS NULL열 IS NOT NULL OR 반복> IN 대체 소괄호로 우선순위 지정검색IN,.. 2024. 8. 30.
ch06_I/O 효율화의 원리_오라클 성능 고도화 원리와 해법_I intro 성능튜닝 핵심 라이브러리 캐시 최적화데이터베이스 Call 최소화I/O 효율화 및 버퍼캐시 최적화 _*_ I/O 효율화 튜닝인덱스 원리, 조인 원리, 옵티마이저 원리(읽어야 하는 블록의 개수) 이해 필수 고급 SQL 활용 문제 해결 경험   01 블록단위 I/O: DBMS에서 I/O는 블록(페이지) 단위, 하나의 레코드에서 하나의 컬럼만 읽을 때 레코드가 속한 블록 전체를 읽게 됨Sequntial 액세스하나의 블록을 액세스해 그 안에 저장돼 있는 모든 레코드를 순차적 읽음레코드간 논리적 또는 물리적인 순서를 따라 차례대로 읽어 나가는 방식Random 액세스여러개의 블록을 액세스, 메모리 버퍼에서 읽음레코드간 논리적, 물리적 순서를 따르지 않고, 한건을 읽기위해 한 블록씨 접근 메모리 버퍼 캐시에.. 2024. 8. 29.
ch05_데이터베이스 Call 최소화 원리_[오라클 성능 고도화 원리와 해법_I] intro Sql 수행 중 발생, Execute Call, Fetch Call 줄이는 방안,User call, Recursive Call 최소화 원리와 방안 01 Call 통계Parse Call커서 파싱하는 과정, 실행계획 생성 및 차즌 과정 정보Execute Call커서 실행 통계Fetch Callselect문에서 실제 레코드 읽어 사용자가 요구한 결과 집합 반환 과정DML문(insert, update, delete, merge) Fetch call 미발생  02 User Call vs Recursive Call- User Call : OCI 통해 오라클 외부로 들어오는 CallClient WAS DBMS  service call Usecall Recursive CallPresentation Layer.. 2024. 8. 29.
ch04_라이브러리 캐시 최적화[오라클 성능 고도화 원리와 해법_I] ch04_09 Static vs Dynamic SQL _*_ 하드파싱 부하를 최소화하기 위해 바인드 변수 사용 필요 1. Static SQL 정의 - String 형 변수에 담지 않고 코드사이에  직접 기술한 SQL문 - PreCompile 단계에서 구문분석, 유효 오브젝트 여부, 오브젝트 액세스 권한 체크 가능 2. Dynamic SQL - String 형 변수에 담아서 기술하는 SQL문 - PreCompile 단계 Syntax, Semantics 체크 불가능 3. 일반 프로그램 언어에서 SQL 작성법 - String 변수에 담아서 실행 - Static SQL을 지원하는 언어 : 파워빌더, PL/SQL, Pro*C, SQLj 4. 문제의 본질은 바인드 변수 사용 여부 - 바인드 변수를 사용하지 않고 L.. 2024. 8. 29.
반응형