Laravel 데이터베이스: 쿼리 빌더

Jmnote (토론 | 기여)님의 2024년 6월 4일 (화) 03:04 판 (→‎Where 절)

1 개요

Database: Query Builder
데이터: 쿼리 빌더

2 소개

3 데이터베이스 쿼리 실행

3.1 청킹 결과

3.2 게으른 결과 스트리밍

3.3 집계

4 문 선택

5 원시 표현

6 조인

7 유니온

8 기본 Where 절

8.1 Where 절

쿼리 빌더의 where 메소드를 사용하여 쿼리에 "where" 절을 추가할 수 있습니다. where 메소드의 가장 기본적인 호출에는 세 개의 인수가 필요합니다. 첫 번째 인수는 컬럼의 이름입니다. 두 번째 인수는 데이터베이스에서 지원하는 연산자 중 하나입니다. 세 번째 인수는 컬럼의 값과 비교할 값입니다.

예를 들어, 다음 쿼리는 votes 컬럼의 값이 100이고 age 컬럼의 값이 35보다 큰 사용자를 조회합니다:

$users = DB::table('users')
                ->where('votes', '=', 100)
                ->where('age', '>', 35)
                ->get();

편의를 위해, 컬럼이 주어진 값과 같음(=)을 확인하려는 경우, 두 번째 인수로 값을 전달할 수 있습니다. Laravel은 = 연산자를 사용하려 한다고 가정합니다:

$users = DB::table('users')->where('votes', 100)->get();

앞서 언급했듯이, 데이터베이스 시스템에서 지원하는 모든 연산자를 사용할 수 있습니다:

$users = DB::table('users')
                ->where('votes', '>=', 100)
                ->get();
 
$users = DB::table('users')
                ->where('votes', '<>', 100)
                ->get();
 
$users = DB::table('users')
                ->where('name', 'like', 'T%')
                ->get();

또한 조건의 배열을 where 함수에 전달할 수도 있습니다. 배열의 각 요소는 일반적으로 where 메소드에 전달되는 세 개의 인수를 포함하는 배열이어야 합니다:

$users = DB::table('users')->where([
    ['status', '=', '1'],
    ['subscribed', '<>', '1'],
])->get();

PDO는 컬럼 이름 바인딩을 지원하지 않습니다. 따라서 쿼리에서 참조되는 컬럼 이름을 사용자 입력에 의해 결정되도록 해서는 안 됩니다. 여기에는 "order by" 컬럼이 포함됩니다.

8.2 Or Where 절

8.3 Where Not 절

8.4 Where Any / All 절

8.5 JSON Where 절

8.6 추가 Where 절

8.7 논리적 그룹화

9 고급 Where 절

9.1 Where Exists 조항

9.2 서브쿼리 Where 절

9.3 풀텍스트 Where 절

10 정렬, 그룹화, 리미트, 오프셋

10.1 정렬

10.2 그룹화

10.3 리미트, 오프셋

11 조건절

12 Insert 문

12.1 Upsert

13 Update 문

13.1 JSON 컬럼 업데이트

13.2 증가 및 감소

14 Delete 문

15 비관적 락

16 디버깅

17 참고

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}