"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > Laravel 시작하기: 쿼리 작성기 초보자 가이드

Laravel 시작하기: 쿼리 작성기 초보자 가이드

2024-11-08에 게시됨
검색:641

Getting Started with Laravel: A Beginner

Laravel의 쿼리 빌더는 PHP에서 SQL 쿼리를 작성하기 위한 강력하고 유연한 인터페이스를 제공합니다. 이를 통해 대부분의 복잡성을 추상화하면서 표현력 있는 SQL과 유사한 구문으로 데이터베이스와 상호 작용할 수 있습니다.

데이터 선택, 삽입, 업데이트, 삭제와 같은 다양한 작업을 위해 쿼리 빌더를 사용하는 Laravel 애플리케이션의 일반적인 사용 사례를 살펴보겠습니다.


1단계: Laravel 프로젝트 설정

Laravel 프로젝트가 없다면 다음과 같이 설정할 수 있습니다:

composer create-project --prefer-dist laravel/laravel laravel-query-builder
cd laravel-query-builder
php artisan serve

.env 파일에서 데이터베이스 구성을 설정했는지 확인하세요.

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=your_database
DB_USERNAME=your_username
DB_PASSWORD=your_password

기본 테이블 생성을 위한 마이그레이션 실행:

php artisan migrate

2단계: 컨트롤러에서 쿼리 빌더 사용

쿼리 작성기의 사용법을 보여주기 위해 컨트롤러를 만들어 보겠습니다.

php artisan make:controller UserController

다음 코드를 사용하여 UserController.php를 편집합니다:

get();

        return response()->json($users);
    }

    // Insert a new user
    public function store(Request $request)
    {
        // Step 4: Insert a new user
        DB::table('users')->insert([
            'name' => $request->name,
            'email' => $request->email,
            'password' => bcrypt($request->password),
        ]);

        return response()->json(['message' => 'User created successfully!']);
    }

    // Update an existing user
    public function update(Request $request, $id)
    {
        // Step 5: Update user by ID
        DB::table('users')
            ->where('id', $id)
            ->update([
                'name' => $request->name,
                'email' => $request->email,
            ]);

        return response()->json(['message' => 'User updated successfully!']);
    }

    // Delete a user
    public function destroy($id)
    {
        // Step 6: Delete user by ID
        DB::table('users')->where('id', $id)->delete();

        return response()->json(['message' => 'User deleted successfully!']);
    }
}

3단계: 데이터 검색

쿼리 작성기를 사용하여 사용자 테이블에서 모든 행을 선택합니다.

$users = DB::table('users')->get();
  • 설명:
    • DB::table('users') 메소드는 사용자 테이블을 대상으로 합니다.
    • get() 메소드는 해당 테이블에서 모든 레코드를 검색합니다.

응답 예시:

[
    {
        "id": 1,
        "name": "John Doe",
        "email": "[email protected]"
    },
    {
        "id": 2,
        "name": "Jane Doe",
        "email": "[email protected]"
    }
]

4단계: 데이터 삽입

쿼리 작성기를 사용하여 새 사용자를 삽입합니다.

DB::table('users')->insert([
    'name' => 'Alice',
    'email' => '[email protected]',
    'password' => bcrypt('password123'),
]);
  • 설명:
    • insert() 메소드는 사용자 테이블에 새 행을 삽입합니다.
    • 데이터는 키가 열 이름과 일치하는 연관 배열로 전달됩니다.

이렇게 하면 사용자 테이블에 새 사용자가 추가됩니다.


5단계: 데이터 업데이트

기존 레코드를 업데이트하려면 update():
를 사용하세요.

DB::table('users')
    ->where('id', 1)
    ->update([
        'name' => 'John Smith',
        'email' => '[email protected]'
    ]);
  • 설명:
    • where() 절은 ID = 1인 행을 선택합니다.
    • update() 메서드는 선택한 행의 이름과 이메일 필드를 수정합니다.

이렇게 하면 사용자 테이블에서 ID가 1인 사용자가 업데이트됩니다.


6단계: 데이터 삭제

데이터베이스에서 레코드를 삭제하려면 delete():
를 사용하세요.

DB::table('users')->where('id', 2)->delete();
  • 설명:
    • where() 절은 ID 2인 사용자를 선택하는 조건을 지정합니다.
    • delete() 메소드는 테이블에서 일치하는 행을 제거합니다.

이렇게 하면 ID 2의 사용자가 삭제됩니다.


7단계: 쿼리 빌더를 사용한 필터링

추가 메소드를 연결하여 데이터를 필터링하거나 쿼리에 조건을 추가할 수 있습니다.

예: 특정 조건을 가진 사용자 검색

$users = DB::table('users')
    ->where('email', 'like', '%example.com%')
    ->orderBy('name', 'asc')
    ->get();
  • 설명:
    • where() 절은 조건을 추가하여 이메일에 example.com이 포함된 사용자를 가져옵니다.
    • orderBy() 메서드는 사용자 이름을 기준으로 오름차순으로 정렬합니다.

8단계: 페이지 매김

Laravel의 쿼리 빌더를 사용하면 결과 페이지를 쉽게 매길 수 있습니다.

$users = DB::table('users')->paginate(10);
  • 설명:
    • paginate() 메서드는 결과를 페이지로 나누어 페이지당 10개의 결과를 표시합니다.

9단계: 거래

데이터베이스 트랜잭션을 사용하여 여러 쿼리가 성공적으로 실행되도록 합니다. 하나의 쿼리가 실패하면 모든 변경 사항이 롤백됩니다.

DB::transaction(function () {
    DB::table('users')->insert([
        'name' => 'John Doe',
        'email' => '[email protected]',
        'password' => bcrypt('password123')
    ]);

    DB::table('orders')->insert([
        'user_id' => 1,
        'order_total' => 500
    ]);
});
  • 설명:
    • transaction() 메소드는 사용자 및 주문 테이블 삽입이 모두 성공적으로 실행되도록 보장합니다. 둘 중 하나라도 실패하면 두 작업이 모두 롤백됩니다.

10단계: 원시 쿼리

원시 SQL을 실행해야 하는 경우 Laravel의 쿼리 빌더는 다음을 허용합니다:

$users = DB::select('SELECT * FROM users WHERE id = ?', [1]);
  • 설명:
    • select() 메소드를 사용하여 원시 SQL 쿼리를 실행할 수 있습니다.
    • 보안을 위해 준비된 문장(?)을 사용하여 SQL 주입을 방지합니다.

결론

Laravel의 쿼리 빌더는 데이터베이스와 상호 작용할 수 있는 강력하고 유연한 방법을 제공하여 SQL 복잡성을 대부분 추상화합니다. 검색, 삽입, 업데이트, 삭제, 필터링 등 각 부분을 세분화하여 깔끔하고 체계적인 방식으로 데이터베이스 상호 작용을 쉽게 관리할 수 있습니다.

이 예는 쿼리 빌더에 대한 기본 가이드를 제공합니다. 애플리케이션이 성장함에 따라 조인, 하위 쿼리, Eloquent의 즉시 로딩과 같은 고급 기능을 사용할 수 있습니다.

릴리스 선언문 이 기사는 https://dev.to/mdarifulhaque/getting-started-with-laravel-a-beginners-guide-to-query-builder-j0i?1에서 복제됩니다. 침해가 있는 경우, Study_golang@163으로 문의하시기 바랍니다. .com에서 삭제하세요
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3