SQL 데이터 작업의 기초(중급) 6
10장 "SQL 기초"에서는 SQL에 대한 예비 소개를 제공합니다. SELECT 문을 사용하여 쿼리하는 방법과 자신만의 테이블을 만드는 방법도 배웠습니다. 이 장에서는 SQL에 대한 지식을 심화시키게 됩니다. 쿼리 속도를 높이기 위해 인덱스를 만드는 방법을 알아봅니다. 또한 더 많은 SQL 문과 함수를 사용하여 테이블의 데이터를 조작하는 방법도 배웁니다.
색인 만들기
이 책에서 특정 문장을 찾고 싶다고 가정해 보세요. 페이지별로 검색할 수 있지만 시간이 많이 걸립니다. 그리고 이 책의 색인을 활용하면 원하는 주제를 빠르게 찾을 수 있습니다.
표의 색인은 책 뒷면에 붙어 있는 색인과 매우 유사합니다. 쿼리 속도를 크게 향상시킬 수 있습니다. 더 큰 테이블의 경우 인덱스를 추가하면 일반적으로 완료하는 데 몇 시간이 걸리는 쿼리를 단 몇 분 만에 완료할 수 있습니다. 따라서 빈번한 쿼리가 필요한 테이블에는 인덱스를 추가할 이유가 없습니다.
참고:
메모리 용량이나 하드 디스크 공간이 부족한 경우 테이블에 인덱스를 추가하고 싶지 않을 수 있습니다. 인덱스가 포함된 데이터베이스의 경우 SQL
서버에는 상당한 양의 추가 공간이 필요합니다. 예를 들어 클러스터형 인덱스를 생성하려면 약 1.2배의 데이터 크기가 필요합니다. 데이터베이스에서 테이블 인덱스가 차지하는 공간을 확인하려면 시스템 저장 프로시저 sp_spaceused를 사용하여 개체 이름을 인덱스되는 테이블의 이름으로 지정하면 됩니다.
클러스터형 인덱스와 비클러스터형 인덱스
이 책의 인덱스를 통해 문장의 페이지 번호를 찾았다고 가정해 보겠습니다. 페이지 번호를 알고 나면 올바른 페이지 번호를 찾을 때까지 책을 탐색할 가능성이 높습니다. 무작위로 검색하면 결국 올바른 페이지 번호에 도달할 수 있습니다. 그러나 페이지 번호를 찾는 더 효율적인 방법이 있습니다.
먼저, 찾고 있는 페이지가 절반 정도 페이지 수보다 작다면, 책을 1/4로 돌려보세요. 세 번째 장소. 이렇게 하면 올바른 페이지 번호에 가까워질 때까지 책을 더 작은 부분으로 계속 나눌 수 있습니다. 이는 페이지를 찾는 매우 효과적인 방법입니다.
SQL
Sever의 테이블 인덱스도 비슷한 방식으로 작동합니다. 테이블 인덱스는 트리 구조를 형성하는 페이지 집합으로 구성됩니다. 루트 페이지는 다른 두 페이지를 가리켜 테이블의 레코드를 논리적으로 두 부분으로 나눕니다. 루트 페이지가 가리키는 두 페이지는 레코드를 더 작은 부분으로 나눕니다. 각 페이지는 리프 수준 페이지에 도달할 때까지 레코드를 더 작은 파티션으로 나눕니다.
인덱스에는 클러스터형 인덱스와 비클러스터형 인덱스의 두 가지 유형이 있습니다. 클러스터형 인덱스에서 인덱스 트리의 리프 수준 페이지에는 실제 데이터가 포함됩니다. 레코드의 인덱스 순서는 물리적 순서와 동일합니다. 비클러스터형 인덱스에서 리프 수준 페이지는 테이블의 레코드를 가리킵니다. 즉, 레코드의 물리적 순서가 반드시 논리적 순서와 관련이 있는 것은 아닙니다.
클러스터형 인덱스는 목차와 매우 유사하며, 목차의 순서는 실제 페이지 번호 순서와 일치합니다. 비클러스터형 인덱스는 책의 표준 인덱스 테이블과 비슷합니다. 인덱스 테이블의 순서는 일반적으로 실제 페이지 번호 순서와 일치하지 않습니다. 책에는 여러 개의 색인이 있을 수 있습니다. 예를 들어 주제 색인과 저자 색인이 모두 있을 수 있습니다. 마찬가지로 테이블에는 여러 개의 비클러스터형 인덱스가 있을 수 있습니다.
일반적으로 클러스터형 인덱스를 사용하지만 두 가지 인덱스 유형의 장단점을 이해하고 있어야 합니다.
테이블의 레코드는 하나의 물리적 순서로만 저장될 수 있으므로 각 테이블에는 하나의 클러스터형 인덱스만 있을 수 있습니다. 일반적으로 식별 필드를 기반으로 테이블에 클러스터형 인덱스를 생성하려고 합니다. 그러나 문자, 숫자, 날짜/시간 필드 등 다른 유형의 필드에 클러스터형 인덱스를 생성할 수도 있습니다.
클러스터형 인덱스가 있는 테이블에서 데이터를 검색하는 것은 비클러스터형 인덱스가 있는 테이블보다 빠릅니다. 특정 범위 내의 데이터를 검색해야 하는 경우에는 비클러스터형 인덱스보다 클러스터형 인덱스를 사용하는 것이 좋습니다. 예를 들어, 테이블을 사용하여 사이트 방문자 활동을 기록한다고 가정해 보겠습니다. 일정 시간 내에 로그인 정보를 조회하고 싶다면 이 테이블의 DATETIME 유형 필드에 클러스터형 인덱스를 생성해야 합니다.
클러스터형 인덱스의 주요 제한 사항은 테이블당 하나의 클러스터형 인덱스만 생성할 수 있다는 것입니다. 그러나 테이블에는 둘 이상의 비클러스터형 인덱스가 있을 수 있습니다. 실제로 테이블당 최대 249개의 비클러스터형 인덱스를 생성할 수 있습니다. 테이블에 클러스터형 인덱스와 비클러스터형 인덱스를 동시에 생성할 수도 있습니다.
날짜뿐만 아니라 사용자 이름을 기준으로 사이트 활동 로그의 데이터를 가져오고 싶다고 가정해 보겠습니다. 이 경우 클러스터형 인덱스와 비클러스터형 인덱스를 동시에 생성하는 것이 효과적입니다. 날짜/시간 필드에 클러스터형 인덱스를 생성하고 사용자 이름 필드에 비클러스터형 인덱스를 생성할 수 있습니다. 더 많은 인덱싱 방법이 필요하다고 판단되면 비클러스터형 인덱스를 더 추가할 수 있습니다.
비클러스터형 인덱스에는 많은 양의 하드 디스크 공간과 메모리가 필요합니다. 또한 비클러스터형 인덱스를 사용하면
또한 테이블에 데이터를 삽입하고 업데이트하는 속도도 줄어듭니다. 비클러스터형 인덱스가 있는 테이블의 데이터를 변경할 때마다 인덱스도 업데이트해야 합니다. 따라서 테이블에 비클러스터형 인덱스를 생성할 때는 신중하게 고려해야 합니다. 테이블에서 데이터를 자주 업데이트해야 할 것으로 예상되는 경우 테이블에 비클러스터형 인덱스를 너무 많이 만들지 마세요. 또한 하드 디스크와 메모리 공간이 제한되어 있는 경우에는 사용되는 비클러스터형 인덱스 수도 제한해야 합니다.
인덱스 속성
두 가지 유형의 인덱스에는 두 가지 중요한 속성이 있습니다. 두 유형 중 하나를 사용하여 동시에 여러 필드를 인덱싱할 수 있습니다(복합 인덱스). 모든 유형의 인덱스는 고유하게 지정할 수 있습니다. 인덱스.
여러 필드에 대한 복합 인덱스를 생성하거나 복합 클러스터형 인덱스를 생성할 수도 있습니다. 웹 사이트 방문자의 이름과 성을 기록하는 테이블이 있다고 가정합니다. 전체 이름을 기반으로 테이블에서 데이터를 가져오려면 성 필드와 이름 필드 모두에 인덱스를 생성해야 합니다. 이는 두 필드에 별도의 인덱스를 생성하는 것과 다릅니다. 동시에 두 개 이상의 필드를 쿼리하려면 여러 필드에 대한 인덱스를 만들어야 합니다. 각 필드를 개별적으로 쿼리하려면 각 필드에 대해 독립적인 인덱스를 만들어야 합니다.
두 유형의 인덱스 모두 고유 인덱스로 지정할 수 있습니다. 필드가 고유하게 색인화되면 해당 필드에 중복된 값을 입력할 수 없습니다. 식별 필드는 자동으로 고유 값 필드가 되지만 다른 유형의 필드에 고유 인덱스를 생성할 수도 있습니다. 사이트의 사용자 비밀번호를 저장하기 위해 테이블을 사용한다고 가정해 보겠습니다. 두 명의 사용자가 동일한 비밀번호를 갖는 것을 원하지 않을 것입니다. 필드를 고유한 값 필드로 지정하면 이러한 일이 발생하지 않도록 방지할 수 있습니다.
위는 SQL 데이터 연산 기초(중급) 내용입니다. 6. 더 많은 관련 글은 PHP 중국어 홈페이지(www.php.cn)를 참고해주세요. !

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











HQL과 SQL은 Hibernate 프레임워크에서 비교됩니다. HQL(1. 객체 지향 구문, 2. 데이터베이스 독립적 쿼리, 3. 유형 안전성), SQL은 데이터베이스를 직접 운영합니다(1. 데이터베이스 독립적 표준, 2. 복잡한 실행 파일) 쿼리 및 데이터 조작).

"OracleSQL의 나눗셈 연산 사용법" OracleSQL에서 나눗셈 연산은 일반적인 수학 연산 중 하나입니다. 데이터 쿼리 및 처리 중에 나누기 작업은 필드 간의 비율을 계산하거나 특정 값 간의 논리적 관계를 도출하는 데 도움이 될 수 있습니다. 이 문서에서는 OracleSQL의 나누기 작업 사용법을 소개하고 구체적인 코드 예제를 제공합니다. 1. OracleSQL의 두 가지 분할 연산 방식 OracleSQL에서는 두 가지 방식으로 분할 연산을 수행할 수 있습니다.

Oracle과 DB2는 일반적으로 사용되는 관계형 데이터베이스 관리 시스템으로, 각각 고유한 SQL 구문과 특성을 가지고 있습니다. 이 기사에서는 Oracle과 DB2의 SQL 구문을 비교 및 차이점을 설명하고 구체적인 코드 예제를 제공합니다. 데이터베이스 연결 Oracle에서는 다음 문을 사용하여 데이터베이스에 연결합니다. CONNECTusername/password@database DB2에서 데이터베이스에 연결하는 문은 다음과 같습니다. CONNECTTOdataba

MyBatis 동적 SQL 태그 해석: Set 태그 사용법에 대한 자세한 설명 MyBatis는 풍부한 동적 SQL 태그를 제공하고 데이터베이스 작업 명령문을 유연하게 구성할 수 있는 탁월한 지속성 계층 프레임워크입니다. 그 중 Set 태그는 업데이트 작업에서 매우 일반적으로 사용되는 UPDATE 문에서 SET 절을 생성하는 데 사용됩니다. 이 기사에서는 MyBatis에서 Set 태그의 사용법을 자세히 설명하고 특정 코드 예제를 통해 해당 기능을 보여줍니다. Set 태그란 무엇입니까? Set 태그는 MyBati에서 사용됩니다.

SQL에서 ID란 무엇입니까? SQL에서 ID는 자동 증가 숫자를 생성하는 데 사용되는 특수 데이터 유형으로, 테이블의 각 데이터 행을 고유하게 식별하는 데 사용됩니다. ID 열은 일반적으로 기본 키 열과 함께 사용되어 각 레코드에 고유한 식별자가 있는지 확인합니다. 이 문서에서는 Identity를 사용하는 방법과 몇 가지 실제 코드 예제를 자세히 설명합니다. Identity를 사용하는 기본 방법은 테이블을 생성할 때 Identit을 사용하는 것입니다.

해결 방법: 1. 로그인한 사용자에게 데이터베이스에 액세스하거나 운영할 수 있는 충분한 권한이 있는지 확인하고 해당 사용자에게 올바른 권한이 있는지 확인하십시오. 2. SQL Server 서비스 계정에 지정된 파일에 액세스할 수 있는 권한이 있는지 확인하십시오. 3. 지정된 데이터베이스 파일이 다른 프로세스에 의해 열렸거나 잠겼는지 확인하고 파일을 닫거나 해제한 후 쿼리를 다시 실행하십시오. .관리자로 Management Studio를 실행해 보세요.

PHP를 사용하여 일괄 처리 및 데이터 일괄 작업을 구현하는 방법 웹 애플리케이션을 개발하는 과정에서 여러 데이터 조각을 동시에 처리해야 하는 상황에 자주 직면합니다. 효율성을 높이고 데이터베이스 요청 수를 줄이기 위해 PHP를 사용하여 일괄 처리 및 데이터 일괄 작업을 구현할 수 있습니다. 이 기사에서는 PHP를 사용하여 이러한 기능을 구현하는 방법을 소개하고 참조용 코드 예제를 첨부합니다. 데이터 일괄 처리 대용량 데이터에 대해 동일한 작업을 수행해야 하는 경우 PHP의 루프 구조를 사용하여 일괄 처리할 수 있습니다.

MySQL에서 데이터 집계 및 통계를 위해 SQL 문을 사용하는 방법은 무엇입니까? 데이터 집계 및 통계는 데이터 분석 및 통계를 수행할 때 매우 중요한 단계입니다. 강력한 관계형 데이터베이스 관리 시스템인 MySQL은 데이터 집계 및 통계 작업을 쉽게 수행할 수 있는 풍부한 집계 및 통계 기능을 제공합니다. 이 기사에서는 SQL 문을 사용하여 MySQL에서 데이터 집계 및 통계를 수행하는 방법을 소개하고 구체적인 코드 예제를 제공합니다. 1. COUNT 함수를 사용합니다. COUNT 함수는 가장 일반적으로 사용됩니다.
