>데이터 베이스 >SQL >SQL 입문 학습: UNION 키워드 사용법에 대한 간략한 분석

SQL 입문 학습: UNION 키워드 사용법에 대한 간략한 분석

青灯夜游
青灯夜游앞으로
2022-02-21 10:55:225702검색

개발 과정에서 여러 쿼리 결과를 직접 표시하는 경우가 많습니다. 그렇다면 어떻게 쿼리해야 할까요? 이번 글은 SQL의 UNION 키워드와 사용법에 대해 알아보겠습니다.

SQL 입문 학습: UNION 키워드 사용법에 대한 간략한 분석

SQL의 UNION 키워드는 여러 쿼리 조건의 결과를 표시합니다.

UNION

   UNION의 중국어 의미는 합집합, 즉 둘 이상의 SELECT 문의 결과를 병합하는 것입니다. 사용 팁은 다음과 같습니다.

  • UNION 내부의 각 SELECT 문에는 동일한 수의 열이 있어야 합니다.
  • 열의 데이터 유형은 유사해야 합니다.
  • 각 SELECT 문의 열 순서는 동일해야 합니다.

같은 개수의 컬럼

아래와 같이 앞 장에서 소개한 데이터를 데모 데이터로 사용

SQL 입문 학습: UNION 키워드 사용법에 대한 간략한 분석

테이블을 별도로 생성합니다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 입문 학습: UNION 키워드 사용법에 대한 간략한 분석

첫 번째 쿼리가 모든 열에 대한 것이고 두 번째 쿼리가 세 개의 필드에 대한 것이라면 쿼리 결과는 무엇입니까? 이제 다음 SQL을 실행해 보세요. 메시지: 서로 다른 개수의 열을 쿼리하는 데 사용되는 SELECT 문입니다.

올바른 사용법

SELECT * FROM `s_user` UNION SELECT userid,name,pass_word FROM `s_user_1`
SQL 입문 학습: UNION 키워드 사용법에 대한 간략한 분석

data type

위에서 여러 쿼리의 열 개수는 동일해야 하며, 그 다음에는 열 개수가 동일해야 함을 확인했습니다. 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 키워드를 사용하여 쿼리할 때 열의 순서와 관련이 있나요? 위에서 본 것처럼 열의 순서와 관련이 있을 수도 있고, 관련이 없을 수도 있는데, 그럼 테스트해 보겠습니다. 실행 결과는 컬럼의 순서와 아무런 관련이 없음을 알 수 있습니다. 실제 비즈니스에서는 여러 쿼리가 결합되므로 프로젝트에서 정의하는 열의 순서가 일관되어야 합니다. SQL 입문 학습: 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]가 모두 존재해야 합니다. 데이터베이스에 저장하면 두 사람의 결과는 완전히 달라집니다. SQL 입문 학습: UNION 키워드 사용법에 대한 간략한 분석

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');

실행 결과: SQL 입문 학습: UNION 키워드 사용법에 대한 간략한 분석

다시 실행

SELECT user_name,name,pass_word,salt
FROM `s_user` UNION SELECT user_name,name,pass_word,salt FROM `s_user_1`

실행 결과: SQL 입문 학습: UNION 키워드 사용법에 대한 간략한 분석

UNION 연관 항목이 제거된 것을 볼 수 있으며, UNION ALL 쿼리가 표시됩니다. 모든 값, 중복 항목은 제거되지 않았습니다.

결론SQL 입문 학습: UNION 키워드 사용법에 대한 간략한 분석

  이상은 SQL에서의 UNION 키워드 사용법입니다. 읽어주셔서 감사합니다. 도움이 되셨다면 좋아요와 저장 부탁드립니다. 부족한 점 있으면 댓글 달아주시고 수정해주세요. 다음에 또 만나요.

추천 학습:

mysql 비디오 튜토리얼

위 내용은 SQL 입문 학습: UNION 키워드 사용법에 대한 간략한 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 juejin.cn에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제