SQL update select 결합 문장 상세 및 응용
가장 자주 사용하는 업데이트 문법은 다음과 같습니다.
UPDATE TABLE_NAME
SET column_name1 = VALUE WHRER column_name2 = VALUE
만약 나의 업데이트값 Value가 select 문장에서 꺼내지고 열이 많으면 이런 문법을 사용하는 것은 매우 번거롭다첫째, select를 임시 변수에 놓으려면 저장하기 어려운 것이 많습니다.둘째, 변수를 부여한다.
열이 많으면 매우 번거롭습니다. Insert처럼 전체 Select 문장의 결과를 삽입할 수 있습니까?마치 아래와 같다.
INSERT INTO table1
(c1, c2, c3)
(SELECT v1, v2, v3 FROM table2)
답은 가능합니다. 구체적인 문법은 다음과 같습니다.
UPDATE table1 alias
SET (column_name,column_name ) = (
SELECT (column_name, column_name)
FROM table2
WHERE column_name = alias.column_name)
WHERE column_name = VALUE
다음은 다음과 같은 예입니다. 두 개의 테이블 a, b, b의 memo 필드 값을 a표에 대응하는 id의name 값 테이블 a와 같게 하려면:
id name
1
2
3
표 b:
id ClientName
1
2
3
(MS SQL Server) 문:
UPDATE b SET ClientName = a.name FROM a,b WHERE a.id = b.id
(Oralce) 문:
UPDATE b SET (ClientName) = (SELECT name FROM a WHERE b.id = a.id)
업데이트 setfrom 문장 형식은where와set가 하나의 테이블과 연결되어 조회를 해야 할 때, 전체 업데이트가 실행될 때, 연결된 테이블을 두 번 스캔해야 하기 때문에 효율이 비교적 낮다.이런 상황에 대해 Sybase와 SQL Server의 해결 방법은 업데이트...SET...FROM...WHERE...의 문법을 사용하는 것이다. 사실상 원본 테이블에서 업데이트 데이터를 얻는 것이다.
SQL에서 테이블 연결(leftjoin,rightjoin,innerjoin 등)은 select 문장에 자주 사용된다.사실 SQL 문법에서 이러한 연결도 업데이트와 delete 문장에 사용할 수 있으며, 이 문장에서join을 사용하면 적은 노력으로 큰 효과를 얻을 수 있다.
UPDATE T_OrderForm SET T_OrderForm.SellerID =B.L_TUserID
FROM T_OrderForm A LEFT JOIN T_ProductInfo B ON B.L_ID=A.ProductID
두 테이블의 데이터를 동기화하는 데 사용합니다!Oralce 및 DB2에서 지원되는 구문:
UPDATE A SET (A1, A2, A3) = (SELECT B1, B2, B3 FROM B WHERE A.ID = B.ID)
MS SQL Server는 다음과 같은 구문을 지원하지 않습니다.
UPDATE A SET A1 = B1, A2 = B2, A3 = B3 FROM A LEFT JOIN B ON A.ID = B.ID
개인적으로 MS SQL Server의 Update 구문 기능은 더욱 강력합니다.MS SQL SERVER 쓰기 방법:
UPDATE A SET A1 = B1, A2 = B2, A3 = B3 FROM A, B WHERE A.ID = B.ID
Oracle 및 DB2에서는 다음과 같이 쓰기가 번거로워집니다.
UPDATE A SET (A1, A2, A3) = (SELECT B1, B2, B3 FROM B WHERE A.ID = B.ID)
WHERE ID IN (SELECT B.ID FROM B WHERE A.ID = B.ID)
SQL update select 결합 문장에 대한 상세한 설명과 응용에 관한 이 글을 소개합니다. 더 많은 SQL update select 결합 문장 내용은 저희 이전의 문장을 검색하거나 아래의 관련 문장을 계속 훑어보십시오. 앞으로 많은 응원 부탁드립니다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Redash를 사용할 때 몰랐던 SQL을 쓰는 법을 배웠습니다.최근 redash에서 sql을 쓸 기회가 많고, 이런 쓰는 방법이 있었는지와 sql에 대해 공부를 다시하고 있기 때문에 배운 것을 여기에 씁니다. Redash란? 월별로 데이터를 표시하고 싶습니다 주별로 데이터를 표...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.