[MySql] 숫자가 아닌 데이터, 숫자만 들어간 데이터 찾기 REGEXP ■ MySql 숫자가 아닌 데이터, 숫자만 들어간 데이터 찾기 REGEXP REGEXP 연산자? 정규표현식으로 LIKE 와는 달리 정규식을 이용한 검색 방식을 말하며, 좀 더 다양한 검색을 할 수 있음 처음과 끝은 각각 ^과 $로 표현할 수 있음 ■ 예제 해당 컬럼의 데이터 중 숫자가 아닌 데이터만 찾는 쿼리 SELECT * FROM [테이블] WHERE ([컬럼명] REGEXP '[^0123456789]') = 1; MySql 2021.10.20
[MySql] IN 조건 ■ MySql IN 조건 조건의 범위를 지정하는데 사용되며, 괄호 내 콤마(,)로 구분하여 값을 묶으면 그 중 하나 이상과 일치하는 조건에 맞는 데이터를 추출할 수 있음 ■ 장점 - OR 연산자 보다 IN 연산자의 실행속도가 더 빠름 - IN 연산자 안에 또 다른 SELECT 쿼리문을 넣을 수 있음 - 조건 순서를 쉽게 관리할 수 있으며, 연산자 수도 줄일 수 있음 ■ 코드 # OR 조건 WHERE Column = 'A' OR Column = 'B' # IN조건 WHERE Column IN ( 'A', 'B' ) MySql 2021.09.23
[MySql] 트랜잭션(Transaction) ■ MySql 트랜잭션(Transaction) ■ 트랜잭션(Transaction)이란? DB 데이터베이스의 상태를 변화시키기 위해 수행하는 일종의 작업 단위를 의미하며, 작업 처리 전체를 하나의 단위로 묶어서 처리함 SQL에서는 쿼리 시작 전 상단부에 트랜잭션 사용을 선언한 후 쿼리를 수행하며, 쿼리가 정상적으로 종료되면 COMMIT으로 데이터베이스에 데이터를 저장함 데이터베이스의 상태를 변화시킨다? 즉, 질의어를 통해 데이터베이스 데이터 접근 및 변화시키는 것을 의미 ■ 질의어 SELECT (조회) INSERT (삽입) UPDATE (수정) DELETE (삭제) ■ 트랜잭션(Transaction) 특징 원자성(Atomicty) : 트랜잭션이 데이터베이스에 모두 반영되던가 전혀 반영되지 않아야 함 (일부.. MySql 2021.06.09
[MySql] OLD_PASSWORD() 와 PASSWORD() 함수 ■ MySql OLD_PASSWORD() 와 PASSWORD() 함수 사용자 로그인 보안 수준 향상을 위해 MySQL 4.0.x 이하 버전과 4.1.x 이상 버전의 PASSWORD() 함수 구현 알고리즘이 달라짐 MySQL 4.0.x 이하 버전 PASSWORD() 암호화 함수 OLD_PASSWORD() 함수 자체가 존재하지 않음 MySQL 4.1.x 이상 버전 PASSWORD() 버전업된 암호화 함수 (암호화된 내용의 맨첫번째 문자는 "*"로 시작, 새로운 암호화인지 구분하기 쉬움) OLD_PASSWORD() 기존 암호화 함수 (MySQL 4.0.x 이하 버전의 PASSWORD() 와 동일) SELECT PASSWORD('temp_pwd') *1714EC8E64FD28EB30B551598DD6BC9C34.. MySql 2021.05.25
[MySql] 프로세스 리스트 확인 SHOW / 프로세스 중지 KILL ■ MySql 프로세스 리스트 확인 SHOW / 프로세스 중지 KILL ■ 사용법 현재 실행중인 스레드 리스트를 확인할 수 있음 * information_schema.PROCESSLIST 테이블 또는 mysqladmin processlist 명령을 통해서도 확인 가능 SHOW PROCESSLIST; ID : 클라이언트의 프로세스 ID (스레드 번호) USER : 프로세스와 관련된 사용자 이름 (스레드에 접속하고 있는 MySQL 유저명) HOST : 클라이언트가 연결된 호스트 (유저가 접속하고 있는 호스트명 및 IP주소) DB : 프로세스의 기본 데이터베이스 (기본값이 없으면 NULL) COMMAND : 명령 유형 (스레드 명령 값 참조) TIME : 프로세스가 현재 상태에 있었던 동작 시간 (초) STA.. MySql 2021.05.24
[MySql] 특정 문자열 기준 문자열 자르기 SUBSTRING_INDEX ■ 특정 문자열 기준 문자열 자르기 SUBSTRING_INDEX ■ 사용법 SUBSTRING_INDEX(문자열, 구분자, 구분자 Index) SELECT SUBSTRING_INDEX ('A,B,C,D' , ',', 1 )#A , SUBSTRING_INDEX ('A,B,C,D' , ',', 3 ) #A,B,C , SUBSTRING_INDEX ('A,B,C,D' , ',', -2 ) #C,D 해당 index에 맞게 문자열을 추출하는 방법 SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(문자열, 구분자, 구분자 Index), 구분자, -1) SELECT SUBSTRING_INDEX(SUBSTRING_INDEX('A,B,C,D', ',', 3), ',', -1)#3번째 index = C만 추출 MySql 2021.01.25
[Mysql] IF문 IF ( 조건, 참, 거짓) #column1 >= 10 이 참일 경우 '10이상'으로 거짓일 경우 column1 값이 출력 IF( column1 >= 10, '10이상', column1 ) MySql 2021.01.15
[MySql] 테이블 내 특정 문자열 치환 REPLACE SELECT REPLACE(column1, '-', '') AS column1 FROM table_name #column1 값이 010-1234-5678 이라고 가정했을 때 해당 쿼리실행 시 01012345678로 출력됨 MySql 2021.01.12
[Mysql] 테이블 삭제 truncate/drop ■ Mysql 테이블 삭제 truncate/drop 1. 테이블 내 데이터만 리셋시키고 싶은 경우 TRUNCATE TABLE tablename 2. 테이블 자체를 삭제할 경우 DROP TABLE tablename MySql 2020.12.23
[Mysql] 위/아래 ROW 값 가져오기 (LAG, LEAD) ■ Mysql 위/아래 ROW 값 가져오기 (LAG, LEAD) SELECT column_1 , column_2 , IFNULL(LAG(column_1) OVER (ORDER BY column_1), '') AS 이전행column_1 , IFNULL(LAG(column_2) OVER (ORDER BY column_1), '') AS 이전행column_2 , IFNULL(LEAD(column_1) OVER (ORDER BY column_1), '') AS 다음행column_1 , IFNULL(LEAD(column_2) OVER (ORDER BY column_1), '') AS 다음행column_2 FROM table_name ORDER BY column_1 MySql 2020.10.22