[5] laravel - 데이터베이스 쿼리 빌더_2

2024. 5. 20. 17:33laravel(라라벨)

728x90

[ 환경 ]
ㄴ laravel 10.48.9 


1.  distinct () - 중복 데이터 제거

Route::get('/moonddev10', function () {
    # 중복데이터를 제거할 필드(컬럼)을 선택하고 최종 조회
    // 쿼리문 : SELECT DISTINCT id FROM member;
    // DISTINCT 특성상 중복제거할 컬럼을 무조건 지정해줘야함.
    $bbb = DB::table('member')->distinct()->select('id')->get();
    return $bbb;
});

ㄴ 기존 데이터 - lee가 2개로 중복된것 확인

ㄴ 정상출력 - 가장 아래 중복되는 아이디의 데이터가 제거된거 확인.

 

2.  비교연산자

Route::get('/moonddev11', function () {
    # 비교연산자 where에 컬럼과 비교할조건 데이터를 입력하여 조회
    // 쿼리문 : SELECT idx FROM member WHERE idx != 1;
    // 쿼리문 : SELECT idx FROM member WHERE idx > 3;
    // 쿼리문 : SELECT idx FROM member WHERE idx < 3;
    // 쿼리문 : SELECT idx FROM member WHERE idx >= 3;
    // 쿼리문 : SELECT idx FROM member WHERE idx <= 3;
    $a1 = DB::table('member')->select('idx')->where('idx', '!=', '1')->get();
    $a2 = DB::table('member')->select('idx')->where('idx', '>', '3')->get();
    $a3 = DB::table('member')->select('idx')->where('idx', '<', '3')->get();
    $a4 = DB::table('member')->select('idx')->where('idx', '>=', '3')->get();
    $a5 = DB::table('member')->select('idx')->where('idx', '<=', '3')->get();

    echo "idx 값이 1이 아닌 데이터 : ".$a1."<br>";
    echo "idx 값이 3보다 큰 데이터 : ".$a2."<br>";
    echo "idx 값이 3보다 작은 데이터 : ".$a3."<br>";
    echo "idx 값이 3보다 크거나 같은 데이터 : ".$a4."<br>";
    echo "idx 값이 3보다 작거나 같은 데이터 : ".$a5."<br>";
});

ㄴ 정상출력

 

3.  LIKE문

Route::get('/moonddev12', function () {
    # where 조건에 like문을 사용하여 데이터 조회
    // 쿼리문 : SELECT id FROM member WHERE id LIKE 'moonddev1';
    // 쿼리문 : SELECT id FROM member WHERE id LIKE '%moonddev';
    // 쿼리문 : SELECT id FROM member WHERE id LIKE 'moonddev%';
    // 쿼리문 : SELECT id FROM member WHERE id LIKE '%moonddev%';
    $a1 = DB::table('member')->select('id')->where('id', 'LIKE', 'moonddev1')->get();
    $a2 = DB::table('member')->select('id')->where('id', 'LIKE', '%moonddev')->get();
    $a3 = DB::table('member')->select('id')->where('id', 'LIKE', 'moonddev%')->get();
    $a4 = DB::table('member')->select('id')->where('id', 'LIKE', '%%moonddev%')->get();

    echo "id 값이 moonddev1인 데이터 : ".$a1."<br>";
    echo "id 값이 moonddev로 끝나는 데이터 : ".$a2."<br>";
    echo "id 값이 moonddev로 시작하는 데이터 : ".$a3."<br>";
    echo "id 값이 moonddev가 포함하는 데이터 : ".$a4."<br>";
});

ㄴ 정상출력

 

4.  orWhere() - or문 

Route::get('/moonddev13', function () {
    # orWhere을 사용하여 where조건에 이은 추가조건 넣고 조회.
    // 쿼리문 : SELECT idx FROM member WHERE idx = 1 OR idx = 2;
    $bbb = DB::table('member')->select('idx')->where('idx', '=', '1')->orWhere('idx','=','2')->get();
    return $bbb;
});

ㄴ 정상출력

5.  whereBetween() / whereNotBetween() - between문 

Route::get('/moonddev14', function () {
    # whereBetween/whereNotBetween을 사용하여 특정범위 데이터 조회
    // 쿼리문 : SELECT idx FROM member WHERE idx BETWEEN 1 AND 4; 
    // 쿼리문 : SELECT idx FROM member WHERE idx NOT BETWEEN 1 AND 4;
    $a1 = DB::table('member')->select('idx')->whereBetween('idx', [1,4])->get();
    $a2 = DB::table('member')->select('idx')->whereNotBetween('idx', [1,4])->get();

    echo "idx 값이 1에서 4사이에 존재하는 데이터 : ".$a1."<br>";
    echo "idx 값이 1에서 4사이에 존재하지 않는 데이터  : ".$a2."<br>";
});

 

6.  orderBy() - order by문

Route::get('/moonddev15', function () {
    # orderBy를 사용하여 데이터 정렬
    // 쿼리문 : SELECT idx FROM member ORDER BY idx ASC;
    // 쿼리문 : SELECT idx FROM member ORDER BY idx DESC;
    $a1 = DB::table('member')->select('idx')->orderBy('idx', 'ASC')->get();
    $a2 = DB::table('member')->select('idx')->orderBy('idx', 'DESC')->get();

    echo "idx 값 오름차순 정렬 : ".$a1."<br>";
    echo "idx 값 내림차순 정렬  : ".$a2."<br>";
});

ㄴ 정상출력

728x90