DataBase
-
2023-08-30 1. 가장 많은 메모리를 차지하는 이벤트(Byte) TOP 10 select EVENT_NAME, HIGH_NUMBER_OF_BYTES_USED from performance_schema.memory_summary_global_by_event_name where HIGH_NUMBER_OF_BYTES_USED > 0 order by 2 desc limit 10; 2. 현재 할당 된 총 메모리양 select event_name,current_alloc from sys.memory_global_by_current_bytes; 3. 스레드 별로 할당된 메모리양 select thread_id,user,current_allocated from sys.memory_by_thread_by_curre..
[MySQL] mysql 메모리 모니터링 쿼리 정보 / 현재 메모리 확인2023-08-30 1. 가장 많은 메모리를 차지하는 이벤트(Byte) TOP 10 select EVENT_NAME, HIGH_NUMBER_OF_BYTES_USED from performance_schema.memory_summary_global_by_event_name where HIGH_NUMBER_OF_BYTES_USED > 0 order by 2 desc limit 10; 2. 현재 할당 된 총 메모리양 select event_name,current_alloc from sys.memory_global_by_current_bytes; 3. 스레드 별로 할당된 메모리양 select thread_id,user,current_allocated from sys.memory_by_thread_by_curre..
2023.08.30 -
2023-08-05 1. 정의 -- 격리수준 조회 SELECT @@tx_isolation; -- 격리수준 설정 SET TRANSACTION ISOLATION LEVEL ; * READ UNCOMMITTED (커밋되지 않은 읽기) 가장 낮은 격리 수준으로 하나의 트랜잭션에서 변경한 데이터가 커밋되지 않았더라도 다른 트랜잭션에서 읽을 수 있습니다. 이로 인해 '더티 리드(Dirty Read)'와 같은 현상이 발생할 수 있으며, 다른 트랜잭션이 롤백될 경우 읽은 데이터도 롤백될 수 있습니다. 이 격리 수준은 데이터의 일관성과 고립성을 보장하지 않습니다. * READ COMMITTED (커밋된 읽기) 이 격리 수준에서는 커밋된 데이터만 다른 트랜잭션에서 읽을 수 있습니다. 따라서 '더티 리드(Dirty Read..
[MySQL] mysql 격리 수준 알아보기2023-08-05 1. 정의 -- 격리수준 조회 SELECT @@tx_isolation; -- 격리수준 설정 SET TRANSACTION ISOLATION LEVEL ; * READ UNCOMMITTED (커밋되지 않은 읽기) 가장 낮은 격리 수준으로 하나의 트랜잭션에서 변경한 데이터가 커밋되지 않았더라도 다른 트랜잭션에서 읽을 수 있습니다. 이로 인해 '더티 리드(Dirty Read)'와 같은 현상이 발생할 수 있으며, 다른 트랜잭션이 롤백될 경우 읽은 데이터도 롤백될 수 있습니다. 이 격리 수준은 데이터의 일관성과 고립성을 보장하지 않습니다. * READ COMMITTED (커밋된 읽기) 이 격리 수준에서는 커밋된 데이터만 다른 트랜잭션에서 읽을 수 있습니다. 따라서 '더티 리드(Dirty Read..
2023.08.05 -
2023-07-22 1. 방법 MySQL에서 decimal 타입 컬럼의 소수점 뒤에 자리가 있는지 여부를 확인하기 위해서는 SQL의 내장 함수인 MOD()를 사용할 수 있다. MOD() 함수는 첫 번째 인자를 두 번째 인자로 나눈 나머지를 반환하는 함수이며, 소수점 뒤에 자리가 있는 경우에는 해당 숫자를 1로 나눈 나머지가 0보다 크게 된다. SELECT * FROM your_table WHERE MOD(your_decimal_column, 1) > 0; 위 쿼리에서 your_table은 검색하려는 테이블 이름이며, your_decimal_column은 검사하려는 decimal 타입의 컬럼 이름이다. 쿼리는 your_decimal_column 값이 소수점 뒤에 자리가 있는 경우에만 조건에 만족하게 되어 ..
[MySQL] decimal 타입 컬럼의 소수점에 있는것만 조회 방법2023-07-22 1. 방법 MySQL에서 decimal 타입 컬럼의 소수점 뒤에 자리가 있는지 여부를 확인하기 위해서는 SQL의 내장 함수인 MOD()를 사용할 수 있다. MOD() 함수는 첫 번째 인자를 두 번째 인자로 나눈 나머지를 반환하는 함수이며, 소수점 뒤에 자리가 있는 경우에는 해당 숫자를 1로 나눈 나머지가 0보다 크게 된다. SELECT * FROM your_table WHERE MOD(your_decimal_column, 1) > 0; 위 쿼리에서 your_table은 검색하려는 테이블 이름이며, your_decimal_column은 검사하려는 decimal 타입의 컬럼 이름이다. 쿼리는 your_decimal_column 값이 소수점 뒤에 자리가 있는 경우에만 조건에 만족하게 되어 ..
2023.07.22 -
2023-07-18 1. 방법 MySQL 에서 조회하고자 하는 데이터의 존재 여부를 확인한 떄는 EXISTS() 함수를 활용하며 되면 사용 방법은 아래와 같다. select EXISTS (select id from `table_name` where `col_name`='search_value' limit 1) as exist; 결과 값이 1이면 존재하는 데이터이며, 0일 경우 없는 데이터라고 생각하면 된다. 메인 이미지 출처 : 사진: Unsplash의NEOM
[MySQL] 조회 데이터 존재 여부 확인 하는 방법2023-07-18 1. 방법 MySQL 에서 조회하고자 하는 데이터의 존재 여부를 확인한 떄는 EXISTS() 함수를 활용하며 되면 사용 방법은 아래와 같다. select EXISTS (select id from `table_name` where `col_name`='search_value' limit 1) as exist; 결과 값이 1이면 존재하는 데이터이며, 0일 경우 없는 데이터라고 생각하면 된다. 메인 이미지 출처 : 사진: Unsplash의NEOM
2023.07.18 -
2023-07-15 1. 방법 -- 실행쿼리 체크 select * from pg_stat_activity; -- 실행쿼리 체크 시간에 따른 오름차순 정렬 SELECT * FROM pg_stat_activity ORDER BY query_start ASC; 메인 이미지 출처 : 사진: Unsplash의NEOM
[Postgre-SQL] 현재 실행 중인 쿼리 확인 하는 방법2023-07-15 1. 방법 -- 실행쿼리 체크 select * from pg_stat_activity; -- 실행쿼리 체크 시간에 따른 오름차순 정렬 SELECT * FROM pg_stat_activity ORDER BY query_start ASC; 메인 이미지 출처 : 사진: Unsplash의NEOM
2023.07.15 -
2021-07-10 1. 방법 UPDATE 테이블명 SET 컬럼명 = TRIM(TRAILING '\n' FROM 컬럼명) WHERE 컬럼명 LIKE '%\n'; 이 쿼리는 TRIM() 함수와 TRAILING 키워드를 사용하여 컬럼의 맨 끝에 있는 줄바꿈 문자를 제거합니다. WHERE 절에서 LIKE 연산자와 '%\n' 조건을 사용하여 값에 줄바꿈 문자가 있는 경우에만 해당 업데이트가 수행됩니다. 주의할 점은 이 쿼리는 줄바꿈 문자가 정확히 '\n'인 경우에만 동작합니다. 만약 줄바꿈 문자가 '\r\n'이나 다른 형식으로 저장되어 있다면 해당 형식에 맞게 쿼리를 수정해야 합니다. 메인 이미지 출처 : 사진: Unsplash의Jaredd Craig
[MySQL] 줄바꿈 문자만 찾아 update 하는 방법2021-07-10 1. 방법 UPDATE 테이블명 SET 컬럼명 = TRIM(TRAILING '\n' FROM 컬럼명) WHERE 컬럼명 LIKE '%\n'; 이 쿼리는 TRIM() 함수와 TRAILING 키워드를 사용하여 컬럼의 맨 끝에 있는 줄바꿈 문자를 제거합니다. WHERE 절에서 LIKE 연산자와 '%\n' 조건을 사용하여 값에 줄바꿈 문자가 있는 경우에만 해당 업데이트가 수행됩니다. 주의할 점은 이 쿼리는 줄바꿈 문자가 정확히 '\n'인 경우에만 동작합니다. 만약 줄바꿈 문자가 '\r\n'이나 다른 형식으로 저장되어 있다면 해당 형식에 맞게 쿼리를 수정해야 합니다. 메인 이미지 출처 : 사진: Unsplash의Jaredd Craig
2023.07.10 -
2021-07-06 1. 방법 -- 예시 테이블 생성 CREATE TABLE my_table ( id INT PRIMARY KEY, name VARCHAR(50), age INT, address VARCHAR(100) ); -- age와 name 컬럼의 순서를 변경 ALTER TABLE my_table MODIFY COLUMN age INT AFTER name, MODIFY COLUMN name VARCHAR(50) AFTER id; 위의 예시에서는 ALTER TABLE 문을 사용하여 테이블 my_table의 구조를 변경합니다. MODIFY COLUMN 문을 사용하여 age 컬럼의 순서를 name 컬럼 바로 뒤로 변경하고, name 컬럼의 순서를 id 컬럼 바로 뒤로 변경합니다. 순서를 변경할 때 AFT..
[MySQL] 컬럼 순서 변경 하는 법2021-07-06 1. 방법 -- 예시 테이블 생성 CREATE TABLE my_table ( id INT PRIMARY KEY, name VARCHAR(50), age INT, address VARCHAR(100) ); -- age와 name 컬럼의 순서를 변경 ALTER TABLE my_table MODIFY COLUMN age INT AFTER name, MODIFY COLUMN name VARCHAR(50) AFTER id; 위의 예시에서는 ALTER TABLE 문을 사용하여 테이블 my_table의 구조를 변경합니다. MODIFY COLUMN 문을 사용하여 age 컬럼의 순서를 name 컬럼 바로 뒤로 변경하고, name 컬럼의 순서를 id 컬럼 바로 뒤로 변경합니다. 순서를 변경할 때 AFT..
2023.07.06 -
2023-06-12 1. 방법 간혹 컬럼에 유니크한 값을 넣는 와중에 Duplicate entry '중복된 값' for key '중복 컬럼' 같은 오류가 발생하곤 한다. 그중에서 문자는 같고 대소문자 여부만 다른 경우의 해결 방안을 알아보자. MySQL에서는 기본적으로 varchar 형은 대소문자 구분 없이 동일한 문자로 판단하기 때문에 대소문자 구분을 할 수 있게 옵션 값을 넣어 주어야 하는데 그 값이 binary 값이다. 해당 옵션을 부여하면, 동일한 문자열이더라도 대소문자가 다를 경우 다른 값으로 인식하여 Duplicate entry '중복된 값' for key '중복 컬럼'오류가 발생하지 않는다. ALTER TABLE 테이블명 MODIFY 컬럼명 varchar(길이) binary not null;..
[MySQL] 유니크 컬럼 대소문자 구분 안할 경우 해결 방법 Varchar2023-06-12 1. 방법 간혹 컬럼에 유니크한 값을 넣는 와중에 Duplicate entry '중복된 값' for key '중복 컬럼' 같은 오류가 발생하곤 한다. 그중에서 문자는 같고 대소문자 여부만 다른 경우의 해결 방안을 알아보자. MySQL에서는 기본적으로 varchar 형은 대소문자 구분 없이 동일한 문자로 판단하기 때문에 대소문자 구분을 할 수 있게 옵션 값을 넣어 주어야 하는데 그 값이 binary 값이다. 해당 옵션을 부여하면, 동일한 문자열이더라도 대소문자가 다를 경우 다른 값으로 인식하여 Duplicate entry '중복된 값' for key '중복 컬럼'오류가 발생하지 않는다. ALTER TABLE 테이블명 MODIFY 컬럼명 varchar(길이) binary not null;..
2023.06.12 -
2023-01-03 1. 방법 show processlis 가 아닌 SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST 쿼리를 통해 조건을 부여할 수 있다. ## 10초 이상 유지중인 프로세스 확인 SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST where Time > 10; ## 프로세스 할당중인 계정 확인 SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST where USER = '계정명'; ## 쿼리중인 프로세스 확인 SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST where COMMAND = 'Query'; 메인 이미지 출처 : Photo by Federico Bottos on..
[MySQL] show processlist 프로세스 where 적용하는 방법2023-01-03 1. 방법 show processlis 가 아닌 SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST 쿼리를 통해 조건을 부여할 수 있다. ## 10초 이상 유지중인 프로세스 확인 SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST where Time > 10; ## 프로세스 할당중인 계정 확인 SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST where USER = '계정명'; ## 쿼리중인 프로세스 확인 SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST where COMMAND = 'Query'; 메인 이미지 출처 : Photo by Federico Bottos on..
2023.01.04 -
2022-09-25 1. 방법 -- 현재 스키마 확인 SHOW search_path; -- 확인한 스키마 정보에서 새로운 스키마 정보로 변경 set search_path To "확인한 스키마 정보", public; select pg_reload_conf(); 기존의 스키마 정보를 우선적으로 확인한 후에 해당 정보를 기존에 등록되어 있는 스키마(public)와 변경해 주면 된다 메인 이미지 출처 : Photo by Yvon Hoogers on Unsplash
[Postgre-SQL] 현재 default 스키마 변경하는 방법2022-09-25 1. 방법 -- 현재 스키마 확인 SHOW search_path; -- 확인한 스키마 정보에서 새로운 스키마 정보로 변경 set search_path To "확인한 스키마 정보", public; select pg_reload_conf(); 기존의 스키마 정보를 우선적으로 확인한 후에 해당 정보를 기존에 등록되어 있는 스키마(public)와 변경해 주면 된다 메인 이미지 출처 : Photo by Yvon Hoogers on Unsplash
2022.09.25 -
2022-04-07 현재 MySQL 내에 저장된 이벤트 스케줄러를 확인하는 방법을 알아보자. - 명령어 SHOW EVENTS; 해당 명령어는 현재 DB에 등록된 이벤트 정보를 간단히 확인할 수 있다. 확인할 수 있는 내용으로는 DB명, 이벤트 이름, 이벤트 작성 계정, 타임존, 타입, 인터벌 값 , 인터벌 필드 값 ex) DAY, character set... 등을 확인할 수 있다. SELECT * FROM information_schema.EVENTS; 다음 이벤트의 좀 더 구체적인 정보를 확인할 수 있는 명령어이다. 기본적인 내용을 SHOW EVENT와 동일한 데이터를 보여주지만 추가적으로 이벤트 스케줄러 작성시 실제 쿼리가 동작하는 DO 이후에 쿼리문 또는 프로시저 정보를 확인할 수 있다. 메인 이..
[MySQL] 마이SQL 이벤트(event scheduler) 정보 확인하는 방법2022-04-07 현재 MySQL 내에 저장된 이벤트 스케줄러를 확인하는 방법을 알아보자. - 명령어 SHOW EVENTS; 해당 명령어는 현재 DB에 등록된 이벤트 정보를 간단히 확인할 수 있다. 확인할 수 있는 내용으로는 DB명, 이벤트 이름, 이벤트 작성 계정, 타임존, 타입, 인터벌 값 , 인터벌 필드 값 ex) DAY, character set... 등을 확인할 수 있다. SELECT * FROM information_schema.EVENTS; 다음 이벤트의 좀 더 구체적인 정보를 확인할 수 있는 명령어이다. 기본적인 내용을 SHOW EVENT와 동일한 데이터를 보여주지만 추가적으로 이벤트 스케줄러 작성시 실제 쿼리가 동작하는 DO 이후에 쿼리문 또는 프로시저 정보를 확인할 수 있다. 메인 이..
2022.04.07 -
2022-03-21 종종 Mysql 내부의 타임존의 다른 국가로 설정되어 있으면, DML 실행 및 이벤트 스케줄러 설정 시 문제가 발생할 수 있다. 이를 확인 변경하는 방법을 알아보자. - 확인 방법 SELECT @@GLOBAL.TIME_ZONE AS GLOBAL_TIME, @@SESSION.TIME_ZONE AS SESSION_TIME, @@SYSTEM_TIME_ZONE AS SYSTEM_TIME; 우선 확인하는 방법은 위와 같다. 순서대로 전체 DB의 글로벌 타임존 / 현재 접속 세션 / 시스템 시간 설정 정보를 확인할 수 있다. - 변경 방법 SET GLOBAL TIME_ZONE='Asia/Seoul'; 위와 같은 방법으로 간단히 변경할 수 있다. (RDS를 사용하는 유저라면 Amazon RDS >..
[MySQL] 마이SQL 타임존 확인하는 방법 time_zone2022-03-21 종종 Mysql 내부의 타임존의 다른 국가로 설정되어 있으면, DML 실행 및 이벤트 스케줄러 설정 시 문제가 발생할 수 있다. 이를 확인 변경하는 방법을 알아보자. - 확인 방법 SELECT @@GLOBAL.TIME_ZONE AS GLOBAL_TIME, @@SESSION.TIME_ZONE AS SESSION_TIME, @@SYSTEM_TIME_ZONE AS SYSTEM_TIME; 우선 확인하는 방법은 위와 같다. 순서대로 전체 DB의 글로벌 타임존 / 현재 접속 세션 / 시스템 시간 설정 정보를 확인할 수 있다. - 변경 방법 SET GLOBAL TIME_ZONE='Asia/Seoul'; 위와 같은 방법으로 간단히 변경할 수 있다. (RDS를 사용하는 유저라면 Amazon RDS >..
2022.03.21 -
2022-03-11 SELECT 쿼리 조회 시 NULL을 리턴하는 경우 어디서 예외처리를 하던 db 에서나 애플리케이션 단에서나 오류가 발생하게 된다. 이와 같은 SELECT 쿼리 조회시 발생할 수 있는 NULL처리를 간단히 하는 함수중 COALESCE에 대하여 알아보자. - 정의 COALESCE(x, y) = (CASE WHEN x IS NOT NULL THEN x ELSE y END) 공식문서에는 위와 같은 형식으로 간단히 그 의미를 표현하고 있다. 이를 해석하면 해당 함수의 매개 값 중 앞에 있는 값(X)이 NULL이 아니면 앞에 값(X)을 아닐 경우 다음 매개변수(Y)를 체크하여, 그 값을 리턴한다. 이해가 어려울 수 있으니 아래의 예시를 보자. - 예시 -- 1을 리턴한다. SELECT COAL..
[MySQL] 마이SQL COALESCE() 를 활용한 NULL 처리2022-03-11 SELECT 쿼리 조회 시 NULL을 리턴하는 경우 어디서 예외처리를 하던 db 에서나 애플리케이션 단에서나 오류가 발생하게 된다. 이와 같은 SELECT 쿼리 조회시 발생할 수 있는 NULL처리를 간단히 하는 함수중 COALESCE에 대하여 알아보자. - 정의 COALESCE(x, y) = (CASE WHEN x IS NOT NULL THEN x ELSE y END) 공식문서에는 위와 같은 형식으로 간단히 그 의미를 표현하고 있다. 이를 해석하면 해당 함수의 매개 값 중 앞에 있는 값(X)이 NULL이 아니면 앞에 값(X)을 아닐 경우 다음 매개변수(Y)를 체크하여, 그 값을 리턴한다. 이해가 어려울 수 있으니 아래의 예시를 보자. - 예시 -- 1을 리턴한다. SELECT COAL..
2022.03.11 -
2022-03-04 DB에 lock 걸리거나 잘못된 select 문으로 대량의 데이터를 불러올 경우 해당 쿼리문을 종료해야 되는 경우가 종종 있다. 이러한 경우에 어떻게 해결하는지 알아보자. - 해결방법 MySQL WrokBrench 든 어디든 해당 DB에 쿼리문을 작성하면 된다. 우선적으로 현재 실행중인 프로세스 정보를 확인한다. show processlist; 위의 명령어를 통해 프로세스 정보를 테이블 형태로 확인할 수 있으며, 자신의 종료하고자 하는 프로세스의 아이디 정보를 기억하자. 여러 컬럼 중 컬럼명 Id라고 나올 것이다. -- Id 값을 숫자 이다. kill 뒤에 자신의 종료하고자 하는 -- Id 즉 숫자로 넣어주면된다. kill 12345 이후 위와 같이 자신의 종료하고자 하는 프로세스의 ..
[MySQL] 마이SQL 실행중인 쿼리문 종료하기2022-03-04 DB에 lock 걸리거나 잘못된 select 문으로 대량의 데이터를 불러올 경우 해당 쿼리문을 종료해야 되는 경우가 종종 있다. 이러한 경우에 어떻게 해결하는지 알아보자. - 해결방법 MySQL WrokBrench 든 어디든 해당 DB에 쿼리문을 작성하면 된다. 우선적으로 현재 실행중인 프로세스 정보를 확인한다. show processlist; 위의 명령어를 통해 프로세스 정보를 테이블 형태로 확인할 수 있으며, 자신의 종료하고자 하는 프로세스의 아이디 정보를 기억하자. 여러 컬럼 중 컬럼명 Id라고 나올 것이다. -- Id 값을 숫자 이다. kill 뒤에 자신의 종료하고자 하는 -- Id 즉 숫자로 넣어주면된다. kill 12345 이후 위와 같이 자신의 종료하고자 하는 프로세스의 ..
2022.03.04 -
2022-02-28 페이징 처리에서 많이 사용되는 ROWNUM을 MySQL에서 사용하는 방법을 알아보도록 하자. - 사용법 mysql에서의 ROWNUM은 반드시 초기화해주는 과정이 필요하다. 이는 SELECT 절 호출 이전에 FROM이나 WHERE 절에서 초기화해주는데 상황에 맞게 사용해 주면 된다. - from에서 사용 select @rownum := @rownum + 1 rownumber, t.* from test t, (select @rownum := 0) rownum - where 에서 사용 select @rownum := @rownum + 1 rownumber, t.* from test t where(@rownum := 0) = 0; - 역순사용 역순 사용은 이미 호출된 ROWNUM을 서브 쿼리..
[MySQL] 마이SQL @ROWNUM 사용법 빠르게 알아보기2022-02-28 페이징 처리에서 많이 사용되는 ROWNUM을 MySQL에서 사용하는 방법을 알아보도록 하자. - 사용법 mysql에서의 ROWNUM은 반드시 초기화해주는 과정이 필요하다. 이는 SELECT 절 호출 이전에 FROM이나 WHERE 절에서 초기화해주는데 상황에 맞게 사용해 주면 된다. - from에서 사용 select @rownum := @rownum + 1 rownumber, t.* from test t, (select @rownum := 0) rownum - where 에서 사용 select @rownum := @rownum + 1 rownumber, t.* from test t where(@rownum := 0) = 0; - 역순사용 역순 사용은 이미 호출된 ROWNUM을 서브 쿼리..
2022.02.28 -
2022-02-11 - 날짜 8자리 표현 가장 많이 사용되는 표현 형태로 DATE(년/월/일) 관련 정보를 VARCHAR 형태로 저장할 때 많이 사용된다. SELECT DATE_FORMAT(NOW(),'%Y%m%d'); - 시간 6자리 표현 흔히 시/분/초의 형태로 6자리를 저장하는 방법이다. SELECT DATE_FORMAT(NOW(),'%H%i%s'); - 다양한 기호와 함께 사용 단순 숫자로만 표현하는 것이 아닌 다양한 기호와 함께 포함하여 사용할 수 도 있다. SELECT DATE_FORMAT(NOW(),'%Y-%m-%d'); -- 2022-02-11 SELECT DATE_FORMAT(NOW(),'%Y/%m/%d'); -- 2022/02/11 SELECT DATE_FORMAT(NOW(),'%Y~%..
[MySQL] 마이SQL DATE_FORMAT 활용법 (yyyyMMdd, hhmmss)2022-02-11 - 날짜 8자리 표현 가장 많이 사용되는 표현 형태로 DATE(년/월/일) 관련 정보를 VARCHAR 형태로 저장할 때 많이 사용된다. SELECT DATE_FORMAT(NOW(),'%Y%m%d'); - 시간 6자리 표현 흔히 시/분/초의 형태로 6자리를 저장하는 방법이다. SELECT DATE_FORMAT(NOW(),'%H%i%s'); - 다양한 기호와 함께 사용 단순 숫자로만 표현하는 것이 아닌 다양한 기호와 함께 포함하여 사용할 수 도 있다. SELECT DATE_FORMAT(NOW(),'%Y-%m-%d'); -- 2022-02-11 SELECT DATE_FORMAT(NOW(),'%Y/%m/%d'); -- 2022/02/11 SELECT DATE_FORMAT(NOW(),'%Y~%..
2022.02.11 -
2021-05-08 - 올림 CEIL -- 올림 10.54 구하기 답: 11 SELECT CEIL(10.54) FROM DUAL; -- 올림 10.33 구하기 답: 11 SELECT CEIL(10.33) FROM DUAL; CEIL이라는 숫자 함수를 사용 시 소솰호 안에 올림을 하고 싶은 실수를 넣어주면 된다. 소수점이 어떠한 경우에도 올림 처리가 되며 위의 예제는 결괏값이 모두 11이 나오게 된다. - 내림 FLOOR -- 내림 10.54 구하기 답: 10 SELECT FLOOR(10.54) FROM DUAL; -- 내림 10.33 구하기 답: 10 SELECT FLOOR(10.33) FROM DUAL; 내림의 기능을 하는 함수는 FLOOR로 CEIL 가 마찬가지로 소괄호 안에 내림을 하고 싶은 실수를..
[Oracle SQL] 오라클 올림/내림/절대값 구하는 방법 CEIL/FLOOR/ABS2021-05-08 - 올림 CEIL -- 올림 10.54 구하기 답: 11 SELECT CEIL(10.54) FROM DUAL; -- 올림 10.33 구하기 답: 11 SELECT CEIL(10.33) FROM DUAL; CEIL이라는 숫자 함수를 사용 시 소솰호 안에 올림을 하고 싶은 실수를 넣어주면 된다. 소수점이 어떠한 경우에도 올림 처리가 되며 위의 예제는 결괏값이 모두 11이 나오게 된다. - 내림 FLOOR -- 내림 10.54 구하기 답: 10 SELECT FLOOR(10.54) FROM DUAL; -- 내림 10.33 구하기 답: 10 SELECT FLOOR(10.33) FROM DUAL; 내림의 기능을 하는 함수는 FLOOR로 CEIL 가 마찬가지로 소괄호 안에 내림을 하고 싶은 실수를..
2021.05.08 -
2021-05-07 - 제곱 오라클에서 제곱을 구하는 방법은 POWER라는 함수를 사용하며, 두 가지 매개 값을 받는다. -- 2 의 4 제곱 구하기 답: 16 SELECT POWER(2, 4) 제곱 FROM DUAL; -- 3 의 3 제곱 구하기 답: 27 SELECT POWER(3, 3) 제곱 FROM DUAL; 위의 예제처럼 2와 4를 받으면 2의 4제곱을 구할 수 있다. - 제곱근 제곱근을 구하기 위해서는 SQRT 함수를 사용하며 매개 값은 제곱근을 구하기 위한 정수 하나를 받는다. 예제는 아래와 같다. -- 16 의 제곱근 구하기 답: 4 SELECT SQRT(16) 제곱근 FROM DUAL; -- 81 의 제곱근 구하기 답: 9 SELECT SQRT(81) 제곱근 FROM DUAL; 만약에 제..
[Oracle SQL] 오라클 제곱과 제곱근 구하기 POWER/SQRT2021-05-07 - 제곱 오라클에서 제곱을 구하는 방법은 POWER라는 함수를 사용하며, 두 가지 매개 값을 받는다. -- 2 의 4 제곱 구하기 답: 16 SELECT POWER(2, 4) 제곱 FROM DUAL; -- 3 의 3 제곱 구하기 답: 27 SELECT POWER(3, 3) 제곱 FROM DUAL; 위의 예제처럼 2와 4를 받으면 2의 4제곱을 구할 수 있다. - 제곱근 제곱근을 구하기 위해서는 SQRT 함수를 사용하며 매개 값은 제곱근을 구하기 위한 정수 하나를 받는다. 예제는 아래와 같다. -- 16 의 제곱근 구하기 답: 4 SELECT SQRT(16) 제곱근 FROM DUAL; -- 81 의 제곱근 구하기 답: 9 SELECT SQRT(81) 제곱근 FROM DUAL; 만약에 제..
2021.05.07 -
2021-04-23 간혹가다 기존의 외래키를 무시하고 해당 외래키가 참조하고 있는 기본키가 있는 테이블을 삭제해야 해야 하는 경우가 있다. 물론 특정 기본키만 삭제시 해당 기본키를 참조하는 테이블의 외래키에 ON DELETE 옵션을 주었거나 외래키 테이블의 데이터를 먼저 지우는 등 방법이 있겠지만 아주 간단히 코드 한 줄로 제거하는 방법도 있다. - 코드 바로 CASCADE CONSTRAINTS 키워드를 사용하는 것이다. DROP TABLE ["테이블명"] CASCADE CONSTRAINTS 코드 한줄로 모든 제약조건을 무시하고 현재 테이블은 물론 해당 테이블을 참조하는 다른 테이블들 역시 모두 제거가 된다. 때문에 반드시 참조여부를 확인하고 해당 코드를 사용해야하며, 사용시 백업을 해두고 사용하는 것이..
[Oracle SQL] 오라클 외래키 제약조건 무시하고 기본키 삭제하는법 CASCADE CONSTRAINTS2021-04-23 간혹가다 기존의 외래키를 무시하고 해당 외래키가 참조하고 있는 기본키가 있는 테이블을 삭제해야 해야 하는 경우가 있다. 물론 특정 기본키만 삭제시 해당 기본키를 참조하는 테이블의 외래키에 ON DELETE 옵션을 주었거나 외래키 테이블의 데이터를 먼저 지우는 등 방법이 있겠지만 아주 간단히 코드 한 줄로 제거하는 방법도 있다. - 코드 바로 CASCADE CONSTRAINTS 키워드를 사용하는 것이다. DROP TABLE ["테이블명"] CASCADE CONSTRAINTS 코드 한줄로 모든 제약조건을 무시하고 현재 테이블은 물론 해당 테이블을 참조하는 다른 테이블들 역시 모두 제거가 된다. 때문에 반드시 참조여부를 확인하고 해당 코드를 사용해야하며, 사용시 백업을 해두고 사용하는 것이..
2021.04.23 -
2021-04-22 오라클 내부에서 날짜 데이터를 비교하는 방법을 알아보자. 우선 사용할 방법은 문자 포맷으로 바꾸어주는 TO_CHAR를 이용해서 날짜를 비교할 것이다. - 예제 사용할 테이블은 SEE_INFO로 내용은 아래와 같다. - 상황 1 오늘 날짜 04/21 기준으로 생일이 지나지 않은 사람들만 출력하려고 한다. SELECT * FROM SEE_INFO WHERE TO_CHAR(SYSDATE, 'MM/dd')
[Oracle SQL] 오라클 날짜데이터 비교하는 법 알아보기2021-04-22 오라클 내부에서 날짜 데이터를 비교하는 방법을 알아보자. 우선 사용할 방법은 문자 포맷으로 바꾸어주는 TO_CHAR를 이용해서 날짜를 비교할 것이다. - 예제 사용할 테이블은 SEE_INFO로 내용은 아래와 같다. - 상황 1 오늘 날짜 04/21 기준으로 생일이 지나지 않은 사람들만 출력하려고 한다. SELECT * FROM SEE_INFO WHERE TO_CHAR(SYSDATE, 'MM/dd')
2021.04.22