나중에 책갈피에 추가할 궁극적인 SQL 치트 시트 [2022]

게시 됨: 2022-06-17

SQL 또는 Structured Query Language 는 삭제, 생성, 업데이트, 읽기 등과 같은 관계형 데이터베이스 작업을 관리하기 위한 명령 집합입니다.

SQL은 1987년부터 관계형 데이터베이스에서 사용되는 국제 표준입니다. SQL 명령에는 네 가지 유형이 있습니다.

  • 데이터 정의 언어(DDL) – 이 명령은 데이터베이스의 구조를 정의 합니다. 예를 들어 삭제, 이름 바꾸기, 변경 및 만들기가 있습니다. 데이터베이스 구조에 영향을 줍니다. 예를 들어, 데이터베이스를 생성하거나 테이블 이름을 변경합니다.
  • 데이터 조작 언어(DML) – 이 명령은 데이터 작업에 사용됩니다. 예를 들어, 삽입, 선택, 업데이트, 삭제합니다. 이들은 테이블이나 데이터베이스 구조에 영향을 미치지 않지만 테이블에 있는 데이터에 영향을 줍니다. 예를 들어, 새 행을 삽입하거나 행의 값을 업데이트합니다.
  • TCL(트랜잭션 제어 언어) – 이 명령은 데이터베이스의 트랜잭션 처리를 제어합니다. 예를 들어, 롤백, 저장, 커밋. 이러한 명령은 데이터베이스에 영구적인 영향을 미칩니다. 예를 들어, 한 프로세스가 실패하더라도 전체 트랜잭션을 이전 상태로 롤백합니다.
  • 데이터 제어 언어(DCL) – 데이터 제어 명령은 사용자에게 권한을 부여하고 사용자 또는 그룹에 필요한 권한만 부여하는 데 사용됩니다. 예를 들어, 한 사용자는 읽기 전용 권한을 가질 수 있지만 다른 사용자는 읽기 및 쓰기 권한을 가질 수 있습니다. 액세스 제어는 부여, 거부 및 취소 명령을 사용하여 수행됩니다.

다음은 가장 유용한 명령이 포함된 SQL 치트 시트입니다. 치트 시트는 올바른 구문과 쿼리의 예상 결과로 필요한 명령을 빠르게 참조하는 데 도움이 됩니다. 이 치트 시트에서는 다른 두 가지 유형이 사용하기 매우 간단하므로 DDL 및 DML 명령에 중점을 둡니다.

데이터 정의 및 조작 쿼리

명령 설명 예시
추가하다 기존 테이블에 열 또는 제약 조건(지정된 대로)을 추가합니다. ALTER TABLE employee ADD last_name varchar2(255); ALTER TABLE employee ADD CONSTRAINT emp_det PRIMARY KEY (id, last_name);

ALTER TABLE employee ADD last_name varchar2(255); ALTER TABLE employee ADD CONSTRAINT emp_det PRIMARY KEY (id, last_name);
테이블 변경 지정된 테이블을 변경하여 테이블의 열을 추가, 업데이트 또는 삭제합니다. ALTER TABLE employee ADD last_name varchar2(255);

ALTER TABLE employee DROP COLUMN last_name;
컬럼 변경 열의 데이터 유형을 변경합니다. 예를 들어, 직원 테이블의 join_date 열 유형을 varchar2에서 datetime으로 변경하려면. ALTER TABLE employee ALTER COLUMN joining_date datetime;
모두 SELECT, WHERE 및 HAVING과 함께 사용되는 논리 연산자로 모든 값이 하위 쿼리 조건을 만족하면 true를 반환합니다. SELECT employee_name, joining_date from employee WHERE employee_id = ALL (select employee_id from department_details WHERE department = 'R&D');
그리고 WHERE 절의 모든 조건이 충족되는 경우에만 true를 반환하는 논리 연산자입니다. SELECT employee_name, salary from employee WHERE city = 'California' AND salary > 2000;
어느 논리 연산자 하위 쿼리 값 중 하나라도 where 절의 조건을 만족하면 true를 반환합니다. SELECT employee_id, employee_name from employee WHERE employee_id = ANY (select employee_id from department_details WHERE department = 'HR' OR department = 'R&D');
처럼 쿼리 실행 시까지 테이블 또는 열에 대한 별칭을 생성합니다. 특히 테이블 조인 중에 이름이 여러 번 사용될 때 유용합니다. SELECT count(employee_id) AS employees_from_houston from employee WHERE city = 'Houston';
ASC ORDER BY 절과 함께 사용되는 오름차순 종료 순서로 데이터를 반환합니다. ORDER BY 자체는 기본적으로 결과를 오름차순으로 정렬합니다. SELECT employee_name, joining_date, salary from employee ORDER BY employee_name ASC;
사이 범위 내에서 값을 선택하려면 SELECT employee_name, joining_date, department_id from employee WHERE salary BETWEEN 40000 AND 100000;
사례 일련의 명령문으로 구성됩니다. true인 문의 값을 반환하고 조건이 충족되지 않으면 ELSE 부분의 조건이 실행됩니다. 다른 것이 없으면 NULL을 반환합니다. SELECT order_amount, customer_id, contact_email CASE WHEN order_amount > 3000 THEN "Eligible for 40% discount" WHEN order_amount between 2000 and 3000 THEN "Eligible for 25% discount" ELSE "Eligible for 5% discount" END FROM order_details;
데이터베이스 생성 지정된 이름으로 새 데이터베이스를 생성합니다. CREATE DATABASE movies_development;
테이블 생성 지정된 테이블 이름과 열 이름 및 유형으로 새 테이블을 생성합니다. CREATE TABLE movie_info (movie_name varchar2(255), release_date datetime, lead_actor varchar2(255), music_director varchar2(255));
기본 CREATE 또는 ALTER TABLE 명령과 함께 사용되는 지정된 열의 기본값을 설정합니다. CREATE TABLE employee (joining_date SET DEFAULT CURRENT_DATE);

ALTER TABLE product ALTER is_available SET DEFAULT true;
삭제 지정된 테이블에서 데이터 삭제 DELETE from employee where employee_id = 345;
DESC ORDER BY 절과 함께 사용되는 de sc 종료 순서로 데이터를 반환합니다. SELECT employee_name, joining_date, salary from employee ORDER BY employee_name DESC;
칼럼 삭제 지정된 테이블에서 지정된 열을 삭제합니다. ALTER TABLE employee DROP COLUMN employee_name;
데이터베이스 삭제 전체 데이터베이스를 삭제합니다. DROP DATABASE movies_development;
드롭 기본값 지정된 열의 기본값을 삭제합니다. ALTER TABLE employee ALTER COLUMN is_available DROP DEFAULT;
드롭 테이블 지정된 테이블을 삭제합니다. DROP TABLE employee;
존재 하위 쿼리에 레코드가 있는지 확인하고 하나 이상의 결과가 있으면 true를 반환합니다. SELECT employee_id, contact_number FROM employee WHERE EXISTS (SELECT employee_id, department FROM department WHERE employee_id = 345 AND department = 'HR');
에서 데이터를 선택하거나 삭제해야 하는 테이블을 지정합니다. SELECT * FROM employee; DELETE FROM employee where employee_id = 345;
그룹화 기준 집계 함수에 사용되는 지정된 열에 따라 데이터를 그룹화합니다. 각 국가의 직원 수 표시

SELECT COUNT(employee_id), country from employee GROUP BY country;

부서별 직원들의 평균 평점을 보여줍니다.

SELECT AVG(rating), department from employee GROUP BY department;
여러 OR 조건을 사용하는 대신 WHERE 절에서 한 번에 여러 값을 선택하는 데 사용됩니다. SELECT employee_name FROM employee WHERE country IN ('India', 'United Kingdom', 'Singapore', 'Australia');
인덱스 인덱스는 데이터 쿼리를 보다 효율적이고 빠르게 만듭니다. 인덱스는 일반적으로 가장 많이 검색되는 열에 생성됩니다. 인덱스 생성:
CREATE INDEX idx_employee ON employee (first_name, last_name);

값을 복제할 수 없는 고유 인덱스를 만듭니다.
CREATE UNIQUE INDEX idx_employee ON employee (first_name, last_name);

인덱스 삭제:
ALTER TABLE employee DROP INDEX idx_employee;
에 집어 넣다 테이블에 새 행 추가 INSERT INTO employee (employee_id, employee_name, salary, core_skill) VALUES (451, 'Lee Cooper', 40000, 'Java');
IS NULL null 값 확인 SELECT employee_id from employee where employee_name IS NULL;
NULL이 아님 null이 아닌 값을 확인합니다. SELECT employee_id, core_skill from employee where core_skill IS NOT NULL;
처럼 주어진 패턴과 일치하는 모든 값을 반환합니다. SELECT employee_id, first_name, last_name where first_name LIKE '%tony';
좋아하지 않는 주어진 패턴과 일치하지 않는 모든 값을 반환 SELECT employee_id, first_name, last_name where first_name NOT LIKE '%tony';
또는 where 절의 조건 중 하나가 충족되면 true를 반환합니다. SELECT * from employee where country = 'India' OR country = 'Australia';
주문 결과를 오름차순(기본값) 또는 쿼리에 지정된 순서( 오름차순 또는 내림차순 )로 정렬합니다. SELECT employee_name, salary from employee ORDER BY salary DESC;
ROWNUM 쿼리의 WHERE 절에 언급된 지정된 수의 행을 반환합니다. SELECT * from employee where ROWNUM <= 5; This will return the first five rows in the resultset.
고르다 주어진 조건에 따라 테이블의 언급된 열을 선택합니다. *를 지정하면 모든 열 값이 반환됩니다. SELECT employee_id from employee; SELECT * from employee;
선택 원본 테이블의 데이터를 다른 대상 테이블로 복사합니다. 모든 열(*) 또는 특정 열을 선택할 수 있습니다. SELECT * INTO new_employee_info FROM employee; SELECT employee_name, joining_date, core_skill INTO new_employee_info FROM employee;
상단 선택 테이블에서 지정된 수의 레코드를 선택합니다. SELECT TOP 5 employee_id from employee where employee_rating = 5;
세트 UPDATE 작업 중에 열 값을 새로 지정된 값으로 설정합니다. UPDATE employee SET first_name = 'Tony' WHERE employee_id = 345;
약간 하위 쿼리의 조건 중 하나가 충족되면 true를 반환합니다. SOME은 ANY 명령과 유사합니다. SELECT employee_id, employee_name from employee WHERE salary > SOME (select salary from employee WHERE department = 'HR');
테이블 자르기 테이블에서 데이터 삭제 – 테이블은 삭제되지 않습니다. TRUNCATE TABLE log_info;
노동 조합 조인된 2개 이상의 테이블에서 고유한 값을 반환합니다. 중복 값도 얻으려면 UNION ALL을 사용하십시오. SELECT city from employee UNION SELECT city from office_locations;
독특한 지정된 열에 고유 제약 조건을 추가하여 열이 중복 값을 가질 수 없음을 의미합니다. 테이블 생성 또는 변경 명령 ​​중에 사용할 수 있습니다. CREATE TABLE employee (employee_id int NOT NULL, UNIQUE(employee_id));

ALTER TABLE employee ADD UNIQUE(employee_id);
업데이트 지정된 열의 값을 새 값으로 업데이트합니다. UPDATE employee SET first_name = 'Tony' WHERE employee_id = 345;
가치 테이블에 값의 새 행을 추가하기 위해 INSERT 명령과 함께 사용 INSERT INTO employee (employee_id, employee_name, salary, core_skill) VALUES (451, 'Lee Cooper', 40000, 'Java');
어디 select 문의 결과 집합을 필터링하는 조건을 추가합니다. SELECT * from employee WHERE salary > 20000;
빠른 참조를 위한 SQL 명령 치트 시트

집계 함수

집계 함수는 int 및 float와 같은 숫자 열에서 작동하는 데이터 조작 명령입니다. 이는 데이터베이스 수준 자체에서 데이터를 필터링하고 정렬하는 데 유용합니다. 일반적으로 사용되는 집계 함수는 다음과 같습니다.

기능 설명 예시
AVG 지정된 열의 평균값을 반환합니다. SELECT AVG(marks) from students where subject = 'English';
지정된 열의 가장 작은 값을 반환합니다. SELECT MIN(price) from product WHERE product_category = 'shoes';
최대 지정된 열의 가장 큰 값을 반환합니다. SELECT MAX(quantity), product_name from inventory;
세다 쿼리를 만족하는 행의 수를 반환합니다. 직원 테이블의 총 레코드 수를 표시합니다.

SELECT COUNT(*) from employee;

급여가 20000보다 큰 직원의 수를 표시하십시오.

SELECT COUNT(*) from employee where salary > 20000;
합집합 지정된 숫자 열 값의 합계를 반환합니다. SELECT SUM(marks) from students where subject = 'English';
일반적인 집계 함수

SQL 조인

SQL 조인은 여러 테이블의 데이터를 연결하고 필터링하기 때문에 매우 중요합니다. 조인은 약간 까다로우며 제대로 실행되지 않으면 예기치 않은 결과를 초래할 수 있습니다. 아래 표는 4가지 유형의 SQL 조인을 빠르게 참조하는 데 도움이 됩니다.

조인 유형 설명 통사론 예시
내부 조인 조인된 테이블에서 일치하는 레코드를 반환합니다. 교차로와 비슷합니다. SELECT column1, column2… from table1 INNER JOIN table2 on table1.columnN = table2.columnN; select c.customer_id, o.order_id, c.customer_phone from customer c INNER JOIN order o on c.customer_id = o.customer_id;
전체(외부) 조인 왼쪽 또는 오른쪽에 일치하는 모든 레코드를 반환합니다. 노조와 비슷합니다. SELECT column1, column2… from table1 FULL OUTER JOIN table2 on table1.columnN = table2.columnN; select c.customer_id, o.order_id, c.customer_phone from customer c FULL OUTER JOIN order o on c.customer_id = o.customer_id;
왼쪽 조인 왼쪽 테이블의 모든 레코드와 오른쪽 테이블의 기준과 일치하는 레코드를 반환합니다. SELECT column1, column2… from table1 LEFT JOIN table2 on table1.columnN = table2.columnN; select c.country_id, c.country_name, l.location_name from country c LEFT JOIN locations l on c.country_id = l.country_id;
오른쪽 조인 오른쪽 테이블의 모든 레코드와 왼쪽 테이블의 기준과 일치하는 레코드를 반환합니다. SELECT column1, column2… from table1 RIGHT JOIN table2 on table1.columnN = table2.columnN; select c.country_id, c.country_name, l.location_name from country c RIGHT JOIN locations l on c.country_id = l.country_id;
구문 및 예제가 있는 조인 유형

추가 리소스

SQL은 소프트웨어 개발자, 데이터 과학자 및 분석가 모두에게 중요한 도구입니다. 치트 시트 형식의 SQL 명령에 대한 편리한 참조는 많은 시간을 절약하고 각 키워드의 예상 출력을 이해하는 데 도움이 됩니다.

추가 정보는 다음 리소스를 참조하십시오.

SQL 자습서: SQL 치트 시트

Intellipaat: SQL 명령 치트 시트

WebsiteSetup: SQL 치트 시트

ProgrammingWithMosh: SQL 치트 시트

PostgreSQL 치트 시트