본문 바로가기

SQL10

[SQL] INNER JOIN, OUTER JOIN, NATURAL JOIN Join이란? Join 연산은 서로 다른 2개의 테이블을 결합하는 연산이다. 이 때 결합하는 방식에 따라 Inner Join, Outer Join, Natural Join 등으로 나뉜다. Inner Join SELECT * FROM instructor JOIN teaches SELECT * FROM instructor, teaches SQL에서 기본적으로 JOIN 키워드를 사용하거나 콤마(,)를 통해 연결하면 Inner Join 연산을 수행한다. 이 때, 조건이 설정되지 않은 Inner Join은 Cross Join과 같은 연산을 수행한다. Cross Join은 곱연산으로, 테이블의 각 행끼리의 모든 조합을 나타내준다. 따라서 위와 같이 2행짜리 테이블 2개를 Join을 하면 2×2=4행의 테이블이 만들.. 2020. 6. 16.
[SQL] SOME, ALL, EXISTS, NOT EXISTS, UNIQUE, WITH [SQL] Subquery 사용법 Subquery란? Subquery는 하나의 쿼리 안에 들어가 있는 다른 쿼리를 말한다. 이 때, SELECT 절에서 사용되는 Subquery는 Scalar Subquery, FROM 절에서 사용되는 Subquery는 Inline View, 그리고 WHERE 절에서 사.. ju-hy.tistory.com Subquery를 사용하면 쿼리 안에서 다른 쿼리를 사용하여 불러온 데이터를 활용할 수 있다. 조건문에서의 단순한 비교 연산이나 IN 키워드 외에 더 다양한 Subquery 활용법을 알아보자. SOME, ALL SOME 키워드를 사용하면 조회한 데이터에 하나라도 조건을 만족하는지, ALL 키워드를 사용하면 조회한 모든 데이터가 조건을 만족하는지 검사할 수 있다. SELE.. 2020. 6. 16.
[SQL] Subquery, Scalar Subquery, Inline View Subquery란? Subquery는 하나의 쿼리 안에 들어가 있는 다른 쿼리를 말한다. 이 때, SELECT 절에서 사용되는 Subquery는 Scalar Subquery, FROM 절에서 사용되는 Subquery는 Inline View, 그리고 WHERE 절에서 사용되는 Subquery를 일반적으로 Subquery라고 부른다. 이렇게 Subquery의 위치에 따라 사용 방법이 달라지는데 이를 자세히 알아보자. Scalar Subquery SELECT에서 subquery를 사용하면 새로운 쿼리를 통해 값을 불러와 새로운 속성으로 사용할 수 있다. SELECT id, name, dept_name, (SELECT AVG(salary) FROM instructor) AS avg_salary FROM inst.. 2020. 6. 16.
[SQL] AVG, MIN, MAX, SUM, COUNT, GROUP BY, HAVING Aggregate Functions 데이터를 조회할 때 집계 함수는 여러 개의 row를 집계하여 하나의 결과를 나타낼 때 사용한다. 기본적인 집계 함수로는 AVG(평균값), MIN(최솟값), MAX(최댓값), SUM(합), COUNT(갯수) 등이 있다. 그리고 여러 개의 그룹으로 나누어 집계할 때 사용되는 GROUP BY 키워드와, 집계 함수의 결과를 통해 조건을 설정할 때 사용하는 HAVING 키워드가 있다. AVG AVG 키워드는 한 속성에 해당하는 값들의 평균값을 계산할 때 사용한다. SELECT AVG(salary) FROM instructor WHERE dept_name='Comp.Sci.' 예를 들어, 위 SQL은 컴퓨터공학과 교수들의 연봉 평균을 구하는 SQL이다. MIN MIN 키워드는 한.. 2020. 6. 15.
[SQL] OR, AND, NOT, IN, IS NULL Logic Operation WHERE 키워드 뒤에 조건을 작성할 때 OR, AND NOT, IN 등의 논리 연산을 통해 다양한 조건을 설정할 수 있다. OR OR 키워드를 통해서는 둘 중 하나의 조건을 만족하면 true를 반환하는 조건을 만들 수 있다. SELECT course_id FROM section WHERE year=2019 OR sem='Fall' 위 SQL은 2019년에 열리거나 가을 학기에 열린 과목의 course_id를 가져오는 SQL이다. AND AND 키워드를 통해서는 두 가지 조건을 모두 만족하면 true를 반환하는 조건을 만들 수 있다. SELECT course_id FROM section WHERE year=2019 AND sem='Fall' 위 SQL은 2019년 가을 학기에.. 2020. 6. 15.
[SQL] UNION, INTERSECT, EXCEPT UNION, INTERSECT, EXCEPT SQL을 실행하면서 여러 개의 결과를 합쳐 보여주기 위해 set operation을 실행하게 된다. 대표적인 set operation으로 UNION, INTERSECT, EXCEPT가 사용된다. UNION은 | (or) 연산, INTERSECT는 & (and) 연산, EXCEPT는 - (minus) 연산을 나타낸다. UNION UNION 연산을 사용하면 SQL을 실행한 결과의 합집합을 구할 수 있다. (SELECT course_id FROM section WHERE sem='Fall' AND year=2019) UNION (SELECT course_id FROM section WHERE sem='Spring' AND year=2020) 예를 들어 위 SQL은 .. 2020. 6. 15.
[SQL] SELECT, AS, LIKE, ORDER BY SELECT SELECT id, name FROM instructor SELECT 속성 FROM 테이블명 형태로 명령을 보내면 원하는 테이블 속성의 모든 값을 불러올 수 있다. SELECT name FROM instructor WHERE id=1 또한 WHERE 문을 통해 원하는 조건에 해당하는 row의 속성 값만 가져올 수도 있다. SELECT * FROM instructor 그리고 속성 이름 대신 * 을 넣어주면 모든 속성을 가져올 수 있다. AS AS 키워드는 속성이나 테이블의 이름을 새로 지정하여 사용할 때 사용한다. SELECT id, name, salary/12 AS monthly_salary FROM instructor 위와 같이 지정할 속성 이름 뒤에 AS 구문과 함께 새 이름을 적어주면 .. 2020. 6. 12.
[SQL] INSERT, UPDATE, DELETE INSERT INSERT INTO instructor (id, name, dept_name, salary) VALUES (3, 'Mark', 'Math', 85000) INSERT INTO 테이블명 (속성1, 속성2, 속성3) VALUES (값1, 값2, 값2) 데이터를 삽입 할 때는 테이블명과 데이터를 삽입할 속성들, 그리고 데이터를 순서에 맞춰 넣어주면 된다. 따라서 위 sql은 id는 3, name은 Mark, dept_name은 Math, salary는 85000인 데이터를 넣는 sql이다. UPDATE UPDATE instructor SET salary = salary * 1.05 WHERE salary < 80000 UPDATE 테이블명 SET 수정할 내용 WHERE 조건 데이터를 수정할 때는.. 2020. 6. 9.
[SQL] CREATE, ALTER, RENAME, DROP TABLE CREATE TABLE 위와 같이 id, name, dept_name, salary 속성을 갖는 instructor 라는 테이블을 만들어보자. CREATE TABLE instructor( id char(5), name varchar(20) NOT NULL, dept_namevarchar(20), salarynumeric(8,2), PRIMARY KEY(id), FOREIGN KEY(dept_name) REFERENCES department) CREATE TABLE 키워드 뒤에 테이블 이름인 instructor를 써준 뒤 괄호를 열어 attribute 이름과 자료형을 넣어준다. char(5)는 5 byte 만큼 char 변수 공간을 할당하겠다는 뜻이고, varchar(20) NOT NULL 은 최대 20 .. 2020. 6. 2.