💾 Data/SQL

💾 Data/SQL

[MySQL] 문자열 다루기

[MySQL] 문자열 다루기MySQL에서 문자열 데이터를 처리해야 할 때가 종종히 발생하는데, MySQL은 강력한 문자열 처리 기능을 제공한다.이번 포스팅에선 MySQL에서 자주 사용하는 문자열 함수와 쿼리 예제를 알아보자. 문자열 결합 CONCAT() MySQL에선 `CONCAT()` 함수를 사용해서 여러 문자열을 결합할 수 있다.-- 성과 이름을 결합한다.SELECT CONCAT(first_name, ' ', last_name) AS full_nameFROM users; 문자열 길이 확인 LENGTH()`LENGTH()` 함수는 문자열의 바이트 길이를 반환하며, `CHAR_LENGTH()`는 실제 문자 개수를 반환한다.-- 문자열 길이에 따른 필터링SELECT nameFROM productsWHERE..

💾 Data/SQL

[MySQL] Prepared Statement

[MySQL] Prepared StatementMySQL 4.1 버전부터 Prepared Statment를 지원한다. 이는 쉽게 말해 SQL 쿼리를 미리 준비해 놓고,나중에 실행할 수 있도록 하는 미리 만들어 놓은 쿼리라고 보면 된다. 이는 클라이언트와 서버 간의 빠른 데이터 전송을 가능하게 하는 기술을 기반으로 한다. 해당 구문에 대해 조금 더 자세히 알아보자. 사용 용도준비된 문(Prepared Statement)은 다음과 같은 상황에서 유용하다. 프로그램에서 준비된 문이 어떻게 작동하는지 시험해보고 싶을 때특정 프로그램에서 문제를 해결하고 싶을 때버그를 찾기 위해 테스트 케이스를 만들고 싶을 때프로그래밍 API에 접근할 수 없을 때 SQL SyntaxPrepared Statement에 대한 SQL ..

💾 Data/SQL

[MySQL] 프로시저에서의 매개 변수(IN, OUT, IN OUT)

[SQL] 프로시저에서의 매개 변수(IN, OUT, IN OUT)SQL 프로시저를 작성할 때, 매개변수는 프로시저의 입력과 출력을 정의하는 중요한 요소가 된다.매개변수는 크게 `IN`, `OUT`, `IN OUT` 세 가지 모드로 나뉘며, 각각의 모드는 서로 다른 목적과 사용방식을 가지고 있다. IN`IN`은 프로시저에 입력 값을 전달하는 데 사용된다.프로시저가 호출될 때 외부에서 값을 받아들이며, 프로시저 내에서는 이 값을 읽기만 할 수 있습니다.읽기 전용 : 프로시저 내부에서 값을 변경할 수 없다.값 전달 필수 : 프로시저 호출 시 반드시 값을 전달해야 한다.DELIMITER //CREATE PROCEDURE GetEmployeeName(IN EmployeeID INT)BEGIN SELECT N..

💾 Data/SQL

[MySQL] 프로시저 변수(DECLARE, SET)에 대한 이해

[MySQL] 프로시저 변수(DECLARE, SET)에 대한 이해프로시저는 데이터베이스 내에서 여러 SQL 문을 그룹화라여 실행할 수 있는 저장된 프로그램이다.이 프로시저 내에서 변수를 사용하면 중간 결과를 저장하거나 조건에 따라 로직을 제어하는 것이 가능하다. SQL 프로시저 변수란?SQL 프로시저 변수는 프로시저 내에서 데이터를 저장하고 조작할 수 있는 메모리 공간이다.변수는 프로시저가 실행되는 동안 값을 저장하고, 필요에 따라 참조할 수 있다. 프로시저 변수에는 로컬 변수, 전역 변수 2가지의 변수가 있다.로컬 변수프로시저 내에서만 사용되며, 프로시저가 종료되면 메모리에서 사라진다.전역 변수데이터베이스 세션 동안 유지되며, 여러 프로시저에서 공유할 수 있다. 변수는 사용하기 전에 반드시 선언해야한다..

💾 Data/SQL

[MySQL] 실행중인 쿼리 확인하기

[MySQL] 실행중인 쿼리 확인하기MySQL 데이터베이스를 관리할 때, 실행 중인 쿼리를 확인하고 필요에 따라 종료하는 것이 중요하다. 이를 통해 시스템 성능을 개선하고 불필요한 자원 소모를 줄일 수 있다. 실행 중인 쿼리 확인아래 명령어는 현재 MySQL 서버에서 실행되고 있는 모든 프로세스의 목록을 보여준다.show full processlist; 실행 중인 쿼리 종료하기특정 쿼리를 종료하려면, 해당 쿼리의 ID를 사용하여 다음 명령어를 실행한다.kill [Query ID]; 쿼리를 종료하면 해당 쿼리에 의해 영향을 받는 모든 작업이 중단된다. 따라서 중요한 작업이 진행 중인 경우 종료를 피해야 한다.

💾 Data/SQL

[MySQL] JSON_TABLE(), JSON_ARRAY()

[MySQL] JSON_TABLE(), JSON_ARRAY()MySQL은 JSON 데이터 타입을 지원하면서 더 강력하고 유연한 JSON 처리를 제공하고 있다.특히 JSON_TABLE 함수는 JSON 데이터를 SQL 테이블처럼 다룰 수 있는 매우 유용한 기능이다. JSON_TABLE과 JSON_ARRAY 함수의 사용법과 예제를 통해 어떻게 JSON 데이터를 더 쉽게 다룰 수 있는지 알아보자.JSON_ARRAY여러 값을 JSON 배열로 생성할 때 사용된다. 이 값은 인자로 들어온 값을 JSON 배열 형식으로 반환한다. 사용법JSON_ARRRAY([val1,[, val2, ...]]) 예시SELECT JSON_ARRAY(1, 'apple', true, NULL);위 쿼리의 결과는 다음과 같은 JSON 배열을 ..

💾 Data/SQL

[MySQL] 데이터를 구분자로 Split 하기

[MySQL] 데이터를 구분자로 Split 하기개요DB 테이블에 컬럼이 다음과 같은 형식으로 되어있는 데이터가 있었는데 구분자를 분리해서 개수가 몇개인지 카운트를 하고싶었다.test_columnsappleapple, bananabanana, pineapplepineapple MySQL에서 특정 문자를 기준으로 split 하는 함수에는 SUBSTRING_INDEX() 함수가 있는데,이 함수는 인덱스에 해당하는 라인만 뽑기 때문에 데이터가 많을 경우 원하는 결과를 얻기 위해선 프로시저를 사용해야 했다..😥 SELECT 문으로 데이터 하나 뽑자고 프로시저를 사용하는 건 너무 과한 것 같아 다른 방법을 알아보기로 했다. JSON_TABLE열심히 서칭한 결과 JSON_TABLE()이라는 아주 좋은 방법이 있었다..

💾 Data/SQL

[MySQL] EXISTS

[MySQL] EXISTSEXISTSEXISTS는 MySQL에서 서브쿼리의 결과가 존재하는지 여부를 확인하는데 사용하는 조건문이다. 주로 특정 조건에 맞는 데이터가 존재하는지 여부를 확인할 때 사용하며, 참 또는 거짓의 값을 반환한다.EXISTS는 보통 SELECT문과 함께 사용되며, 데이터의 유무에 따라 로직을 결정하는 데  유용하다. 기본 구조SELECT 칼럼명FROM 테이블명WHERE EXISTS ( 서브쿼리);위 구조에서 EXISTS 안의 서브쿼리가 실행되며, 서브쿼리의 결과에 한 개 이상의 레코드가 존재하면 참을 반환하고, 그렇지 않으면 거짓을 반환한다. 작동 방식EXISTS는 서브쿼리가 반환하는 데이터를 확인하지 않는다. 대신, 서브쿼리가 최소한 한 개의 행이라도 반환하면 TRUE를 반환..

💾 Data/SQL

[MySQL] PERCENT_RANK()

[MySQL] PERCENT_RANK() PERCENT_RANK()데이터 내에서 특정 값의 상대적인 순위를 백분률로 반환한다.0과 1사이의 값을 반환하며, 값이 0이면 가장 낮은 순위, 1이면 가장 높은 순위를 의미한다.PERCENT_RANK() OVER ([PARTITION BY partition_expression] ORDER BY order_expression) 동작 원리PERCENT_RANK()는 각 행의 순위를 기준으로 계산된다.$$PERCENTRANK()=\frac{Rank-1}{TotalRows-1}$$ 여기서 RANK는 해당 행의 순위이며, Total Rows는 전체 행의 수이다.ex) 데이터가 10개인 경우 PERCENT_RANK()는  각 행의 순위를 0부터 1까지 나눈 값을 반환한다...

💾 Data/SQL

[MySQL] INNER, LEFT, RIGHT JOIN

SQL에서 조인은 데이터베이스에서 여러 테이블을 결합해 데이터를 조회할 때 매우 유용한 도구다.MySQL에서의 조인의 기본 개념과 사용법에 대해 알아보고자 한다. JOIN조인(Join)은 두 개 이상의 테이블을 결합해 하나의 결과 집합을 만드는 SQL 연산이다.조인은 주로 테이블 간의 관계를 정의하고, 그 관계에 기반해 데이터를 조회할 때 사용된다. MySQL에서 자주 사용되는 조인은 크게 네 가지로 나눌 수 있다.INNER JOIN일치하는 데이터만 필요할 때LEFT JOIN왼쪽 테이블의 모든 데이터를 포함할 때RIGHT JOIN오른쪽 테이블의 모든 데이터를 포함할 때FULL OUTER JOIN두 테이블의 모든 데이터를 포함할 때 INNER JOININNER JOIN은 두 테이블간의 교집합을 반환한다.즉..

💾 Data/SQL

[MySQL] SQL 변수 선언 및 사용

[MySQL] SQL 변수 선언 및 사용MySQL에서 변수를 사용하는 것은 데이터베이스 내에서 반복 작업을 자동화하거나, 복잡한 쿼리를 간결하게 만드는 데 매우 유용하다. MySQL에는 주로 세 가지 종류의 변수가 있다. 1. 사용자 정의 변수 (User-Defined Variables)사용자 정의 변수는 세션 내에서만 존재하며, 주로 SELECT, INSERT, UPDATE 쿼리 내에서 사용된다.변수 이름 앞에는 항상 '@' 기호를 붙인다. 선언 및 사용법사용자 정의 변수는 별도의 선언 없이 바로 값을 할당하여 사용할 수 있다.-- 변수 @myVar에 100을 할당SET @myVar = 100;-- 변수 @myVar의 값을 출력SELECT @myVar;아래 예제는 'employees' 테이블에서 가장 ..

💾 Data/SQL

[MySQL] DB 테이블 row 수 확인

[MySQL] DB 테이블 row 수 확인 전체 테이블 별 row count를 구하기 위해선 다음과 같은 Query를 사용할 수 있다.SELECT table_name, table_rows FROM information_schema.tables WHERE table_schema = 'DBNAME' ORDER BY table_name;

heywantodo
'💾 Data/SQL' 카테고리의 글 목록