반응형

DB 29

[MySQL] SQL 문자열 자르기 - SUBSTR / SUBSTRING / LEFT / RIGHT

ORACLE에서 문자열 자르기 // 기본 데이터 > SELECT "test@test.com" as email; +---------------------------------------+ | email | +---------------------------------------+ | test@test.com | +---------------------------------------+ SUBSTR(문자열, 시작 위치, 길이) 문자열 : 원하는 문자열(대상 칼럼) 시작 위치 : 시작 위치 길이 : 시작위치 부터 마지막 위치 // SUBSTR 함수 사용하여 문자열 자르기 > SELECT SUBSTR("test@test.com", 1, 3) as email1 , SUBSTR("test@test.com", 1, ..

DB/MySQL 2022.04.01

[MySQL] 원하는 구분자 기준으로 문자열 자르기 : SUBSTRING_INDEX

원하는 구분자 기준으로 문자열 자르기 MySQL document 참고 Mysql에서는 다양한 문자열 자르는 구문이 존재한다. 하지만 특정 문자를 기준으로 문자열을 자를 수 있는 방법이 있다. SUBSTRING_INDEX구문 SUBSTRING_INDEX(문자열, 구분자, 구분자 인덱스) 문자열 : 원하는 문자열(대상 칼럼) 구분자 : 구분자(구분을 나눌 특정 문자) 구분자 인덱스 : 구분자 순번 양의 정수 입력 : 왼쪽부터 오른쪽으로 인덱스 음의 정수 입력 : 오른쪽부터 왼쪽으로 인덱스 // 기본 데이터 mysql> SELECT "test123@test123.com" as email; +---------------------------------------+ | email | +---------------..

DB/MySQL 2022.04.01

[MySQL] ORDER BY 특정 값 우선 정렬 하기 (ORDER BY FIELD)

MySQL에서 ORDER BY 사용 시 특정한 값을 우선적으로 정렬 FIELD 함수를 이용하여 특정한 값을 우선적으로 정렬 할 수 있다. 쿼리를 통해 데이터를 가져올 때 데이터를 기반으로 조건을 걸어서 정렬하고 싶을 때가 있다. 그때 CASE나 FIELD를 사용하면 가능 조건에 따라 데이터의 정렬 우선순위를 정해줄 수 있다. FIELD ORDER BY FIELD (column, 1순위, 2순위, 3순위, n순위...) 어떤 특정 데이터의 값의 정렬을 우선으로 정해서 정렬하고 싶을 때 사용하면 된다. // 기본 테이블 SELECT id, title, status FROM movie ; 1 어벤져스 2 2 극한직업 0 3 타이타닉 1 4 스파이더맨 1 // 특정 컬럼을 order by 구에 지정하여 사용하기..

DB/MySQL 2022.04.01

[MySQL] 저장 프로시저 (Stored Procedure)

1. 저장 프로시저 (Stored Procedure)란? 여러 SQL 문을 하나의 SQL 문처럼 정리하여 CALL ✕ ✕라는 명령으로 실행할 수 있게 만든 것을 저장 프로시저(Stored Procedure)라고 합니다. Stored는 '저장하다', Procedur는 '절차'라는 의미입니다. 즉, 저장 프로시저는 일련의 절차를 정리해서 저장한 것입니다. 사전에 준비 한 많은 명령을 자동으로 실행할 수 있기 때문에, 작업의 효율성도 높일 수 있습니다. 단, 중요한 데이터가 축적된 데이터베이스에서 제대로 검증되지 않은 저장 프로시저를 실행하는 것은 매우 위험합니다. 2. 저장 프로시저 생성 / 호출 저장 프로시저 생성 예) 고객 테이블에서 고객이름순으로 조회한 정보를 저장 프로시저로 생성 DELIMITER $..

DB/MySQL 2022.04.01

[MySQL] 왜래키(Foreign Key) 정리

외래키 사용환경 InnoDB 엔진을 쓰는 테이블에만 사용 가능하다. 옵션 설명 외래키를 지정할 때는 몇가지 옵션이 존재하는데 이 옵션을 정확하게 파악하지 않고 사용하게 되면 나중에 운영에 큰 치명타를 입을 수 있다. //변경제약 ON UPDATE RESTRICT | CASCADE | NO ACTION | SET NULL //삭제제약 ON DELETE RESTRICT | CASCADE | NO ACTION | SET NULL CASCADE A개체를 변경/삭제할때, A개체를 참조하고 있는 모든 개체들이 변경/삭제된다. RESTRICT A개체를 변경/삭제할때, A개체를 참조하고 있는 개체가 존재하면 A개체에 대한 명령(변경/삭제)이 취소된다. NO ACTION MySQL에서는 RESTRICT와 동일함 SET ..

DB/MySQL 2022.04.01

[MySQL] 시간 더하기, 빼기 (DATE_ADD, DATE_SUB 함수)

MySQL 시간 더하기, 빼기 (DATE_ADD, DATE_SUB 함수) MySQL에서 특정 시간을 기준으로 더하거나, 빼야 하는 경우가 있습니다. 이 때 사용하는 함수가 DATE_ADD와 DATE_SUB입니다. DATE_ADD는 기준 날짜에 입력된 기간만큼을 더하는 함수입니다. DATE_SUB는 기준 날짜에 입력된 기간만큼을 빼는 함수입니다. 사용법 - 시간 더하기 DATE_ADD(기준 날짜, INTERVAL) - 시간 빼기 DATE_SUB(기준 날짜, INTERVAL) Example Query DATE_ADD 쿼리 // 현재 시간 > SELECT NOW(); //결과 > 2021-01-17 12:00:00 현재 시간에 1초 더하기 //쿼리 > SELECT DATE_ADD(NOW(), INTERVAL ..

DB/MySQL 2022.04.01

[MySQL] DATETIME 원하는 유형으로 변경 (YYMMDD)

MySQL에서 DATETIME 타입은 YYYY-MM-DD hh:mm:ss 와 같은 형식으로 반환한다. Mysql 공식 문서 12.7 Date and Time Functions 실제로 이걸 이대로 쓴적은 한번도 없는거 같다. 그래서 필요에 따라서 YYYY-MM-DD까지만 짤라서 쓰거나 시분초가 필요없을때는 처음부터 타입을 DATE형으로 지정할때도 있다. DATETIME타입은 YYYY-MM-DD hh:mm:ss 의 형식을 가진다. 반면 DATE타입은 YYYY-MM-DD 의 형식을 가지며 DATE_FORMAT으로 %Y-%m-%d %h:%m:%s 형식을 지정하면 시분초값은 0으로 채워지게된다. FORMAT설명 %M Month 월(Janeary, February ...) %m Month 월(01, 02, 03 ...

DB/MySQL 2022.04.01

[MySQL] Trigger 사용법 / 특정 테이블 변경 시 관련 테이블 이벤트 실행

Trigger란? 위 뜻 들의 공통점은 특정한 원인이 있으면 특정한 결과를 만들어낸다는 것 (총은 위협할 대상이 있으면 방아쇠를 당긴다, 도화선은 불을 붙이면 터진다, 촉발시키다는 어떤 자극 주어 어떤 결과를 만든다) MySQL에서의 Tirrger 동작 또한 다르지 않습니다, 특정 동작(원인)이 있으면 특정 결과를 만들어냅니다. 하나의 SQL 동작을 함과 동시에 그에 맞춰 또 다른 동작을 처리하는 장치라고 할 수 있습니다. 주로 INSERT, UPDATE, DELETE 동작에 쓰입니다. Trigger는 지정된 테이블의 변경을 감지하여 INSERT / UPDATE / DELETE 이벤트가 일어났을 때 설정한 이벤트를 실행하도록 합니다. A테이블의 어떤 row의 name 필드의 값이 UPDATE 되면 B테이..

DB/MySQL 2022.04.01
반응형