개발 과정에서 여러 쿼리 결과를 직접 표시하는 경우가 많습니다. 그렇다면 어떻게 쿼리해야 할까요? 이번 글은 SQL의 UNION 키워드와 사용법에 대해 알아보겠습니다.
SQL의 UNION 키워드는 여러 쿼리 조건의 결과를 표시합니다.
UNION
UNION의 중국어 의미는 합집합, 즉 둘 이상의 SELECT 문의 결과를 병합하는 것입니다. 사용 팁은 다음과 같습니다.
- UNION 내부의 각 SELECT 문에는 동일한 수의 열이 있어야 합니다.
- 열의 데이터 유형은 유사해야 합니다.
- 각 SELECT 문의 열 순서는 동일해야 합니다.
같은 개수의 컬럼
아래와 같이 앞 장에서 소개한 데이터를 데모 데이터로 사용
테이블을 별도로 생성합니다s_user
和表s_user_1
CREATE TABLE `s_user` ( `userid` int(11) NOT NULL AUTO_INCREMENT, `user_name` varchar(255) DEFAULT NULL, `name` varchar(255) DEFAULT NULL, `pass_word` varchar(255) DEFAULT NULL, `salt` varchar(255) DEFAULT NULL, `state` varchar(255) DEFAULT NULL, `create_time` datetime DEFAULT NULL, PRIMARY KEY (`userid`) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
테스트 데이터는 다음과 같습니다.
INSERT INTO `test`.`s_user`(`userid`, `user_name`, `name`, `pass_word`, `salt`, `state`, `create_time`) VALUES (1, '小米', '小米', '123123', '123', '1', '2022-02-10 19:48:43'); INSERT INTO `test`.`s_user`(`userid`, `user_name`, `name`, `pass_word`, `salt`, `state`, `create_time`) VALUES (2, '小白', '小白', '123123', '123', '1', '2022-02-10 19:48:43'); INSERT INTO `test`.`s_user_1`(`userid`, `user_name`, `name`, `pass_word`, `salt`, `state`, `create_time`) VALUES (1, '小红', '小红', '123123', '123', '1', '2022-02-10 19:48:43'); INSERT INTO `test`.`s_user_1`(`userid`, `user_name`, `name`, `pass_word`, `salt`, `state`, `create_time`) VALUES (2, '小黄', '小黄', '123123', '123', '1', '2022-02-10 19:48:43');
모든 SELECT 문 UNION 내부에는 동일한 개수의 컬럼이 있어야 합니다. 모든 컬럼을 쿼리하려면 먼저 동일한 컬럼으로 SQL
SELECT * FROM `s_user` UNION SELECT * FROM `s_user_1`
을 쿼리해야 합니다. 실행 결과는 다음과 같습니다.
첫 번째 쿼리가 모든 열에 대한 것이고 두 번째 쿼리가 세 개의 필드에 대한 것이라면 쿼리 결과는 무엇입니까? 이제 다음 SQL을 실행해 보세요. 메시지: 서로 다른 개수의 열을 쿼리하는 데 사용되는 SELECT 문입니다.
올바른 사용법
SELECT * FROM `s_user` UNION SELECT userid,name,pass_word FROM `s_user_1`

위에서 여러 쿼리의 열 개수는 동일해야 하며, 그 다음에는 열 개수가 동일해야 함을 확인했습니다. queried 동일한 쿼리 필드의 데이터 타입이 다른 경우 정상적으로 처리가 가능한가요? 다음으로 s_user 쿼리의 pass_word를 create_time으로 바꿔 쿼리합니다. 문의 후 보실 수 있습니다. SQL 쿼리에서 열의 데이터 유형은 관련이 없습니다. 물론 실제 비즈니스에서는 서로 다른 유형으로 설정되지는 않습니다.
SELECT userid,name,pass_word FROM `s_user` UNION SELECT userid,name,pass_word FROM `s_user_1`
열 순서
UNION 키워드를 사용하여 쿼리할 때 열의 순서와 관련이 있나요? 위에서 본 것처럼 열의 순서와 관련이 있을 수도 있고, 관련이 없을 수도 있는데, 그럼 테스트해 보겠습니다. 실행 결과는 컬럼의 순서와 아무런 관련이 없음을 알 수 있습니다. 실제 비즈니스에서는 여러 쿼리가 결합되므로 프로젝트에서 정의하는 열의 순서가 일관되어야 합니다.
SELECT userid,name,create_time FROM `s_user` UNION SELECT pass_word,name,userid FROM `s_user_1`
UNION과 UNION ALL의 차이점
UNION과 UNION ALL의 차이점을 테스트하려면 s_user_1 데이터 테이블에 [Xiaobai]를 추가해야 하고, s_user 테이블에 [Xiaobai]가 모두 존재해야 합니다. 데이터베이스에 저장하면 두 사람의 결과는 완전히 달라집니다.
SELECT create_time,userid,name FROM `s_user` UNION SELECT pass_word,name,userid FROM `s_user_1`
먼저 실행:
INSERT INTO `test`.`s_user_1`(`userid`, `user_name`, `name`, `pass_word`, `salt`, `state`, `create_time`) VALUES (3, '小白', '小白', '123123', '123', '1', '2022-02-10 19:48:43');
실행 결과:
다시 실행
SELECT user_name,name,pass_word,salt FROM `s_user` UNION SELECT user_name,name,pass_word,salt FROM `s_user_1`
실행 결과:
UNION 연관 항목이 제거된 것을 볼 수 있으며, UNION ALL 쿼리가 표시됩니다. 모든 값, 중복 항목은 제거되지 않았습니다.
결론
mysql 비디오 튜토리얼
위 내용은 SQL 입문 학습: UNION 키워드 사용법에 대한 간략한 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

sqlmakesdatamanagementaCcessibletoallbyprovingasimpleyetpooltooltoolforqueryinganddatabases.1) itworkswithrelationalDatabases.2) sql'sstrengthliesinfiltering, andjoiningdata, andjoiningdata, andjoiningdata

SQL 인덱스는 영리한 설계를 통해 쿼리 성능을 크게 향상시킬 수 있습니다. 1. B- 트리, 해시 또는 전문 지수와 같은 적절한 인덱스 유형을 선택하십시오. 2. 복합 인덱스를 사용하여 멀티 필드 쿼리를 최적화하십시오. 3. 데이터 유지 보수 오버 헤드를 줄이려면 과도한 인덱스를 피하십시오. 4. 불필요한 인덱스 재건 및 제거를 포함하여 정기적으로 인덱스를 유지합니다.

SQL에서 제약 조건을 삭제하려면 다음 단계를 수행하십시오. 삭제할 제약 조건을 식별하십시오. Alter Table 문을 사용하십시오. Alter Table Tame 이름 드롭 제약 조건 제한 이름; 삭제를 확인하십시오.

SQL 트리거는 지정된 테이블에서 특정 이벤트가 실행될 때 특정 작업을 자동으로 수행하는 데이터베이스 개체입니다. SQL 트리거를 설정하려면 트리거 이름, 테이블 이름, 이벤트 유형 및 트리거 코드가 포함 된 Trigger 문을 사용할 수 있습니다. 트리거 코드는 AS 키워드를 사용하여 정의되며 SQL 또는 PL/SQL 문 또는 블록을 포함합니다. 트리거 조건을 지정하면 where 절을 사용하여 트리거의 실행 범위를 제한 할 수 있습니다. 트리거 작업은 삽입, 업데이트 또는 삭제 명령문을 사용하여 트리거 코드에서 수행 할 수 있습니다. 신규 및 기존 키워드를 사용하여 영향을받는 키워드를 트리거 코드에서 참조 할 수 있습니다.

인덱싱은 데이터 열을 정렬하여 데이터 검색을 가속화하는 데이터 구조입니다. SQL 쿼리에 인덱스를 추가하는 단계는 다음과 같습니다. 인덱싱 해야하는 열을 결정하십시오. 적절한 인덱스 유형 (b-tree, hash 또는 bitmap)을 선택하십시오. Create Index 명령을 사용하여 인덱스를 작성하십시오. 효율성을 유지하기 위해 지수를 정기적으로 재구성하거나 재구성합니다. 인덱스 추가의 이점에는 개선 된 쿼리 성능, I/O 작동 감소, 최적화 된 정렬 및 필터링 및 개선 된 동시성이 포함됩니다. 쿼리가 종종 특정 열을 사용하는 경우 정렬 또는 그룹화 해야하는 다량의 데이터를 반환하고, 큰 테이블 또는 큰 데이터베이스 테이블이 포함되므로 인덱스 추가를 고려해야합니다.

IFELSE 문은 조건부 평가 결과에 따라 다른 값을 반환하는 조건부 명세서입니다. 구문 구조는 다음과 같습니다. if (조건) 그런 다음 return_value_if_condition_is_true else return_value_if_condition_is_false end if;.

SQL 데이터베이스 오류를 보는 방법은 다음과 같습니다. 1. 오류 메시지보기 직접; 2. 표시 오류 및 경고 명령을 사용하십시오. 3. 오류 로그에 액세스; 4. 오류 코드를 사용하여 오류의 원인을 찾으십시오. 5. 데이터베이스 연결 및 쿼리 구문을 확인하십시오. 6. 디버깅 도구를 사용하십시오.

별도의 연산자는 SQL 쿼리에서 중복 행을 제외하고 고유 한 값 만 반환하는 데 사용됩니다. 고유 한 값 목록을 얻고, 고유 한 값의 수를 계산하고, 그룹과 함께 사용하는 것과 같은 시나리오에 적합합니다.


핫 AI 도구

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

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

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

Clothoff.io
AI 옷 제거제

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

인기 기사

뜨거운 도구

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

SecList
SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

DVWA
DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는

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

WebStorm Mac 버전
유용한 JavaScript 개발 도구
