본문 바로가기

CS/DataBase41

데이터베이스 첫걸음 정리 - 24장. 상관 서브쿼리 EXISTS EXISTS와 서브쿼리를 사용해 검색할 때 해당 데이터가 존재하는지 여부를 판별할 수 있습니다. EXISTS (SELECT 명령) 먼저, 다음과 같은 테이블이 존재한다고 가정해봅시다. 현재 other에 존재하는 id와 sample의 id가 같은 행에 대해서 a의 값을 exist로 변경하고 싶다고 가정해봅시다. 다음과 같이 UPDATE 구를 사용하여 other의 id 값을 확인 후 WHERE로 지정해서 변경할 수 있습니다. UPDATE sample SET a = "exist" WHERE id=3 UPDATE sample SET a = "exist" WHERE id=5 하지만 위와 같은 방법은 데이터가 적을때는 쉽게 처리할 수 있지만 데이터가 많아질수록 실수하기 쉬워지고 시간이 오래걸립니다. 이.. 2022. 9. 24.
데이터베이스 첫걸음 정리 - 23장. 서브쿼리 서브쿼리란? 서브쿼리는 SQL 명령문 안에 지정하는 하부 SELECT 명령으로 괄호로 묶어 지정합니다. (SELECT 명령) 문법에는 간단하게 SELECT 명령이라고 적었지만 SELECT 구, FROM 구, WHERE 구 등 SELECT 명령의 각 구를 기술할 수 있습니다. 서브쿼리는 SQL 명령의 WHERE 구에서 주로 사용되며 WHERE 구는 SELECT, DELETE, UPDATE 구에서 사용할 수 있는데 이들 중 어떤 명령에서든 서브쿼리를 사용할 수 있습니다. 물론 상황에 따라 다른 구에서도 사용할 수 있습니다. DELETE의 WHERE 구에서 서브쿼리 사용 먼저 DELETE 명령의 WHERE 구에서 서브쿼리를 사용하는 예를 살펴보겠습니다. select * from sample; sample 테이.. 2022. 9. 21.
데이터베이스 첫걸음 정리 - 22장. 그룹화 - GROUP BY GROUP BY 구를 사용하면 집계함수로 넘겨주었던 집합을 그룹으로 나눌 수 있습니다. 그룹화를 통해 집계함수의 활용 범위를 넓힐 수 있습니다. GROUP BY로 그룹화 GROUP BY를 사용하면 특정 열을 그룹화시킬 수 있습니다. SELECT 열명 FROM 테이블명 GROUP BY 열명; 현재 다음과 같은 테이블이 존재한다고 가정해봅시다. 해당 테이블의 name을 GROUP BY를 통해 그룹화 시켜보겠습니다. SELECT name FROM product GROUP BY name; DISTINCT를 지정했을 때 처럼 중복이 제거되어 검색된 것을 볼 수 있습니다. GROUP BY 구에 열을 지정하여 그룹화하면 지정된 열의 값이 같은 행이 하나의 그룹으로 묶입니다. DISTINCT와 GROUP BY의 차이 .. 2022. 9. 20.
데이터베이스 첫걸음 정리 - 21장. COUNT 이외의 집계함수 집계함수 SUM SUM 집계함수를 사용하면 집합의 합계를 구할 수 있습니다. 예를 들어, 1, 2, 3 이라는 세 개의 값을 가지는 집합이 있다고 할때 SUM 집계함수를 사용하면 1 + 2 + 3으로 계산하여 6이라는 값으로 반환합니다. 다음은 SUM의 사용예시입니다. SELECT SUM(quantity) FROM product; quantity의 전체 합인 21이 잘 출력되는 것을 볼 수 있습니다. SUM 집계함수에 지정되는 집합은 수치형 뿐으로, 문자열 형이나 날짜 시간형의 집합에서 합계를 구할수는 없습니다. 💡 SUM 함수의 경우에도 NULL 값을 무시하고 계산합니다. 집계함수 AVG 집계함수 AVG를 사용하면 평균값을 간단하게 구할 수 있습니다. 다음은 AVG 함수의 사용예시입니다. select .. 2022. 9. 17.
데이터베이스 첫걸음 정리 - 20장. 행 개수 구하기 - COUNT SQL은 데이터베이스라 불리는 데이터 집합을 다루는 언어입니다. 이 같은 집합의 개수나 합계가 궁금하다면 SQL이 제공하는 집계함수를 사용하여 간단하게 구할 수 있습니다. COUNT SQL은 집합을 다루는 집계함수를 제공합니다. 일반적인 함수는 인수로 하나의 값을 지정하는데 비해 집계함수는 인수로 집합을 지정합니다. 이 때문에 집합함수라고도 불립니다. 즉, 집계함수는 집합을 특정방법으로 계산하여 그 결과를 반환하는 함수입니다. 집계함수 중에 하나인 COUNT 함수는 인수로 주어진 집합의 개수를 구해 반환합니다. COUNT(집합) 이번에는 COUNT의 사용예시입니다. select COUNT(*) FROM sample; sample 테이블의 현재 데이터가 두개가 들어가 있기 때문에 결과값도 2가 출력되는 것.. 2022. 9. 14.
데이터베이스 첫걸음 정리 - 19장. 물리삭제와 논리삭제 두 종류의 삭제 방법 데이터베이스에서 데이터를 삭제하는 방법은 용도에 따라 크게 물리삭제와 논리삭제 두 가지로 나뉩니다. 하지만 SQL 명령중에 실제로 물리삭제와 논리삭제를 구분하여 삭제하는 방법은 존재하지 않습니다. 이는 시스템 설계에 대한 부분으로 삭제에 대해 두가지 전략을 사용할 수 있다고 생각하면 됩니다. 물리삭제 물리삭제는 SQL의 DELETE 명령을 사용해 직접 데이터를 삭제하는 방법입니다. 물리 삭제의 장점 간단한 방법으로, 논리 삭제에 비해 고려할 부분이 적습니다. 물리 삭제의 단점 한번 삭제시 데이터를 되돌리기 쉽지 않습니다. 논리 삭제 테이블의 삭제 플래그와 같은 열을 미리 준비둔 후 데이터를 삭제해야하는 상황때 DELETE를 사용하여 삭제하지 않고 UPDATE 명령을 통해 삭제 플래그.. 2022. 9. 11.
데이터베이스 첫걸음 정리 - 18장. 데이터 갱신하기 - UPDATE 데이터 갱신 작업은 시스템을 다루는 과정에서 자주 발생합니다. 우리가 웹 사이트에 들어가서 사용자 정보 수정을 하는 등 데이터 갱신은 자주 일어날 수 있습니다. 이런 경우에 UPDATE 명령을 통해 데이터를 갱신할 수 있습니다. UPDATE 문법 SQL에서 데이터를 갱신할 때 UPDATE 명령을 사용할 수 있습니다. UPDATE 명령은 다음과 같이 사용할 수 있습니다. UPDATE 테이블명 SET 열명 = 값 WHERE 조건식 UPDATE 명령을 실행하기 전에 기존 테이블에 어떤 데이터가 저장되어 있는지 SELECT 명령으로 확인하겠습니다. SELECT * FROM sample DELETE와 달리 UPDATE는 필드 단위로 데이터를 갱신할 수 있습니다. WHERE 구에 조건을 지정하면 그에 일치하는 행을.. 2022. 9. 10.
데이터베이스 첫걸음 정리 - 17장. 삭제하기 DELETE 데이터베이스는 하드디스크와 같은 저장장치에 데이터를 저장해 관리합니다. 하지만 저장장치에는 저장용량이 정해져있기 때문에 데이터를 무제한으로 저장할 수는 없습니다. 결국 데이터를 저장하다보면 저장공간이 모자라게 될 수 있고 데이터를 삭제하는 경우도 발생합니다. 이때 DELETE 명령을 사용하여 데이터를 삭제할 수 있습니다. DELETE로 행 삭제하기 테이블에서 행을 삭제하기 위해서는 DELETE 명령을 사용해야 합니다. DELETE 명령은 다음과 같이 작성합니다. DELETE FROM 테이블명 WHERE 조건식 여기서 WHERE로 조건식을 주지않고 DELETE FROM 테이블명만 적을 경우 테이블안에 데이터가 전부 삭제됩니다. 다음은 테이블 행 삭제 예시입니다. DELETE FROM sample WHERE.. 2022. 9. 9.