파이썬에서 자기란 무엇인가: 실제 사례
파이썬에서 자기란 무엇인가: 실제 사례
프로그래머 또는 데이터 분석가로서 대용량 데이터로 작업하는 경우가 많습니다. 가장 강력한 도구 중 하나는 SQL(Structured Query Language)입니다.
이 SQL 치트 시트는 데이터 유형, DML 및 DDL 문, 집계 함수, 문자열 및 날짜 함수, 하위 쿼리를 포함하여 가장 일반적인 SQL 개체 및 명령을 제공합니다.
관계형 데이터베이스와 상호 작용할 때마다 접근할 수 있는 빠르고 편리한 참조로 설계되었습니다.
당신이 우리와 같고 컴퓨터에 치트 시트를 다운로드하여 인쇄하거나 저장하려는 경우 아래에서 다운로드할 수 있습니다.
목차
SQL 데이터 유형
특정 데이터베이스 관리 시스템(DBMS)의 데이터 유형은 다를 수 있습니다(예: Microsoft SQL Server와 MySQL ). 그러나 대부분의 시스템에서 발견되는 몇 가지가 있습니다. 이를 세 가지 범주로 나눌 수 있습니다.
숫자
날짜와 시간
끈
1. 숫자형
다음은 가장 일반적인 숫자 유형입니다.
INTEGER : 소수점이 없는 정수.
SMALLINT : 더 작은 범위의 정수
BIGINT : 더 넓은 범위의 정수.
DECIMAL(p, s) 또는 NUMERIC(p, s) : 예를 들어 십진수(5,2)는 123.45에 맞습니다.
REAL : 정밀도가 최소 6자리 십진수인 부동 소수점 숫자입니다.
FLOAT(n) : 정밀도가 n자리 이상인 부동 소수점 숫자입니다.
2. 날짜 및 시간 유형
DATE : 일반적으로 'YYYY-MM-DD' 형식의 날짜 값입니다.
TIME : 일반적으로 'HH:MM:SS' 형식의 시간 값입니다.
DATETIME 또는 TIMESTAMP : 날짜와 시간 값의 조합입니다.
3. 문자열 유형
CHAR(n) : n개의 문자로 된 고정 길이 문자열입니다.
VARCHAR(n) 또는 CHARACTER VARYING(n) : 가변 길이 문자열입니다.
TEXT : DBMS에서 최대 길이를 결정하는 가변 길이 문자열.
SELECT 문
SELECT 문은 하나 이상의 테이블에서 데이터를 검색하는 데 사용됩니다. 검색하려는 열과 테이블을 지정할 수 있습니다. 기본 SELECT 문은 다음과 같습니다.
SELECT column1, column2
FROM table;
'city' 테이블의 'name' 및 'country_id' 열에서 모든 레코드를 검색하려면 SQL 쿼리는 다음과 같습니다.
SELECT name, country_id
FROM city;
WHERE 절
WHERE 절을 사용하면 특정 조건에 따라 SELECT 문의 결과를 필터링할 수 있습니다.
SELECT column1, column2
FROM table
WHERE condition;
'인구'가 1,000,000보다 큰 '도시' 테이블에서 레코드를 검색하려면 쿼리는 다음과 같습니다.
SELECT name, population
FROM city
WHERE population > 1000000;
ORDER BY 절
ORDER BY 절을 사용하면 하나 이상의 열을 기준으로 SELECT 문의 결과를 정렬할 수 있습니다. 결과를 오름차순(ASC) 또는 내림차순(DESC)으로 정렬할 수 있습니다.
SELECT column1, column2
FROM table
ORDER BY column1 ASC, column2 DESC;
예를 들어 '인구'를 기준으로 내림차순으로 정렬된 '도시' 테이블에서 레코드를 검색하려면 쿼리는 다음과 같습니다.
SELECT name, population
FROM city
ORDER BY population DESC;
SQL에서 여러 테이블 조인
SQL에는 일반적으로 사용되는 네 가지 조인이 있습니다.
내부 조인
왼쪽 조인
오른쪽 조인
풀 조인
1. 내부 조인
INNER JOIN은 두 테이블에서 일치하는 값이 있는 레코드를 검색합니다.
아티스트와 앨범 데이터베이스의 예를 들어 보겠습니다. 모든 아티스트와 앨범 조합을 찾으려고 합니다. 이것이 내부 조인입니다.
SELECT *
FROM artists AS a
INNER JOIN albums AS b
ON a.artist_id = b.artist_id;
INNER JOIN을 사용하면 지정된 필드에서 일치하는 값이 있는 행만 결과에 반환됩니다.
2. 왼쪽 조인
LEFT JOIN은 LEFT OUTER JOIN이라고도 합니다. 왼쪽 테이블의 모든 레코드와 오른쪽 테이블의 일치하는 레코드를 반환합니다. 오른쪽 테이블에 일치 항목이 없으면 결과에 NULL 값이 포함됩니다.
예를 들어, 모든 아티스트 및 해당 앨범(있는 경우) 목록을 가져오려면 LEFT JOIN을 사용할 수 있습니다.
SELECT *
FROM artists AS a
LEFT JOIN albums AS b
ON a.artist_id = b.artist_id;
이 쿼리는 앨범 테이블에 연결된 앨범이 없더라도 모든 아티스트를 반환합니다.
3. 오른쪽 조인
RIGHT JOIN은 RIGHT OUTER JOIN이라고도 합니다. 오른쪽 테이블의 모든 레코드와 왼쪽 테이블의 일치하는 레코드를 반환합니다. 왼쪽 테이블에 일치하는 항목이 없으면 결과에 NULL 값이 포함됩니다.
예를 들어, 모든 앨범 및 관련 아티스트(존재하는 경우)에 대한 정보를 얻으려면 RIGHT JOIN을 사용합니다.
SELECT *
FROM artists AS a
RIGHT JOIN albums AS b
ON a.artist_id = b.artist_id;
이 쿼리는 아티스트 테이블에 연결된 아티스트가 없는 경우에도 모든 앨범을 반환합니다.
4. 풀조인
FULL JOIN은 FULL OUTER JOIN이라고도 합니다. LEFT 및 RIGHT 조인의 결과를 결합합니다. 즉, 왼쪽 및 오른쪽 테이블의 모든 행을 반환하고 일치하는 항목이 없으면 누락된 값을 NULL로 채웁니다.
다음은 아티스트 및 앨범 테이블을 사용하는 예입니다.
SELECT *
FROM artists AS a
FULL JOIN albums AS b
ON a.artist_id = b.artist_id;
이 쿼리는 두 테이블의 모든 행을 반환하고 두 테이블에 일치하는 항목이 없는 경우 NULL을 채웁니다.
SQL 집계 함수
집계 함수는 일련의 입력 값에서 단일 결과를 계산하는 데 사용됩니다. 여러 입력을 받고 단일 출력을 반환하기 때문에 "집계"라고 합니다. 가장 일반적인 것은 다음과 같습니다.
세다
합집합
평균
MAX
분
1. 카운트 기능
COUNT 함수를 사용하면 쿼리 결과의 행 수를 계산할 수 있습니다. 이 집계 함수를 사용하여 테이블의 총 레코드 수 또는 특정 기준과 일치하는 레코드 수를 결정할 수 있습니다.
예를 들면 다음과 같습니다.
SELECT COUNT(*) FROM employees;
이 쿼리는 'employees' 테이블의 총 직원 수를 반환합니다. WHERE 절을 추가하면 결과를 구체화할 수 있습니다.
SELECT COUNT(*) FROM employees WHERE department = 'HR';
2. 합 함수
The SUM function calculates the total sum of a numeric column. It’s useful when you need to calculate the total value of a particular numeric field. For example, this query returns the total sum of all employee salaries:
SELECT SUM(salary) FROM employees;
3. AVG Function
The AVG function computes the average value of a numeric column. This function is helpful when you want to find the average of a particular numeric field. For instance, this query returns the average salary of all employees:
SELECT AVG(salary) FROM employees;
4. MAX Function
The MAX function finds the maximum value of a column. This is often used to find the highest value in a numeric field or the most recent date in a datetime field. For example, this query returns the highest salary:
SELECT MAX(salary) FROM employees;
5. MIN Function
Lastly, the MIN function helps you find the minimum value of a column. For example, this query returns the lowest salary:
SELECT MIN(salary) FROM employees;
Remember, you can use WHERE clauses in these queries and JOIN with multiple tables.
Common String Functions
Here are the most common string functions that are found in most SQL dialects (the exact syntax can vary):
LEN or LENGTH(string): Returns the length of a string.
UPPER(string): Converts a string to upper case.
LOWER(string): Converts a string to lower case.
SUBSTR or SUBSTRING(string, start, length): Extracts a portion from a string.
TRIM(string): Removes leading and trailing spaces from a string.
LTRIM(string): Removes leading spaces from a string.
RTRIM(string): Removes trailing spaces from a string.
Common Numeric Functions
Here are the most common numeric functions that are found in most SQL dialects (the exact syntax can vary):
ABS(number): Returns the absolute value of a number.
ROUND(number, decimal_places): Rounds a number to a certain number of decimal places.
FLOOR(number): Rounds down the number to the nearest integer.
CEIL or CEILING(number): Rounds up the number to the nearest integer.
RAND(): Returns a random float value from 0 to 1.
MOD(n, m): Returns the remainder of n divided by m.
POWER(base, exponent): Raises a number to the power of another number.
LOG(number): Returns the natural logarithm of a number.
Common Date Functions
Here are the most common date functions that are found in most SQL dialects (the exact syntax can vary):
NOW(): Returns the current date and time.
DATE(datetime): Extracts the date part of a date or datetime expression.
TIME(datetime): Extracts the time part of a date or datetime expression.
YEAR(date): Returns the year part.
MONTH(date): Returns the month part.
DAY(date): Returns the day of the month part.
HOUR(time): Returns the hour part from a time.
MINUTE(time): Returns the minute part from a time.
SECOND(time): Returns the second part from a time.
GROUP BY And HAVING
When working with SQL queries, you may want to further summarize and filter your aggregated data. The GROUP BY and HAVING clauses provide this functionality.
1. Group By Clause
The GROUP BY clause allows you to group rows that share the same values in specified columns. It is commonly used with aggregate functions. This is the syntax:
SELECT column1, column2, aggregate_function(column3)
FROM table_name
WHERE condition
GROUP BY column1, column2;
For example, if you want to calculate the total sales amount for each product category, this is the query:
SELECT product_category, SUM(sales_amount)
FROM sales_data
GROUP BY product_category;
TIP: Combining GROUP BY and COUNT is a good way of finding duplicate values.
2. Having Clause
If you want to filter the aggregated results further, you can use the HAVING clause. The syntax is:
SELECT column1, column2, aggregate_function(column3)
FROM table_name
WHERE condition
GROUP BY column1, column2
HAVING condition;
If you want to find product categories with total sales of more than $1,000,000, you would write:
SELECT product_category, SUM(sales_amount)
FROM sales_data
GROUP BY product_category
HAVING SUM(sales_amount) > 1000000;
Quick Tips
Always use the GROUP BY clause before the HAVING clause.
The SELECT statement can only contain specified column names, aggregate functions, constants, and expressions.
When using the HAVING clause, filter conditions should be applied to the aggregate functions rather than directly to the grouped columns.
By understanding and properly applying the GROUP BY and HAVING clauses, you can better organize and analyze your data using SQL.
Subqueries
A subquery is also known as an inner or nested query. This is a query embedded within another SQL statement (such as a SELECT statement) or even inside another subquery.
Subqueries allow you to retrieve data based on the output of another query. The most common operators used with subqueries are:
IN
EXISTS
ANY
ALL
1. IN Operator
The IN operator tests if a value is within a set of values generated by the inner query. The syntax for using the IN operator with a subquery is as follows:
SELECT column_name(s)
FROM table_name
WHERE column_name IN (SELECT column_name FROM other_table);
This returns rows from the outer query where the specified column value matches any of the values provided by the subquery.
Suppose you have an employee table and a departments table. You want to find employees who work in departments based at the head office. Here is a sample query
SELECT first_name, last_name
FROM employee
WHERE department IN (SELECT department FROM departments
WHERE location = "HQ");
For a more in-depth look, check out our article on the SQL WHERE IN syntax.
2. EXISTS Operator
The EXISTS operator checks if there is at least one row resulting from the subquery. You can use the EXISTS operator to filter rows based on the existence of related data in another table. This is the syntax:
SELECT column_name(s)
FROM table_name
WHERE EXISTS (SELECT column_name FROM other_table WHERE condition);
When the subquery returns at least one row, the EXISTS operator returns true, and the relevant rows from the outer query are included in the result.
3. ANY Operator
The ANY operator is used to compare a value to any value in a set of values provided by a subquery. It’s commonly used with comparison operators like =, <, >, <=, or >=.
This is the syntax:
SELECT column_name(s)
FROM table_name
WHERE column_name operator ANY (SELECT column_name FROM other_table WHERE condition);
This will return rows from the outer query where the specified column value meets the condition against any value from the subquery.
4. ALL Operator
The ALL operator compares a value to all values within a set of values provided by a subquery. The conditions must be true for every value in the subquery’s result. This is the syntax:
SELECT column_name(s)
FROM table_name
WHERE column_name operator ALL (SELECT column_name FROM other_table WHERE condition);
This returns rows from the outer query only if the specified column value satisfies the condition against all values in the subquery’s output.
Data Manipulation (DML)
Data Manipulation Language (DML) is a sub-language within SQL for managing and updating data. The most common statements are:
INSERT
UPDATE
DELETE
1. INSERT Statement
The INSERT statement allows you to insert rows into a table. Here’s the basic syntax:
INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);
For example, if you want to insert a new row into a ‘users’ table with columns ‘id’, ‘name’, and ’email’, you would use the following query:
INSERT INTO users (id, name, email)
VALUES (1, 'John Doe', '[email protected]');
2. UPDATE Statement
The UPDATE statement allows you to modify existing row data in a table. This is the syntax:
UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;
For example, if you want to update the email address of a user with the id ‘1’ in the ‘users’ table, your query would look like this:
UPDATE users
SET email = '[email protected]'
WHERE id = 1;
TIP: remember to include a WHERE clause to avoid updating all rows in the table by mistake.
3. DELETE Statement
The DELETE statement allows you to remove rows from a table. Here’s the syntax:
DELETE FROM table_name
WHERE condition;
예를 들어 'users' 테이블에서 ID가 '1'인 사용자를 삭제하려는 경우 쿼리는 다음과 같습니다.
DELETE FROM users
WHERE id = 1;
팁 : 삭제할 행을 지정하고 테이블의 모든 행을 삭제하지 않도록 하려면 항상 WHERE 절을 포함하십시오.
DDL을 사용한 데이터베이스 관리
데이터 정의 언어(DDL)는 테이블과 데이터베이스 자체를 만들고 변경하는 데 사용되는 SQL 하위 언어입니다. 가장 일반적인 DDL 문은 다음과 같습니다.
만들다
바꾸다
떨어지다
1. CREATE 문
CREATE 문을 사용하면 새 테이블, 보기 또는 인덱스와 같은 새 데이터베이스 개체를 만들 수 있습니다. 새 테이블을 만들 때 열, 해당 데이터 유형 및 제약 조건을 정의해야 합니다.
다음은 주문 테이블을 만드는 예입니다.
CREATE TABLE orders (
id INTEGER PRIMARY KEY,
product VARCHAR(255) NOT NULL,
customer_id INT NOT NULL
);
팁: 적절한 데이터 유형과 제약 조건을 선택하여 테이블의 데이터 무결성을 보장하십시오.
자세한 내용은 기본 SQL 테이블 작업 에 대한 기사를 확인하십시오 .
2. ALTER 문
ALTER 문은 기존 데이터베이스 개체를 수정하는 데 도움이 됩니다. 일반적인 용도는 다음과 같습니다.
열 추가, 수정 또는 삭제.
기존 테이블에서 제약 조건을 추가하거나 제거합니다.
기본 및 외래 키 추가.
새 열 추가
ALTER TABLE users ADD COLUMN age INTEGER;
열의 데이터 유형 수정
ALTER TABLE users ALTER COLUMN age TYPE FLOAT;
열 삭제
ALTER TABLE users DROP COLUMN age;
고유 제약 조건 추가
ALTER TABLE users ADD CONSTRAINT users_email_unique UNIQUE(email);
테이블 사이에 외래 키 추가
ALTER TABLE users ADD FOREIGN KEY (country_id) REFERENCES Country(country_id);
3. DROP 문
DROP 문을 사용하면 테이블, 뷰 또는 인덱스와 같은 데이터베이스 개체를 제거할 수 있습니다. 지정된 개체와 모든 데이터가 영구적으로 삭제되므로 주의해서 사용하십시오.
예를 들면 다음과 같습니다.
DROP TABLE users;
팁 : DROP 문을 실행하기 전에 적절한 백업이 있는지 확인하십시오.
데이터 모델링에 대해 자세히 알아보려면 다음 비디오를 확인하십시오.
업무
트랜잭션은 특히 여러 관련 작업이 동시에 실행될 때 데이터베이스 무결성을 유지하는 데 중요한 역할을 합니다 . 트랜잭션 처리에는 세 가지 기본 작업이 있습니다.
시작하다
저지르다
롤백
1. 시작
BEGIN 문은 트랜잭션의 시작을 나타냅니다. 이 명령을 실행하면 일련의 SQL 문에 대한 시작점을 설정하게 됩니다.
BEGIN;
2. 커밋
변경 사항을 완료하고 데이터베이스에 유지하려면 COMMIT 문을 사용하십시오. 이렇게 하면 트랜잭션 내의 모든 작업이 성공적으로 영구적으로 실행됩니다.
COMMIT;
다음은 계정 간 자금 이체의 전형적인 예를 사용한 전체 거래의 예입니다.
BEGIN;
UPDATE accounts SET balance = balance - 100 WHERE id = 1;
UPDATE accounts SET balance = balance + 100 WHERE id = 2;
COMMIT;
3. 롤백
트랜잭션으로 작업할 때 오류가 발생할 때 변경 내용을 실행 취소하는 방법을 아는 것도 중요합니다. ROLLBACK 문은 트랜잭션 시작 이후의 모든 변경 사항을 되돌립니다.
ROLLBACK;
다음은 ROLLBACK을 사용하여 오류를 처리하는 트랜잭션의 예입니다.
BEGIN;
UPDATE accounts SET balance = balance - 100 WHERE id = 1;
UPDATE accounts SET balance = balance + 100 WHERE id = 2;
IF @@ERROR <> 0
ROLLBACK;
ELSE
COMMIT;
마지막 생각들
이 SQL 치트 시트에서 본 것처럼 SQL은 관계형 데이터베이스에서 데이터를 생성, 조작 및 쿼리할 수 있는 다양한 명령과 기능을 제공합니다.
SELECT, INSERT, UPDATE 및 DELETE와 같은 기본 명령에서 JOIN 및 하위 쿼리와 같은 보다 복잡한 구문과 지금까지 다룬 집계 함수에 이르기까지 SQL은 광범위한 데이터 작업을 처리할 수 있는 유연성을 ���공합니다.
이 치트 시트로 계속 돌아와서 SQL 학습 속도를 높이십시오 !
파이썬에서 자기란 무엇인가: 실제 사례
R의 .rds 파일에서 개체를 저장하고 로드하는 방법을 배웁니다. 이 블로그에서는 R에서 LuckyTemplates로 개체를 가져오는 방법도 다룹니다.
이 DAX 코딩 언어 자습서에서는 GENERATE 함수를 사용하는 방법과 측정값 제목을 동적으로 변경하는 방법을 알아봅니다.
이 자습서에서는 다중 스레드 동적 시각적 개체 기술을 사용하여 보고서의 동적 데이터 시각화에서 통찰력을 만드는 방법을 다룹니다.
이 기사에서는 필터 컨텍스트를 살펴보겠습니다. 필터 컨텍스트는 모든 LuckyTemplates 사용자가 처음에 배워야 하는 주요 주제 중 하나입니다.
LuckyTemplates Apps 온라인 서비스가 다양한 소스에서 생성된 다양한 보고서 및 인사이트를 관리하는 데 어떻게 도움이 되는지 보여주고 싶습니다.
LuckyTemplates에서 측정 분기 및 DAX 수식 결합과 같은 기술을 사용하여 수익 마진 변경을 해결하는 방법을 알아봅니다.
이 자습서에서는 데이터 캐시의 구체화 아이디어와 결과 제공 시 DAX 성능에 미치는 영향에 대해 설명합니다.
지금까지 Excel을 계속 사용하고 있다면 지금이 비즈니스 보고 요구 사항에 LuckyTemplates를 사용하기 시작하는 가장 좋은 시기입니다.
LuckyTemplates 게이트웨이란? 당신이 알아야 할 모든 것