hyperskill - Set operations 원문가끔, 당신은 같은 구조를 가진 여러 개의 쿼리의 결과를 결합하고 싶을 겁니다.그리고, 그 결과를 반환하고 싶을 겁니다.이를 수행하기 위해서, set operations (set 연산자)를 사용해야 합니다.한 번 이 연산자가 SQL 에서 어떻게 구현되었는지 살펴봅시다.Set operations - 집합 연산자들Set 연산자들은 여러 SELECT 문법의 결과 집합에서 나온 줄들을 결합합니다.여러 개의 Set 연산자들이 있으며, 이를 수행하는 서로 다른 방식을 제공합니다.SQL 에서는, 이들은 UNION, UNION ALL, INTERSECT, EXCEPT or MINUS 입니다.이러한 set 연산자들은 SELECT 문법이 같은 수의 컬럼, 알맞는 모든 ..
db
hyperskill - Consistency constraints 원문테이블의 각 컬럼은 상세한 데이터 타입을 가지고 있으므로, INT 타입에 TEXT를 넣는 것은 불가능하며, DECIMAL (소수점 가진 수) 가 BOOLEAN 에 들어가는 것도 불가능합니다.데이터 타입 제약은 우리에게 많은 실수를 피해가게 도와줍니다.하지만, 이러한 제한들은 아주 자세 해 질 수 있습니다.예를 들어, 모든 개인 ID 넘버는 고유하거나, 고객들은 어른들이어야 한다. 와 같습니다.컬럼의 값에 있어 이러한 상세한 제한들은 constraints (제약) 이라고 부릅니다.Example - 예시가장 평범한 constraints (제약) 은 밑의 리스트와 같습니다. :NOT NULLUNIQUECHECKDEFAULTPRIMARY KE..
hyperskill - Subqueries 원문일반적으로, 데이터를 작업 할 때, 첫 번째 쿼리의 실행 결과를 두 번째 쿼리에 사용 할 필요가 있습니다.예를 들어, 한 컬럼의 값이 다른 컬럼의 최대 값과 동일한 튜플들을 선택하고자 합니다.우리는 이것을 간단한 서브쿼리로 수행 할 수 있습니다. :--> 최대 값을 선택하고, 메인 쿼리는 이 값과 동일한 튜플들을 선택합니다.감사하게도, SQL은 결합 쿼리들을 위한 강력한 도구를 가지고 있습니다. = subqueries.한 번 이를 살펴 봅시다!subquery : (또한 inner 혹은 nested query 로 불립니다.)SQL query : (main query 혹은 outer query 로 불립니다.)서브쿼리 는 또다른 SQL 쿼리 입니다.서브쿼리들은 S..
hyperskill - Aggregate functions 원문당신이 금융 자문 회사의 비즈니스 애널리스트라고 상상 해 봅시다.당신은 어제 주식 시장에 무슨 일이 있었는지에 대한 보고서를 준비하는 과정으로 당신의 하루를 시작합니다.성사된 거래에 대한 정보는 테이블에 저장되어 있는데,SQL과 호환 가능한 데이터베이스 내부의 몇 십만 줄에 저장되어 있습니다.간단히 컬럼들의 모든 데이터를 선택하는 것은 동작되지 않는데,엄청난 크기의 데이터를 넘어서, 추출을 위한 수행 계산은 비현실적이기 때문입니다.보통의 SQL 기능은 많이 도움이 되지 않는데, 이는 개별적인 각각의 줄에 적용되기 때문이며, 그 결과를 결합하여 제공 할 방도가 없기 때문입니다.이것을 대체할 수 있는 것은 aggregate functions 이며..
hyperskill - Inserting selected rows 원문데이터를 작업 할 때면, 한 테이블에서 다른 테이블로 복사해야 하는 과제를 마주 할 것 입니다.예를 들어, 만약 당신이 customers 테이블을 삭제하고, 그 모든 데이터를 새로운 테이블 users로 복사하고자 합니다.당연하게, 당신은 정석대로 간단한 INSERT INTO 쿼리를 사용해서 수행 할 수 있습니다.하지만, 이 결과는 오타 혹은 심지어 데이터 손실을 겪을 수 있습니다.이 과정을 안전하게 만들기 위해, 당신은 두 개의 간단한 문법을 결합 할 수 있습니다.INSERT INTO and SELECT이 두 문법을 어떻게 작업하는지 더 가까이 지켜봅시다.Inserting selected rows - 선택된 줄들 삽입하기우리의 초기 예..
hyperskill - Updating selected rows 원문테이블의 모든 줄들에 있는 데이터를 바꿀 수 있게 되는 것은 인상적입니다.하지만 현실세게에서는, 드물게 일어나는 일 입니다.몇 개의 줄만 업데이트하는 일이 훨씬 더 빈번합니다.필요로 하지 않는 줄을 필터링하는 것은 WHERE 절에서 완료 할 수 있습니다.WHERE clause - WHERE 절평소처럼, WHERE 절의 논리적 표현식은 몇 개의 간단한 표현식으로 결합 할 수 있습니다.필요한 요구사항은 밑과 같습니다. :표현식은 테이블의 각각의 줄에 대해 BOOLEAN 값을 생산해야 한다.표현식에서 TRUE를 생산하는 줄들만 업데이트됩니다.예를 들어, groups라는 테이블이 있다고 가정하겠습니다.이 테이블은 North-Western Cou..
Basic UPDATE statement - 기초적인 UPDATE 문법hyperskill - Basic UPDATE statement 원문글자 그대로, 우리는 그냥 데이터를 저장하지 않습니다.우리는 현실에 존재하는 것의 최신 상태를 가깝게 반영 할 필요가 있습니다.직장에서 승진하는 사람들이 있으므로, 그들의 직함을 바꿔줄 필요가 있습니다.예를 들어, 당신의 친구들에게 선물을 살 수 있으며, 당신의 은행 계좌의 돈의 총량은 그에 따라 조정됩니다.이 경우처럼, SQL은 이미 존재하는 줄들의 셀의 값을 바꾸는 데 도와주는 특별한 연산자를 가지고 있습니다.이 연산자는 UPDATE 입니다.General form - 일반적인 형태업데이트를 만들기 위해 어떤 정보가 중요할까요?데이터를 변경 할 테이블의 이름데이터가 ..
Types of JOINs - JOIN의 종류들 hyperskill - Type of JOINs 원문 당신이 데이터베이스를 만들 때, 이는 여러 테이블에 정보를 저장하기 편리했습니다. 물론, 중복을 피하며, 테이블의 유지하기 편리하게 만들며, 그들 사이의 연결을 올바른 방향으로 설립합니다. 실제 프로젝트의 작업은, 당신이 원하는 정보를 테이블에서 얻기 위해서 하나의 테이블 이상을 종종 사용할 겁니다. 이 곳이 JOIN이 필요한 곳 입니다. 이론에서는, SQL의 join은 SQL (Structed Query Language) 지침인데, 검색 조건에 기초해 두 테이블의 레코드를 결합하는 지침입니다. 검색 조건 계산이 참 이라면, 레코드들이 조인 됩니다. 계산 결과 줄들은 두 개의 조인 된 테이블들의 모든 컬..
Results ordering - 결과 정렬하기 hyperskill - Results ordering 원문 당신이 호텔 예약 서비스 데이터베이스에 책임이 있다고 가정 해 봅시다. 당신은 이미 고객이 정한 기준에 따라 호텔들에 대한 정보를 담고 있는 줄들의 집합을 선택하는 법에 대해 압니다. 여전히, 선택지에 많은 호텔이 있으므로, 호텔들을 가격, 별점, 다른 속성, 심지어는 고객이 요청한 표현식 에 의해 정렬 해야 합니다. SQL 에서 이것이 어떻게 완료 될 수 있는지 봅시다. ORDER BY - 선택 속성에 의해 정렬 데이터에 쿼리를 사용할 때, SQL은 쿼리의 계산 결과 나오는 레코드(줄) 들에 대한 기본적인 정렬을 제공하지 않습니다. 계산된 줄들의 순서를 지정하기 위해서, 쿼리에서 ORDER BY ..
FOREIGN KEY constraint - 외래 키 제약 조건 당신은 이미 기본 키를 어떻게 만드는 지 알고 있으며, 데이터베이스와 그 내부에 테이블을 만드는 법을 압니다. 당신이 정말로 강력한 데이터베이스를 만들고 싶다면, 어떻게 테이블들을 같이 연결 할 수 있는 지 알아야 합니다. 예제를 고려 해 봅시다 : 우리는 직원과 일하는 부서에 대한 정보를 저장하고 싶습니다. 모든 정보를 하나의 테이블로 만들 수 있습니다. 하지만, 새로운 부서가 열린다면 당장 누구도 고용할 수 없습니다. 우리는 그것에 대한 정보를 어떻게 저장할까요? 정답은 두 개의 다른 테이블을 생성한다면 더 쉬워집니다. : employees, departments 여기, 우리가 마주한 다른 문제 (도전) 이 있습니다. : 이 테이블들의 ..