What SQL is and how to write a simple SELECT query (a Drupal how-to)

이제 데이터베이스를 사용하여 정보를 저장하는 이점으로 이전에 언급 한 한 가지는 데이터를 정렬하여 데이터베이스에서 아주 쉽게 꺼낼 수 있다는 것입니다 그래서 찾아 보자 우리가 사용할 수있는 또 다른 테이블에는 약간 더 많은 정보가 있습니다

여기 측면에서 상단으로 스크롤하여이 필터 상자로 이동합니다 메뉴에 입력하고 Enter 키를 누르십시오 이 양식을 제출했을 때 표를 필터링하는 것이 었습니다 제목에 메뉴가있는 메뉴에 따라 메뉴 라우터를 클릭하면 메뉴 라우터 테이블에 저장된 정보를 엽니 다 다시, 우리는 열 이름을 볼 수 있습니다 상단 및 다양한 항목을 아래 아래에 표시합니다

맨 위를 보면 총 289 행의 "0 행-29 행 표시"라고 표시됩니다 그래서 우리는 우리가 작업 할 수있는 더 많은 정보가있는 더 큰 테이블을 보았습니다 자, 이것 테이블은 Drupal의 기능과 관련하여 정말 흥미 롭습니다 본질적으로, Drupal의 페이지로 이동할 때마다이 테이블에서 경로와 해당 경로에 액세스 할 때 실행되어야하는 기능에 대한 주소 표시 줄 예를 들어 사이트 슬래시 관리자의 관리자 페이지로 이동하면 system_admin_menu_block_page () 함수

그리고 우리가 콘텐츠를 반환하는 방법을 본 것처럼 다른 예제의 함수에서이 함수에서도 동일한 기본 사항이 발생합니다 따라서이 표의 모든 데이터가 작동하는 방식에 대해서는 자세히 다루지 않겠지 만 Drupal에서 왜 중요한지, 왜 우리가 일부를 잡고 싶어하는지 이해하십시오 여기서 정보 예를 들어 수정해야 할 기능을 찾으려면 또는 특정 페이지의 모양을 변경하기 위해 재정의하려면 여기로 이동하여 확인하십시오 우리가 목표로 삼아야 할 기능을 정확히 파악하는 데 도움이 될 것입니다 출력을 조정하기 위해

이것이 우리의 시나리오입니다 우리가 이것으로부터 특정 행을 걸러내는 방법은라는 것을 사용하는 것입니다 SQL SQL은 Structured Query Language의 약자이며 기본적으로 우리가 사용하는 언어입니다 데이터베이스와 통신하기 위해 "이봐, 우리는 몇 가지 정보를 꺼내고 싶다 "정보를 입력하거나 레코드를 삭제하려고합니다 SQL은 꽤 깊지 만 실제로 간단한 쿼리로 많은 것을 할 수 있습니다

그래서 시작하겠습니다 이 표에서 특정 데이터를 선택하여 상단의 SQL 탭을 클릭하겠습니다 지금이 창에는 SELECT라고 표시되고 별표 FROM이 있고 우리의 테이블 이름 인 menu_router가 있습니다 장소 1 이제, 이것이 의미하는 바에 대해 잠시 후에 이야기하겠습니다 계속해서 클릭합시다 가기 우리가 여기서 보는 것은 기본적으로 우리가 전에 본 것입니다

0에서 29까지의 행을 보여줍니다 약 289 개이며이 행에 표시되는 데이터는 이전에 본 것과 동일합니다 찾아보기 탭을 클릭하면이 초기 출력이 표시됩니다 맨 위에는 SQL 쿼리가 제공되며 여기에서 쿼리를 볼 수 있습니다 나는 조금 확대하겠습니다

SELECT라고 표시된 다음 별표 FROM menu_router가 있습니다 1 번 위치에 30 개의 행만 표시하기 위해이 LIMIT를 추가했습니다 이제 여기 SQL 탭으로 돌아가서 이것이 무엇을 의미하는지 이야기 해 봅시다 확대 해 볼게요 이것을 조금 더 크게 만들었습니다 여기이 줄을 쿼리라고합니다

그것은 그것이 의미하는 것처럼 들립니다 쿼리입니다 우리는 지금 데이터베이스를 요구하고 있습니다 특정 조건과 일치하는 레코드 우리가 묻는 방법은 SELECT라고 말하고 사용합니다 결과에 모든 열을 포함시키고 싶다는 별표 우리는 될 수있다 특정 열을 꺼내려면 특정 열에 만 해당하지만 지금은 우리는 그것들을 모두 선택하고 FROM이라는 키워드를 사용하고 작업중인 데이터베이스 테이블의 이름입니다

여기서 주목해야 할 것은이 쿼리가 어떤 데이터베이스를 알지 못한다는 것입니다 우리가 시작하는 테이블 menu_router 테이블을 탐색했지만 이 SQL 탭을 클릭한다고해서 우리가 작업하고있는 테이블이지만 우리가 어떤 데이터베이스를 사용하고 있는지 알고 있습니다 그래서 최소한이 인터페이스에서는 "이 데이터베이스를 사용하겠습니다"라고 말할 필요는 없습니다 다음은 해당 데이터베이스에 대해 실행할 쿼리입니다

그것은 정보가 이미 저장되어 있습니다 그래서 우리는 테이블의 이름을 지정할 수 있습니다 그리고 시작하는 조건이 있습니다 키워드 WHERE로 이제이 쿼리에서 여러 단어가 모두 대문자로 표시됩니다 SELECT, FROM 및 WHERE와 같지만 반드시 그럴 필요는 없습니다

이것은 쉽게 볼 수있는 방법입니다 쿼리의 어떤 부분이 언어이고 어떤 부분이 우리가 전달하는 매개 변수입니까? 에서 자, 이것은 1이라고 말합니다 자, 이것은 조금 이상해 보이지만, 그 의미는 항상 사실입니다 우리는 이것과 같이 WHERE 1 섹션을 제거 할 수 있습니다 여전히 동일한 행 세트가 발생합니다

그러나 PHPMyAdmin 에서이 작업을 수행하는 이유 나중에 입력하지 않고도 자신 만의 조건을 쉽게 추가 할 수 있도록하는 것입니다 또 어디 계속해서이 WHERE 1을 다시 넣겠습니다 좋아, 계속해서 확대 해 볼게 다시 밖으로

What an SQL injection attack is and how to create one (a Drupal how-to)

다시, 우리는 테스트 도트 PHP 파일에 있으며 여기에 쿼리가 있습니다 다시 두 단계 여기 하나는 객체 인 mysql_query () 함수에서 결과 세트를 얻는 것입니다

그런 다음 mysql_fetch_array ()로 전달하여 개별 레코드를 변환합니다 우리가 사용할 수있는 배열로 항목 이 경우, 우리는 하나의 결과 만 가져 오기를 희망하므로 실제로는 그렇지 않습니다 모든 결과를 살펴 보려면 루프가 필요합니다 자, 여기서 인용 부호를 어떻게 사용하는지 지적하고 싶습니다

다음 단계 쿼리의 시작을 나타 내기 위해 큰 따옴표가 있습니다 우리는 쿼리 안에 데이터를 삽입하기 전에 큰 따옴표를 사용합니다 제출 한 양식에서 가져 오는 데이터 이 따옴표를 닫기 전에 여기에 작은 따옴표를 추가하십시오 그리고 우리가 더블을 시작할 때 다시 따옴표를 사용하여 쿼리를 다시 시작하면 작은 따옴표를 끝냅니다

이것이 렌더링 될 때 사용자가 사용자 이름으로 입력 한 내용에는 작은 따옴표가 있습니다 그리고 우리는 암호에 대해 똑같은 일을하지만, 우리가 사용하는 전략에 결함이 있습니다 사용자가 사용자 이름이나 비밀번호에 작은 따옴표를 넣으면 어떻게됩니까? 고의 또는 사고? 글쎄, 거기서 무슨 일이 일어나는지 봅시다 브라우저로 넘어 가서 로그 아웃을하고 admin을 입력하겠습니다 마지막에 작은 따옴표를 입력 한 다음 올바른 비밀번호를 입력하고 클릭합니다 여기서 우리는 여기에“mysql_fetch_array () 제공된 argument is 유효한 MySQL 결과 리소스가 아닌 경우 줄 번호를 알려줍니다 문제가 있습니다

편집기로 돌아가서 21 행을 보면, 그 위치가 mysql_fetch_array () 함수가 실행 중입니다 그러나 실행중인 오류는 우리는이 결과 변수가 일반적으로 기대하는 것이 아닙니다 뭔가를 찾고 있습니다 성공적인 결과가 나오면 mysql_query ()에서 반환됩니다 그것은 중요하지 않습니다 실제 경기가있었습니다 여전히 사용할 수있는 유효한 객체를 반환합니다 mysql_fetch-array ()

이것이 우리에게 말하는 것은 mysql_query ()에서 무언가 잘못되고 있다는 것입니다 그 인용문에서 그것이 문제가있는 곳입니다 그래, 경고가 그렇게 나쁘지 않게 그러나 이것이 실제로 노출되는 것은 사이트의 주요 보안 결함입니다 누군가 걸릴 수 있습니다 이 기능은 따옴표를 사용하여 쿼리를 변경하고 실제로 쿼리를 모두 다시 작성하는 기능입니다

비밀번호를 몰라도 로그인과 같은 작업을 수행 할 수 있습니다 그들은 재설정 할 수 있습니다 데이터베이스 이를 사용하여 데이터베이스에서 중요한 데이터를 가져올 수 있습니다 기본적으로 쿼리를 통해 데이터베이스로 할 수있는 모든 작업은 간단하게 수행 할 수 있습니다 이 결함을 악용함으로써이를 MySQL 주입 공격이라고합니다

계속해서 스스로 해보자 리소스 팩 디렉토리로 돌아가겠습니다 sql-injection-and-escaping-strings라고하는 다섯 번째 단계를 열어 보겠습니다 코드를 복사하여 테스트 도트 PHP 파일에있는 코드에 붙여넣고 저장합니다 그것 여기 19 행에 비밀번호 입력에 붙여 넣어야하는 텍스트가 있습니다

비밀번호 확인을 우회합니다 이것을 복사 해 봅시다 큰 따옴표로 묶습니다 처음에는 작은 따옴표가 있고 끝에 작은 따옴표가 있습니다 우리가 점프하면 브라우저로 돌아가서 사용자 이름으로 admin을 입력 한 다음 해당 텍스트를 붙여 넣습니다

암호를 입력하고 로그인을 클릭하면 성공 메시지가 표시됩니다 우리는 로그인하고“환영합니다, 관리자 '' 실제로 관리자 비밀번호를 입력하지 않았습니다 이것이 중요한 문제입니다 지금, 이 출력에 쿼리를 추가하여 쿼리가 모두 한 번 실행 된 것을 정확히 볼 수 있습니다 동적 데이터 중 하나를 가져 와서 별표를 사용하여 모든 열을 선택하십시오

사용자 이름이 'admin'이고 비밀번호가 비어 있거나 empty는 비어있는 것과 같습니다 이 OR 키워드는 이전에는 보지 못했지만 기본적으로는 이 조건 또는이 조건 중 하나가 true 여야합니다 반면에 AND는 그 앞에 오는 조건과 그 이후의 조건이 참이어야합니다 따라서이 경우 말하는 것은 암호가 비어 있어야한다는 것입니다 사용자 이름이 admin이거나 empty는 비어 있습니다

그럼에도 불구하고 조금 이상해 보이지만 여전히 사실입니다 비어있는 것은 비어 있습니다 이것이지나 가기 때문에 이 조건은 무시되고 들어갑니다

Module 2 – SQL Server 2012 Management Studio

이 비디오에서는 SQL Server 2012 Management Studio를 살펴 보겠습니다 Management Studio를 탐색하는 방법을 배우게됩니다

데이터베이스 다이어그램을 만들고 테이블 관계를보고 매우 간단한 쿼리를 작성하고 실행하십시오 우리는 Windows 시작 메뉴, 모든 프로그램으로 이동하여 Management Studio를 엽니 다 Microsoft SQL Server 2012, SQL Server Management Studio 이것이 SQL Server Management Studio의 모습입니다 Object Explorer가 있고, 여기 왼쪽에있는이 창에서 모든 데이터베이스를 볼 수 있습니다

당신은 그것들을 드릴 다운 할 수 있습니다 예를 들어, XYZ_Medical_DBF 데이터베이스를 확장했습니다 여기 그리고 당신은 내 데이터베이스 다이어그램, 테이블, 뷰 등이 해당 데이터베이스에 대해 나열됩니다 에있는 거의 모든 항목을 마우스 오른쪽 버튼으로 클릭 할 수 있습니다 개체 탐색기를 사용하여 해당 개체에서 수행 할 수있는 다양한 작업 옵션을 가져옵니다

어떤 옵션을 사용하는지는 당신이보고있는 대상의 종류에 달려 있습니다 예를 들어, 테이블을 확장하고 테이블 중 하나를 마우스 오른쪽 버튼으로 클릭하면 (마우스 오른쪽 버튼으로 클릭 약속 테이블에서), 우리는 몇 가지 옵션이 있습니다 우리는 새로운 테이블을 만들 수 있습니다 디자인을 클릭하면이 표의 구조가 표시됩니다 (여기서 기본 키는 키 옆에 작은 키가 있기 때문에 열의 데이터 유형, null이 허용됨 등) 여기에서 다시 테이블의 상위 1000 개 행을 선택할 수 있습니다 여기에 결과가 표시됩니다 종속성을 볼 수 있으며, 삭제, 새로 고침

이런 방식으로 수행하려는 경우 상위 200 개 행을 편집 할 수도 있습니다 상단 200 행 수정 옵션을 선택하면 행을 삭제할 수 있습니다 하단에 새 행을 입력하면 기존 레코드를 수정할 수 있습니다 나는 SQL을 사용하여 이러한 작업을 수행하지만이 옵션을 사용하려면 사용해야합니다 따라서 Object의 객체를 마우스 오른쪽 버튼으로 클릭하면 많은 옵션을 사용할 수 있습니다

탐침 표에서 항목을 펼치면됩니다 해당 테이블의 모든 열을보십시오 그리고 실제로 거기에서 오른쪽 클릭하고 수정할 수 있습니다 변경하려는 경우 (열 이름을 마우스 오른쪽 단추로 클릭하고 수정을 선택하십시오)

이것으로부터 디자인보기에서 열을 오른쪽 클릭하고 속성을 선택할 수도 있습니다 해당 항목을 설명하는 하단의 많은 항목을보십시오 뿐만 아니라의 속성 오른쪽에있는 속성 창에있는 표 대용량 데이터베이스가 있고 특정 개체를 찾으려면 필터 단추를 사용하여 필터링 할 수 있습니다 이것은 크지 않다

데이터베이스,하지만 난 아직도 당신에게 어떻게 보여줄거야 약속을 찾고 있다고 해봐 테이블을 선택하고, 위로 올라가 필터를 클릭하고, 필터링을 원한다고 말하십시오 개체의 이름에 "app"가 포함 된 개체를 선택하고 확인을 클릭합니다 이제 나는 그것을 볼 수있다

표가 필터링되고 필터링 된 단어가 표 옆에 표시되며, 지금 확장하면 나는 약속 테이블 만 본다 필터를 제거하려면 다시 클릭하면됩니다 다시 필터링하고 필터 지우기를 클릭 한 다음 확인을 클릭합니다 그리고 이제 모든 테이블을 다시 봅니다 또한 새로 고침 단추를 필터 단추 오른쪽에 바로 표시하십시오

도움이 되네 예를 들어, 방금 SQL 문을 사용하여 테이블을 만든 다음 새 테이블 아직 개체 탐색기 목록에 나타나지 않습니다 데이터베이스를 선택할 수 있습니다 새로 고침하고 새로 고침 버튼을 클릭하여 데이터베이스를 새로 고침하고 새 테이블을 볼 수 있어야합니다 개체 탐색기와 속성 모두 창 (화면의 오른쪽에 표시됨)에 몇 가지 옵션이 있습니다

닫을 수 있습니다 이 창은 X를 클릭하여 창을 닫습니다 창을 닫고 창을 다시 가져 오려면, 상단의보기 메뉴를 클릭 한 다음 객체 탐색기를 선택하면됩니다 또는 속성 창을 엽니 다 클릭하여 두 창 중 하나를 "자동 숨기기"또는 "고정 해제"할 수 있습니다

핀 아이콘, 그리고 그렇게한다면,이 작은 버튼을 굴릴 수 있습니다 패널을 일시적으로 보려면 마우스를 올려 놓으십시오 창을 "다시 고정"(회전 자동 숨기기 해제), 핀을 다시 클릭하기 만하면됩니다 화면의 가운데 부분은 새 쿼리 및 SQL 파일이 열립니다 새 쿼리를 만들려면 새 쿼리 버튼을 클릭하면됩니다

표시되는 새 쿼리 창에 쿼리를 입력하면 F5 키를 누르거나 키를 누르거나 실행 단추를 눌러 조회를 실행하십시오 열려있는 쿼리 창이 나타나면, 상단에있는이 작은 드롭 다운 메뉴를 보면 어떤 데이터베이스인지 알 수 있습니다 쿼리를 실행하기 전에 항상 선택했는지 확인해야합니다 해당 드롭 다운 메뉴에서 쿼리 할 데이터베이스 쿼리에서 오류가 발생하는 경우, 오류 메시지가있는 메시지 탭에 표시됩니다 화면 하단

작업하면서 오류를 해석하고 수정하는 경험을 얻을 수 있습니다 이 과정을 통해 물론 쿼리가 만족 스러울 때 Windows의 파일을 저장하는 것처럼 쿼리 : file, save 파일이 저장되었습니다sql 파일 확장명

원하는 저장된 검색어가있는 경우 열려 있으면 파일 열기, 파일 열기, 파일 선택, 열기를 클릭하기 만하면됩니다 그리고 그냥 이전과 마찬가지로 F5 또는 실행 단추를 사용하여 쿼리를 실행할 수 있습니다 원한다면, 너는 이 탭을 잡고 작업을 별도의 창으로 옮길 수 있습니다 이 두 개의 쿼리 또는 데이터베이스 다이어그램을 나란히 표시하려는 경우 유용 할 수 있습니다 놓다 창문은 조금 까다 롭습니다

창 제목 바를 클릭하면; 클릭하고 마우스 버튼을 누른 채로 창을 움직이기 시작하면 작게 표시됩니다 십자 모양의 메뉴 이 메뉴에서 노란색은 창을 표시합니다 마우스 버튼을 놓습니다 따라서 탭으로 기본 창에 되돌릴 수 있습니다

그것을 다른 질의의 측면이나 상단 또는 하단에 놓고, 다른 질의의 화면 분할 질문 화면이 파란색으로 바뀌면 검색어를 공개 할 때 검색어가 표시 될 위치를 나타냅니다 마우스 버튼 탭을 드래그하여 탭의 순서를 바꿀 수 있습니다 옆으로

각 탭을 마우스 오른쪽 버튼으로 클릭하면 저장, 닫기, 탭 그룹을 시작할 수도 있습니다 예를 들어 탭 그룹을 선택할 수도 있습니다 새 세로 탭 그룹 및이 탭을 분리하여 개별적으로보고 있으므로, 하지만 여전히 메인 윈도우 안에 있습니다 그리고 세 번 탭을 볼 수 있도록 다시 할 수 있습니다 다시 돌려 놓기를 원하면, 십자가 모양을 사용하여 전에했던 것처럼 다시 붙이십시오

메뉴 수평 탭 그룹을 생성 할 수도 있습니다 여러 개의 검색어가 열려 있고 원하는 탭을 찾을 수 없다면, 작은 아래쪽 화살표를 클릭하십시오 쿼리 영역의 오른쪽 상단에 열린 쿼리 목록을 가져온 다음 어느 것을보고 싶습니까? 그 선택에 대해 자세히 살펴 보겠습니다 우리가 1 분 전에 개설 한 진술 : 사람에게서 * 선택하십시오

이것은 매우 간단한 쿼리입니다 별표 테이블 person에서 모든 열을 선택하려는 것을 나타내며 지정하지 않습니다 where 절이나 order by 절과 같은 다른 절이 있으므로 모든 항목을 선택합니다 테이블 사람에게서 행의 이 쿼리를 실행 한 후에는 위아래로 스크롤 할 수 있습니다

쿼리에서 반환 한 모든 데이터를 볼 수있는 권한이 있어야합니다 빨리 변경하겠습니다 이 쿼리 – 별표를 사용하는 대신 원하는 두 개의 열을 지정합니다 선택할 수 있습니다 그래서 우리는 단지 person_last_name을 선택하기를 원할 것입니다

and person_first_name 그래서, 나는 실수로 여기서 오류를 만들었습니다 나는 그것이 무엇인지 알아낼 수 있는지 알려줄 것입니다 오류는 "잘못된 열 이름, person_firstname"이라고 말합니다 왜 아직도 그 이유를 알 수 없으면 유효한 열 이름이 아니고, 여기에 가서 테이블을보고,보세요 사람 테이블에서 내 열을 확장하십시오

왜냐하면 나는 여기로 가서 내 테이블을보고, 사람 테이블을보고 내 컬럼을 확장 할 수있다 내 오류가 열에 관한 이야기이기 때문에, 맞습니까? person_first_name을 보자 사람은 첫 번째 밑줄 이름을 강조한다 밑줄을 쳐라 그래서 우리는 그걸 넣었습니다

우리의 쿼리를 실행할 수 있습니다 따라서이 쿼리의 결과는 이름과 성을 얻는 것입니다 알파벳 순으로 정렬하고 마지막으로 정렬합니다 데이터베이스 다이어그램을 살펴 보겠습니다 맨 위에있는 각 데이터베이스 아래에 데이터베이스 다이어그램을 찾을 수 있습니다

때를 데이터베이스 다이어그램을 처음으로 확장하면이 메시지가 표시됩니다 "This 데이터베이스에는 데이터베이스 다이어그램을 사용하는 데 필요한 하나 이상의 지원 개체가 없습니다 당신은 그것을 만들고 싶습니까? "그리고 당신은 예를 클릭 할 것입니다 이제 마우스 오른쪽 버튼을 클릭하여 데이터베이스 다이어그램에서 새 데이터베이스 다이어그램을 선택하십시오 선택할 수 있습니다

이 테이블 추가 창에서 다이어그램에 포함 할 테이블을 선택하십시오 할거다 상위 하나를 클릭하고 Shift 키를 누른 채로 모든 테이블을 선택하십시오 아래쪽을 클릭 한 다음 추가를 클릭하십시오 여기이 전체 데이터베이스에 대한 다이어그램이 있습니다 키가 어떤 필드인지 알 수 있습니다

필드 옆에 작은 키가 있기 때문입니다 그리고 나는 할 수있다 테이블이 서로 어떤 관계를 가지고 있는지 확인하십시오 예를 들어 위치 테이블이 스태프 테이블과 관련되어 있는지 확인하십시오 이는 일대 다 관계, 무한대 기호는 관계의 많은면을 나타냅니다

이게 뭐야? 어떤 필드가 관련되어 있는지 정확히 표시되지 않습니다 나는 position_id를 안다 위치 테이블의 기본 키입니다 키 옆에 키가 있기 때문입니다 하지만 나는이 표를 주변으로 움직인다

너는 볼 수있다이 선은 그 관계가 당신이 기대할 수있는 것처럼 "고정"되어 있지 않음을 나타냅니다 그냥에서 이 관계를 보면 position_id 키 필드가 해당 위치에 있다고 가정합니다 테이블이 스태프 테이블의 staff_position_code와 관련되어 있지만 그 사실을 알 수는 없습니다 확실히 이것을 보아서

확실히 알고 싶으면이 줄을 마우스 오른쪽 버튼으로 클릭하면됩니다 관계를 나타내는 속성을 클릭하면이 관계에 대한 속성이 표시됩니다 속성 창에 표시됩니다 그런 다음 테이블 및 열 사양을 클릭하면 행을 클릭하고 작은 점 점 단추를 클릭하면이 창에 이름이 표시됩니다 맨 위에있는 관계를 볼 수 있습니다

예, staff_position_code 직원 table은 위치 테이블의 position_id에 대한 외래 키입니다 실용적인 측면에서이 직원이 포지션 테이블에없는 포지션을 가질 수 없음을 의미합니다 만약 너라면 정의되지 않은 위치를 사용하여 스태프 테이블에 레코드를 삽입하려고했습니다 위치 테이블에서 오류가 발생합니다 원하는 경우 데이터베이스 다이어그램을 유용하게 사용할 수 있습니다

시각적으로 배치 된 데이터베이스의 테이블을 볼 수 있습니다 좀 더보고 싶을 수도 있습니다 특히 데이터베이스에 익숙하지 않은 경우 쿼리 작성 전의 데이터베이스 다이어그램 어떤 종류의 데이터로 작업하고 어떻게 구조화되어 있는지 알아야합니다 그곳에 Management Studio로 할 수있는 많은 것들이 있습니다 여기 모두 다 커버하지 않았어

온라인 도움말을 검색하고 싶다면 도움말 메뉴의 몇 가지 옵션 : 도움말보기 옵션을 통해 Microsoft의 SQL Server 도움말 웹 사이트를 통해 도움이 필요한 항목을 검색 할 수 있습니다 예를 들어 Object Explorer에서 타이핑 할 것이고 몇가지 결과가 나옵니다

How to use the AND Condition with the OR Condition in SQL

AND 조건과 OR 조건을 단일 SQL 쿼리에서 함께 사용할 수 있습니다 이러한 조건은 SELECT, INSERT, UPDATE 또는 DELETE 문에서 사용할 수 있습니다

AND 조건과 OR 조건을 결합 할 때 괄호를 사용하는 것이 중요합니다 그래서 데이터베이스는 각 조건을 평가할 순서를 알고 있습니다 수학 수업에서 작문 순서를 배웠던 때처럼 이 개념을 이해하는 가장 좋은 방법은 예제를 살펴 보는 것입니다 시작하자 여기에는 다음 데이터가 포함 된 공급 업체라는 테이블이 있습니다 SELECT * FROM 공급 업체를 입력하여 쿼리를 시작합니다

이것은 공급자 테이블에서 모든 열을 선택하고 결과 집합을 반환하도록 데이터베이스에 알립니다 다음으로 WHERE 절을 시작하기 위해 WHERE 키워드를 입력합니다 이 예에서는 상태가 캘리포니아와 같은지 테스트합니다 supplier_id가 900과 동일하지 않습니다 AND 키워드를 사용하기 때문에이 두 조건은 TRUE 여야합니다

결과 집합에 포함될 레코드 이러한 조건을 괄호로 묶습니다 이것은 데이터베이스에 두 조건을 함께 평가하도록 지시합니다 WHERE 절에서 다른 조건을 적용하기 전에 다음으로 OR 키워드를 추가하고 테스트 할 두 번째 조건을 입력합니다 이제 supplier_id가 100인지 테스트합니다 이 조건은 데이터베이스에서 먼저 평가할 수 있도록 괄호로 묶습니다

다른 조건을 적용하기 전에 쿼리에 괄호를 포함하면 데이터베이스에서 쿼리에 두 가지 주요 조건이 있음을 나타냅니다 여기에 첫 번째 조건이 있습니다 여기 두 번째 조건이 있습니다 조건 중 하나라도 TRUE이면 레코드가 결과 집합에 포함됩니다 이제 우리 쿼리를 실행하고 우리가 얻은 결과를 봅시다

우리 쿼리는 공급자 테이블에서 모든 열을 반환합니다 캘리포니아는 주이며 supplier_id는 900과 동일하지 않습니다 우리의 쿼리는 supplier_id가 100 인 모든 공급 업체를 반환합니다 보시다시피, 괄호는 조건이 평가되는 순서를 결정합니다 쿼리에서 복잡한 조건을 만들 수 있습니다

여기서는 SQL 쿼리에서 OR 조건과 AND 조건을 사용하는 방법에 대한 간단한 예제를 다룹니다 더 많은 예제를보고 싶다면 이 자습서에서 사용한 샘플 데이터를 다운로드하고 싶습니다 TechOnTheNetcom의 웹 사이트를 방문하십시오 웹 사이트의 SQL 편집기에서 예제를 시험해 볼 수도 있습니다 각 예제 옆의 "Try It"버튼을 찾으십시오 튜토리얼이 도움이되었다고 판단되면이 동영상을 좋아하게 남겨주세요

보다 훌륭한 SQL 튜토리얼을 보려면 YouTube 채널을 구독하는 것을 잊지 마십시오

How to use the SQL INSERT Statement

INSERT 문 (또는 일반적으로 "INSERT 쿼리"라고 함) 데이터베이스에 레코드를 추가하는 데 사용되는 SQL 문입니다 INSERT 문의 구문은 두 가지가 있습니다

하나의 레코드 또는 여러 레코드를 테이블에 삽입하려는 경우 이 튜토리얼에서이 두 구문을 모두 다룰 것입니다 INSERT 문을 이해하는 가장 좋은 방법은 예제를 보는 것입니다 시작하자 INSERT 문에 대한 첫 번째 구문을 사용하면 한 번에 하나의 레코드를 데이터베이스에 삽입 할 수 있습니다 여기에는 다음 데이터가 포함 된 카테고리라는 표가 있습니다 카테고리 테이블에 새 레코드를 삽입하는 INSERT 문을 작성해 보겠습니다

먼저 INSERT INTO 카테고리를 입력하여 시작하겠습니다 이렇게하면 데이터베이스에서 INSERT 쿼리를 작성하고 범주 테이블에 레코드를 추가한다는 것을 알 수 있습니다 다음으로, 우리는 카테고리 테이블에서 컬럼 이름을 나열해야합니다 이 열은 값을 삽입 할 열입니다 이 예에서는 category_id 및 category_name을 열로 입력합니다

이러한 열 이름은 쉼표로 구분되고 괄호로 묶입니다 이제 VALUES 키워드를 입력합니다 150을 입력하고 '기타'를 값으로 입력합니다 150은 category_id 열에 삽입 될 값입니다 'Miscellaneous'는 categories 테이블의 category_name 열에 삽입되는 값입니다

'Miscellaneous'는 문자열 값이므로 inquotes로 묶어야합니다 이제 INSERT 문을 실행하고 어떤 일이 발생하는지 살펴 보겠습니다 데이터베이스는 하나의 레코드가 삽입되었음을 알려주는 메시지를 반환합니다 카테고리 테이블을 보면 새 레코드가 추가 된 것을 볼 수 있습니다 이제 조금 더 복잡한 두 번째 구문을 시도해 보겠습니다 그러나 우리는 신속하게 다중 삽입을 수행 할 수 있습니다 여기에는 직원이라는 테이블과 다음 데이터가 있습니다

고객이라는 두 번째 테이블도 있습니다 직원 정보 중 일부를 고객 테이블에 삽입 해 봅시다 INSERT INTO 고객을 입력하여 시작하겠습니다 데이터베이스에서 customers 테이블에 새 레코드를 추가한다는 것을 알 수 있습니다 고객 테이블의 열로 customer_id, last_name 및 first_name을 입력합니다

우리는 가치를 이전 예에서와 같이 VALUES 키워드를 입력하는 대신 INSERT 쿼리에 대한 레코드를 채우는 데 사용될 SELECT 문을 입력합니다 employee _number, last_name 및 first_name을 열로 입력합니다 employee_number를 customer_id로 별명 지정했습니다 하지만이 별칭은 필요하지 않습니다 이 유형의 INSERT 문을 작성할 때 SELECT에 동일한 수의 열이 있어야합니다 INSERT 문에있는대로 해당 데이터 유형도 일치해야합니다

다음으로 직원을 테이블로 입력합니다 WHERE 절을 포함시켜 직원의 테이블에있는 레코드 만 employee_number가 1003 미만인 경우 customers 테이블에 삽입됩니다 이제 INSERT 문을 실행 해 보겠습니다 이 예에서 데이터베이스는 두 개의 레코드가 삽입되었음을 알려주는 메시지를 반환합니다 고객 테이블을 보면 두 개의 새로운 레코드가 추가 된 것을 볼 수 있습니다 여기서는 SQL INSERT 문을 사용하여 단일 레코드 또는 여러 레코드를 삽입하는 방법에 대한 예제를 다룹니다 INSERT 예제를 더보고 싶다면 이 자습서에서 사용한 샘플 데이터를 다운로드하고 싶습니다

TechOnTheNetcom의 웹 사이트를 방문하십시오 웹 사이트의 SQL 편집기에서 예제를 시험해 볼 수도 있습니다 각 예제 옆의 "Try It"버튼을 찾으십시오 자습서가 도움이되었다고 판단되면이 동영상에 좋아요를 남겨주세요 보다 훌륭한 SQL 튜토리얼을 보려면 YouTube 채널을 구독하는 것을 잊지 마십시오

SQL Injection Web Attack (Live Demo for AppSec)

Fortify Unplugged에 오신 것을 환영합니다 내 이름은 브렌트 젠킨스이고 오늘은 SQL 인젝션에 대해 이야기 해보십시오

SQL 인젝션은 최고의 웹 애플리케이션 보안 위험 요소이며 OWASP 상위 10 위 자리에 있습니다 신뢰할 수없는 데이터 소스가있을 때마다 주입 취약점이 도입 될 수 있습니다 인터프리터에게 보낸 방법은 공격자가 코드를 주입하는 것입니다 쿼리 인터프리터를 트릭하여 악의적 인 실행으로 사용자 입력 어떻게 작동하는지 보여줄 명령들 Lucas v Stockhausen에게 넘겨 줄거야

누가 SQL 인젝션을 단순화 한 버전을 보여줄 것인가? 너처럼 보이게, 루카스 안녕하세요, 제 이름은 Lucas v Stockhausen이고 저는 Fortify의 제품 관리자 및 응용 프로그램 보안 전략가 오늘 나는하고 싶다 응용 프로그램을 해킹 할 수있는 방법과 응용 프로그램을 왜 사용해야하는지에 대한 개요를 제공합니다

우리가해야하는 애플리케이션 보안에 관해 이야기한다면 보안은 매우 중요합니다 우리가 코드에 대해서 이야기하지만 소스 코드를 이해한다면, 고전적인 응용 프로그램을 사용하면 소스 코드의 일부 구문을 찾을 수 있습니다 이처럼 사용자 이름은 인증 된 사용자 이름에서 읽습니다 사용자가 실제로 문제가 될 수있는 부분이지만 그게 농담이에요 그래서이 이름에 로그인 한 사용자를 봅니다

변수 사용자 이름에 저장되고이 경우 항목에 항목이 있습니다 URL 또는 웹 양식의 요청 의미에서 오는 이름 여기에 입력하면이 매개 변수를 사용하여 실행됩니다 소유자가있는 테이블 항목에서 select star라고 말하는 SQL 문 인증 된 사용자 및 항목 이름을 의미하는 사용자 이름과 같습니다 유럽이나 웹 양식에서 얻은이 매개 변수와 같습니다 그런 다음 데이터베이스에 대해이 쿼리를 실행하면 정상적인 항목이됩니다

예를 들어 여기에 내 사용자 이름과 같은 것을 입력하면 Lukas와 아이템이 될 수 있습니다 여기에있는 이름은 모든 것이 될 수 있고 내가 그것을 입력하면 개발자가 일반적으로 모든 것이 잘 작동하는지 테스트하지만, 우리가 루카스의 사용자 이름을 가지고 있고 우리는 X 또는 하나의 항목 이름은 하나가 같음을 알고 있으므로 하나는 항상 하나입니다 사실, 여기에서 이해해야 할 것은 SQL 끝은 더 강하게 묶이거나 끝을 의미한다는 것을 이해한다 조건이 먼저 평가되고 세미콜론이 모든 SQL 문을 끝내도록합니다 여기 뒤에있는 대시는 실제로 코멘트가 될 것입니다

그래서 우리가 그 물건을 입력하면 여기에서 우리는 지금 이것과 같은 것을 얻습니다 Lucas와 같고 항목 이름은 X 또는 1이 1과 같으면 SQL을 종료합니다 선언문을 작성하고 다른 모든 것을 주석에 넣고이 것을 잘 실행하면 그냥 우리가 여기서 더 분명히하기 위해 소유자가있는 항목에서 별을 선택하십시오 루카스와 같고 항목 이름은 X 또는 1과 같음은 실제로 우리가 볼 수있게 해줍니다 이 경우 테이블 항목에 대한 전체 결과가 표시되므로 내 자신의 컴퓨터에서 실제로 호스트하는 응용 프로그램입니다

여기서 VMware를 살펴보면이 애플리케이션을 호스팅하는 곳입니다 이 응용 프로그램에 대해 검사를 실행하는 방법을 실제로 어떻게 할 수 있습니까? if 우리는 Gary로서 우리가 실제로 우리가 애플리케이션을 통해 검색하려면 내가 뭘 주문했는지 보자 게리가 네가 여기있는 것을 네가 본다 다른 항목 흥미로운 부분은 여기에있는 M입니다 명백하게 PCI DSS를 위반하는 명백한 세금 신용 카드 번호가 있어야합니다

즉시 우리는 요즘 자주 계정 이름이나 사용자 이름을 가지고 있습니다 이메일 이메일을 물었고 그 중 하나는 경쟁자가 매우 재미있을 것입니다 잠재적으로 모든 사용자에게로 가서 그들이 어떤 것을 얻고 싶지 않은지 물어보십시오 경쟁력있는 상점 출신인데 여기에서 볼 수있는 것은 내가 들어갈 수 있다는 것입니다 예를 들어 수량을 10으로 설정하면 데이터를 조작 할 수 있습니다

응용 프로그램에서 가져 와서 원하는 데이터로만 필터링합니다 질문을 참조하십시오 만약 내가 여기에 뭔가를 입력 할거야 지금은 여기에 그냥 인용문이 오류 메시지가 실제로이 오류 메시지가 나타납니다 우리 모두는 이미 우리가 등을 클릭하기 만하면 완벽하게 훈련 된 것을 보았습니다 버튼을 다시 시도해보십시오 뭔가 잘못되었습니다 실제로이 페이지에서 우리는 흥미로운 정보를 바로 찾을 수 있습니다

예를 들어 나는 완전히 구식 인 M Tomcat에서 이것을 실행하고있다 보안 위험은 자체적으로 발생하므로 실제로 여기에서 수량 및 끝 부분에서 따옴표 그래서 이것은 아마도 방금 입력 한 견적과 UI로 우리는 여기서 볼 수있는 SQL 문과 매우 유사한 완전한 SQL 문을 봅니다 SQL 문을 방금 슬라이드에 가져 왔으므로 클릭하면 그 이상의 M을 탐색합시다 여기로 돌아와서 응용 프로그램이 여전히 올바르게 실행되고 있음을 분명히하십시오 그건 우리가 지금 입력하면 우리의 견적이나 1은 1과 같고 세미콜론과 – 우리가 그것을 실행하면 우리는 매우 쉽게 얻을 수 있습니다

완전한 테이블은 여기에 우리가 모든 사용자의 결과를 가지고 있다는 것을 의미합니다 우리가 결코 이것에 접근해서는 안되는 어떤 것을 되찾은 것은 정말로 SQL 인젝션의 간단한 가능성 더 정교한 시스템은 여전히 ​​SQL 인젝션을 거의 모든 더 큰 16 진수가 그 일부가되며 당신이 알고있는 것처럼 더 큰 16 진수가됩니다 끊임없이 일어나고 있기 때문에 이것은 방화벽이 정상적인 불의 세계는 결코 너를 보호하지 못한다 응용 프로그램 수준에서 발생합니다

정말 고마워, 루카스 이제 우리는 SQL 인젝션이 어떻게 작동하고 어떻게 생겼는지 살펴 보았습니다 어떻게 멈추게 할까? 우리는 당신의 고려를위한 몇 가지 총알을 요약했다 용도 준비된 문은 저장 프로 시저를 사용하여 화이트리스트 입력을 활용합니다 유효성 검사는 사용자가 제공 한 모든 입력 및 사용 프레임 워크를 이스케이프 처리합니다

내장 된 주입 보호 기능을 추가로 간략히 살펴 보겠습니다 Fortify가 개발자라면 어떻게 도와 드릴까요? Fortify가 주사를 감지합니다 결함이 있으며 품질 보증 또는 작업 Fortify는 런타임에 컨트롤을 완화하기 위해 코드의 유효성을 검사하고 Fortify는 Java 용 런타임 로깅 및 보호 기능을 제공합니다 andnet 주사 시도

Fortify 애플리케이션 보안 테스팅 가장 자동화 된 소프트웨어 개발 라이프 사이클 전체 통합 엔터프라이즈 규모의 온 프레미스 및 클라우드 솔루션 기업 구축 Fortify 경험 전문 지식과 리더십에 관한 소프트웨어 가트너는 6 년 연속으로 요새화를 응용 프로그램 보안 테스트의 리더 인 Magic Quadrant는 강력한 지원으로 인해 실행과 지속적인 혁신 덕분에 우리와 함께하고 싶으 시다면 우리의 채널에 관심을 갖고 구독하십시오 의견을 보내 주시고이 비디오에 대해 생각해 본 점을 알려주십시오

How to use the SQL IS NULL Condition

IS NULL 조건은 SQL에서 NULL 값을 테스트하는 데 사용됩니다 시작하기 전에 먼저 NULL 값이 무엇인지 설명해 보겠습니다

NULL은 SQL에서 특별한 값입니다 때로는 NULL이 빈 문자열과 혼동되기도하지만 NULL은 실제로 값이 없다는 것입니다 NULL은 문자 또는 문자열 열에서 발견되지 않습니다 숫자 또는 날짜와 같은 다른 데이터 유형 열에서도 찾을 수 있습니다 NULL을 허용하는 열에서만 NULL 값을 사용할 수 있습니다 CREATE TABLE 문에 정의 된대로 그래서 NULL 값을 테스트하는 것은 매우 까다로울 수 있습니다

단순히 = NULL 또는! = NULL이라고 말할 수는 없습니다 대신 IS NULL이라는 특별한 조건을 사용해야합니다 IS NULL 조건은 표현식을 테스트하고 NULL 값이 있으면 TRUE를 반환합니다 그렇지 않으면 FALSE를 반환합니다 SELECT, INSERT, UPDATE 또는 DELETE 문에서 사용할 수 있습니다

이제 NULL이 무엇인지 이해했습니다 IS NULL 조건을 사용하는 방법의 예를 살펴 보겠습니다 여기에 다음 데이터가 포함 된 고객이라는 테이블이 있습니다 favorite_website 열이 NULL 인 테이블에 레코드가 하나 있습니다 이 레코드를 반환하는 SELECT 문을 작성해 보겠습니다

SELECT * FROM 고객을 입력하여 시작하겠습니다 고객 테이블에서 모든 열을 반환하려는 것으로 데이터베이스에 알립니다 다음에 WHERE 절이 있습니다 이것은 IS NULL 조건을 입력하는 곳입니다 favorite_website가 NULL 인 레코드 만 반환하기 때문에 우리는 다음을 입력 할 것입니다 이제 SELECT 문을 실행하고 우리가 얻은 결과를 봅시다

보시다시피 SELECT 쿼리는 하나의 레코드 만 반환합니다 favorite_website 열에 NULL 값이있는 곳 여기서는 SQL IS NULL 조건을 사용하는 방법에 대한 간단한 예를 다룹니다 더 많은 예제를보고 싶다면 이 자습서에서 사용한 샘플 데이터를 다운로드하고 싶습니다 TechOnTheNetcom의 웹 사이트를 방문하십시오 웹 사이트의 SQL 편집기에서 예제를 시험해 볼 수도 있습니다 각 예제 옆에있는 "TRY IT"버튼을 찾으십시오

튜토리얼이 도움이되었다고 판단되면이 동영상을 좋아하게 남겨주세요 보다 훌륭한 SQL 튜토리얼을 보려면 YouTube 채널을 구독하는 것을 잊지 마십시오

[#13] Formular-Daten mit PHP verarbeiten (Teil 1)

안녕하세요! 오늘 저는 PHP를 사용하여 이전 비디오의 문의 양식을 원합니다 MySQL 데이터베이스에 연결하십시오

나는 "tbl_Kontaktformular"테이블을 사용한다 얼마 전에 만들었습니다 여기서 구조를 다시 볼 수 있습니다 우리는 다섯 가지 속성을 가지고 있습니다 : 메시지 ID, 이름, 전자 메일 주소, 실제 메시지 보낸 날짜 좋아, 시작하자

먼저 테이블에 액세스 할 수있는 사용자를 생성해야합니다 "tbl_Contact 양식" 물론 루트 사용자를 사용할 수 있습니다 그러나 이것에는 너무 많은 권리가있다 새 사용자를 만들려면 시작 페이지에서 "사용자"를 클릭합니다

여기에 사용자를 추가 할 수 있습니다 이름으로 나는 "문의 양식"을 용서합니다 사용자는 모든 호스트에서 액세스 할 수 있습니다 이것은 백분율 기호입니다 "Generieren"버튼을 사용하여 비밀번호를 생성 할 수 있습니다

완벽한 메모장 창에 암호를 임시로 복사하여 잊지 마라 데이터베이스를 만들거나 테이블에 대한 권한을 부여하고 싶지 않습니다 사용자 이름으로 시작합니다 또한 사용자는 모든 사람에게 적용되므로 글로벌 권한을 얻지 않아야합니다

데이터베이스와 테이블 나는 "Ok"로 확인한다 그런 다음 "데이터베이스"탭으로 전환합니다 여기서 데이터베이스 "youTube_projekte"를 선택합니다 "확인"을 눌러 확인하십시오

사용자가 INSERT 권한을 용서할 필요가 없으므로 할 수 있습니다 "확인"을 선택하면 권한이 저장됩니다 일반적으로 가능한 한 적은 권리를 항상 부여해야하지만 물론 필요한만큼 좋아, 첫 번째 단계가 완료되었습니다 폴더에서 "C : Xampp htdocs "소스 코드가 있습니다

연락 양식의 또한 "indexhtml"의 이름을 "indexphp"로 변경했습니다 따라서 나는 http : // localhost / 양식에 문의하십시오 이제 PHP가 인덱스 파일에서 올바르게 실행되었는지 테스트하고 싶습니다

이다 이를 위해 메모장 ++로 색인을 편집합니다 파일의 끝에서 PHP 부분을 엽니 다 즉시 다시 닫으십시오 사이에 echo 명령을 사용합니다

말하다 "PHP는 작동합니다!" 나는 그것을 구한다 F5를 새로 추가하여 페이지를로드 할 수 있습니다 아래에서 "PHP는 작동합니다!"를 볼 수 있습니다

그것은 모든 것이 잘되고 올바르게 설정되었음을 의미합니다 다음 단계에서 PHP를 사용하여 양식의 입력으로 평가해야합니다 이렇게하려면 <form> 태그를 두 날짜까지 확장해야합니다 먼저 "action"속성을 정의합니다 제출 버튼을 클릭 할 때 데이터가 전송 될 위치를 정의합니다

을 클릭합니다 이 파일의 데이터를 평가하기를 원합니다 그래서 다음과 같이 씁니다 행동 = "indexphp를" 다음으로, GET 또는 POST 메서드를 통해 데이터를 보내려는 경우 GET 메서드를 사용하면 데이터가 URL을 통해 전달됩니다

이 변형은 종종 페이지 탐색에 사용됩니다 URL의 길이는 약 3000 자로 제한됩니다 따라서 GET 메서드를 사용하여 데이터를 보낼 수는 없습니다 우리는 POST 메서드를 사용합니다 HTTP 요청의 본문에 대한 백그라운드의 양식 데이터 보냈습니다

또한 POST 메서드에는 크기 제한이 없습니다 나는 "method"라고 말하여 POST 메서드를 선택한다 = "POST" 이제 입력 필드와 텍스트 영역 이름을 나는 너에게 말할 수있다 여기에는 HTML 속성이 있으며 이것을 "이름"이라고합니다 나는이 사이에 이것을 쓰고있어

이제 여기서 자유롭게 선택 가능한 이름을 입력해야합니다 혼란스러워하지 마라 나는 이름을 부른다 또한 "이름" 자유 이름입니다

이것은 HTML 속성입니다 나는 또한 이메일에 이름을 붙인다 즉 "이메일" 및 메시지 나도 용서해 = "메시지를"이름을 지정합니다 입력 유형을 변경할 수 있습니다

에 "이메일" 따라서 입력 된 전자 메일 주소가 순수한 지 여부가 자동으로 확인됩니다 형식면에서 유효합니다 단추에 이름을 붙이겠습니다 좋습니다 그래서 가장 큰 준비가 이미 완료되었습니다

이제 PHP 부분을 살펴 보겠습니다 "보내기"버튼을 누르면 내 PHP 스크립트가 뭔가를해야합니다 이었다 if 쿼리로 쿼리 할 수 ​​있습니다 그리고 그것을 위해 나는 "isset"기능

이것으로 특정 값이 설정되어 있는지 확인할 수 있습니다 아닙니다 어떻게 보이나요? 나는 "if"로 시작한다 그리고 거기에 "isset" 기능 이 조건이 적용되는 경우 중괄호로 점프됩니다

지금부터 나는 어떤 가치를 누릴 수 있습니까? POST 메소드를 사용하기 때문에 우리는 슈퍼 전역 배열에 접근 할 수 있습니다 $ _ POST 슈퍼 글로벌 (Superglobal)이란 스크립트 내에 변수 또는 배열을 갖는 것을 의미합니다 모든 범위에서 볼 수 있습니다 배열에서 변수와 달리 여러 값을 가질 수 있습니다

동시에 구원을 얻으십시오 그게 바로 우리가 원하는 것입니다 우리는 그 이름을 원한다 이메일 주소를 입력하고 메시지를 저장하십시오 다른 말로하면, 우리의 모든 대상들 우리는 "name"속성을 가진 이름을주었습니다

그리고 그것들은 형태 안에있다 $ _POST 배열에 양식을 제출 한 후입니다 나중에 배열에 대해 자세히 설명하겠습니다 이제는 다음과 같이 작성할 수 있습니다 $ _ POST 아포스트로피 문자가있는 대괄호 버튼의 이름 이 경우 "보내기"

이걸 어떻게 읽을 수 있니? 언제 설정 됨 POST 변수는 "submit"입니다 이 단추를 나타냅니다 그럼 해 그 중괄호 안에 뭐가 들어 있니? 여기에 내가 쓴다 에코 "형식 "퇴장했다

F5 사용 새 페이지를 업로드하거나 여기에 올 수 있습니다 다시로드하십시오 나는 약간의 데이터를 입력한다 "제출"을 클릭하고 지금 내 echo 명령이 실행됩니다 "양식을 보냈습니다"

그런 다음 다음 단계에서 나는 가지고있는 변수를 준비 할 수있다 나중에 데이터베이스로 전송하려고합니다 나는 이것을 다시 삭제할 것이다 결국 4 개의 변수가 필요합니다 즉, 이름, 전자 메일, 메시지 및 발송일

그래서 저는 "name"이라고 부르는 변수를 만듭니다 여기서 POST 배열과 다시 얘기하고 있습니다 이번에는 이름을 사용합니다 입력 필드의 이를 "이름"이라고도합니다 같은 나는 이메일을 위해 및 메시지

POST 배열을 복사 할 수 있습니까? 여전히 이름을 대체해야합니다 전자 메일을 "전자 메일"이라고합니다 메시지에는 = "메시지를"이름을 지정합니다 날짜에 POST 항목이 없습니다 이 PHP는 미리 정의 된 함수 "date ()"를 가지고 있습니다

여기에 다음을 쓸 수 있습니다 "Ymd 일수" 및 "H : i : s" 이것은 정확히 datetime datetime에 대한 날짜 형식을 만듭니다 MySQL 데이터베이스에서 올바른 날짜 형식을 사용하는 것이 중요합니다

그렇지 않으면 데이터를 데이터베이스에 저장할 수 없습니다 이 기능이 실행될 때 변수 날짜는 대략 다음과 같습니다 2,015 -09 20 일째 과 오후 2:11 과 예를 들면 20 초 좋아, 이제 다 준비 됐어 echo 명령을 사용하여 single을 선택하여 다시 확인할 수 있습니다

변수 값을 출력합니다 점은 문자열 인 변수에 따라 다릅니다 줄 바꿈과 같은 PHP로 HTML 코드를 출력 할 수도 있습니다 결과를 살펴 보겠습니다 "TestName"과 "TestName@web

de"를 입력했습니다 줄 바꿈도 채택되었습니다 네, 완벽 해요! 모든 것이 작동합니다 다음 비디오에서는 데이터베이스에 대한 연결을 구축하고 INSERT 명령을 실행하십시오 다음에 봐요!

How to use the SQL SELECT Statement

SELELCT 문 (또는 일반적으로 "SELECT 쿼리"라고 함) SQL에서 가장 많이 사용되는 명령입니다 SELECT 문은 SQL 데이터베이스에서 레코드를 검색하는 데 사용됩니다

검색된 레코드를 결과 세트라고합니다 SELECT 문이 작동하는 방법을 설명하기 위해 예제를 살펴 보겠습니다 여기에 다음 데이터가 포함 된 고객이라는 테이블이 있습니다 SELECT 키워드를 입력하여 SELECT 문을 시작합니다 이렇게하면 데이터베이스가 SELECT 쿼리를 작성하고 결과 집합을 반환한다는 것을 알 수 있습니다

쉼표로 구분 된 값으로 열을 입력하거나 또는 * 문자를 사용하여 모든 열을 지정할 수 있습니다 이 예제에서는 모든 열을 결과 집합에 표시하려고합니다 그래서 우리는 SELECT * 다음으로 FROM 절을 입력해야합니다 FROM 절은 데이터베이스에서 검색 한 데이터를 원하는 테이블을 데이터베이스에 알립니다 이 예에서는 표를 고객으로 입력하겠습니다 이제 쿼리는 customers 테이블의 모든 열을 반환하는 것을 알고 있습니다

WHERE 절은 선택 사항입니다 레코드를 선택하고 결과 세트에 표시해야하는 조건을 지정하는 데 사용됩니다 조건이 제공되지 않으면 모든 레코드가 선택됩니다 즐겨 찾기 웹 사이트가 TechOnTheNetcom 인 레코드 만 반환하기 때문에 다음과 같이 WHERE 절을 입력합니다 TechOnTheNet

com 값은 문자열 값이므로 따옴표로 묶어야합니다 마지막으로 선택적 ORDER BY 절을 추가 할 수 있습니다 ORDER BY 절은 결과 집합에 반환 된 레코드를 정렬하도록 데이터베이스에 지시합니다 제공된 테이블 열을 기반으로 ORDER BY 절에 ASC 또는 DESC 수정 자 중 하나를 추가 할 수도 있습니다 ASC를 추가하면 결과가 오름차순으로 반환됩니다 DESC를 추가하면 내림차순으로 반환됩니다 이 예제에서는 결과 집합을 last_name 열로 정렬하고 ASC 수정자를 추가합니다 이제 SELECT 문을 실행하고 우리가 얻은 결과를 봅시다

우리 쿼리는 customers 테이블의 모든 열을 반환합니다 여기서 favorite_website는 TechOnTheNetcom과 같습니다 결과 집합은 last_name으로 오름차순으로 정렬됩니다 여기서는 SQL SELECT 문을 사용하는 방법에 대한 간단한 예제를 다룹니다 SELECT 예제를 더보고 싶다면 이 자습서에서 사용한 샘플 데이터를 다운로드하고 싶습니다

TechOnTheNetcom의 웹 사이트를 방문하십시오 웹 사이트의 SQL 편집기에서 예제를 시험해 볼 수도 있습니다 각 예제 옆의 "Try It"버튼을 찾으십시오 자습서가 도움이되었다고 판단되면이 동영상에 좋아요를 남겨주세요 보다 훌륭한 SQL 튜토리얼을 보려면 YouTube 채널을 구독하는 것을 잊지 마십시오

Should I Learn SQL or PHP First?

SQL이나 PHP를 먼저 배워야합니까? 몇 주 안에 PHP의 기본 사항을 직접 배울 수 있습니다 그것은 한 번에 정기적으로 가르칩니다

대학 학기 SQL은 어떻습니까? 데이터를 얼마나 잘 시각화 할 수 있는지에 따라 SQL을 배우려면 몇 주에서 몇 년이 걸릴 수 있습니다 관계를 알아내는 데 필요한 순서도 도구 중 하나를 배워야 할 것 같습니다 관계형 데이터베이스에서 PHP는 인터넷의 백본입니다

너 많이 배울 수있어 왜냐하면 그것을 사용할 많은 기회가 있습니다 기본 SQL은 쉽습니다 저장 프로 시저가 어렵다고 생각됩니다 SQL을 사용하여 데이터베이스를 관리하고 쿼리하는 방법을 배울 수 있습니다

어떻게 데이터베이스를 배운 후 테이블이 작동하면 PHP와 같은 웹 언어를 배울 수 있습니다 내가 처음으로 배워야하는 것은 무엇인가? PHP는 SQL보다 배우기가 어렵습니다 둘 다 배우려면 PHP를 먼저 배우십시오 당신 SQL을 사용하지 않고 PHP로 전체 프로젝트를 빌드 할 수 있습니다 그것은 저에게 많은 연습을 제공 할 것입니다

하지만 데이터베이스가 있다면 PHP로 많은 것을 할 수 있습니다 SQL과 MySQL은 PHP로 많은 것을 할 수 있지만, 둘 다 알 필요는 없습니다 phpMyAdmin과 SQL을 1 ~ 2 시간 안에 들으실 수 있다고 들었습니다 그것은 PHP와 SQL의 특성이 아닌 그들의 연결 일뿐입니다 그러나 기능을 학습 SQL과 PHP의 아웃은 phpMyAdmin을 믹스에 추가하지 않고 오랜 시간이 걸릴 것입니다

그래서 PHP부터 시작하겠습니다 나는 그걸로 무언가를 할 수있는 더 많은 기회를 갖게 될 것이다 그리고 학습하기 전에 다른 사람의 관계형 데이터베이스를 엉망으로 만들지 않아도됩니다 그것을 복원합니다 그리고 PHP를 배우면 SQL을 사용하는 방법을 배우는 동안 사이트 유지 보수를받을 수 있습니다

또는 대신 MySQL을 배우기로 결정하십시오 또는 NoSQL 기회가 아닙니다 실용적 일 정도로 성숙하지는 않습니다