본문 바로가기

IT_Developers/MySQL59

MySQL - 코멘트(comment)로 컬럼 찾기 안녕하세요. 고코더 입니다. MySQL 데이터베이스에서는 각 칼럼마다. 코멘트를 추가할 수 있습니다. 일명 칼럼에 대한 설명인데요. 이것을 통해 검색이 가능합니다. 사용법 ●1. 해당 SQL을 실행하면 MySQL에서 코멘트를 통해 찾기가 가능합니다. SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE 1=1 AND TABLE_SCHEMA = '스키마' AND COLUMN_COMMENT LIKE '%코멘트%' ●2. 스키마를 모른다면 comment만 검색해도 충분합니다. SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE 1=1 AND COLUMN_COMMENT LIKE '%코멘트%' 2021. 11. 16.
MySQL - NULL 기준으로 정렬하기 ORDER BY 컬럼 IS NULL ASC 안녕하세요. 고코더 입니다. 테이블을 조회할 때 Null 기준으로 데이터를 정렬하는 방법을 알아보겠습니다. NULL이 나중에 나오도록 정렬 ● 1. Null이 나중에 나오게 하는 방법입니다. 정렬하는 ORDER BY 절에 칼럼 뒤에 바로 "IS NULL ASC"를 붙여서 조회를 합니다. SELECT 컬럼 FROM 테이블 ORDER BY 컬럼 IS NULL ASC NULL이 먼저 나오도록 정렬 ● 2. 이번에는 반대로 Null이 먼저 나오게 하는 방법입니다. 정렬하는 ORDER BY 절에 칼럼 뒤에 바로 "IS NULL DESC"를 붙여서 조회를 합니다. SELECT 컬럼 FROM 테이블 ORDER BY 컬럼 IS NULL DESC NULL을 기준으로 코딩을 작성.. 2021. 11. 13.
MySQL - 랜덤 값 정수로 구하기 / RAND() 안녕하세요. 고코더 입니다. MYSQL에서 랜덤 값을 구하는 방법을 알아보겠습니다. RAND() 사용법 ● 1. 랜덤 숫자를 뽑는 함수는 RAND()입니다. SELECT RAND(); ● 2. 하지만 이 함수를 그냥 그대로 사용하면 이런 결과 값이 나타납니다. 정수로 랜덤 숫자를 구하는 법 ● 3. 이전에 배운 floor() 함수를 이용하여 정수를 구하는 방법은 이렇습니다. 아래처럼 식을 만들어서 100을 곱하면 100지의 랜덤 값이 노출됩니다. SELECT FLOOR(RAND() * 100); ● 4. 1,000,10,000까지의 랜덤 값을 구한다면 이렇게 하면 됩니다. SELECT FLOOR(RAND() * 1000); SELECT FLOOR(RAND() * 10000); 2021. 11. 13.
MySQL - 소수점 버림 / FLOOR 안녕하세요. 고코더 입니다. MySQL에서 종종 사용하는 소수점 버림 함수를 알아보겠습니다. 사용법 FLOOR() 함수는 "값 보다 작은 정수 중 가장 큰 수를 가져오는 함수"입니다. 그냥 쉽게 말하면 소수점 버림입니다. 예제를 보시겠습니다. select FLOOR(1.1), FLOOR(1.9), FLOOR(-1.9), FLOOR(-1.1); 결과 화면 차례대로 입력값 결과 값을 살펴보겠습니다. 소수점을 버리고 마이너스에서는 소수점 올림으로 보여줍니다. 1.1 -> 1 1.9 -> 1 -1.9 ->-2 -1.1-> -1 2021. 11. 13.
MySQL - 데이터베이스 컬럼명 검색하기 안녕하세요. 고코더 입니다. MySQL에서 테이블을 설계하고, 범위가 커지면 나중에는 어떤 칼럼이 있는지 헷갈릴 때가 있습니다. 그럴 땐 이 쿼리를 이용해 칼럼을 검색할 수 있습니다. 사용법 ● 1. 아래처럼 스키마, 테이블 칼럼명으로 검색하여 찾을 수 있습니다. "INFORMATION_SCHEMA.COLUMNS"에 모든 컬럼 정보가 들어있고 이를 찾는 것입니다. SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE 1=1 AND TABLE_SCHEMA='스키마' AND TABLE_NAME = '테이블' AND COLUMN_NAME = '컬럼명'; 더 간단하게 사용법 ● 2. 귀찮게 스키마, 테이블 정보는 제외하고 컬럼 네임을 like로 검색하면 좀 더 빠르게 찾을 수 있습.. 2021. 11. 13.
MySQL - now(), sysdate() 차이 안녕하세요. 고코더 입니다. now(), sysdate() 너무나도 비슷한 두 함수 ●1. MySQL을 쓰다보면 현재 시간을 가져올 때, 두 가지 함수가 있습니다. now(), sysdate()입니다. 대부분은 now()를 쓰는 경우가 많지만, 상황에 따라 sysdate()를 사용하는 경우도 발생합니다. 하지만 두 개의 함수는 닮아 있습니다. select now(),sysdate(); ●2. 해당 SQL을 실행하면 동일한 값이 나타납니다. 흡사 같은 기능의 함수인가 싶지만 아닙니다. 다른 게 있을까? ●3. 이번에는 아래 SQL을 실행해보겠습니다. sleep()을 이용하여, 3초 동안 쿼리를 멈춰 세웁니다. select sleep(3),now(),sysdate(); ●4. 이번에는 차이가 나타납니다. 3.. 2021. 11. 12.
MySQL - ERROR 1217(23000): Cannot delete or update a parent row: a foreign key constraint fails. / 외래키 제약 풀기 안녕하세요. 고코더 입니다. 오류 메시지 ●1. 데이터를 Delete 하던 중 이런 메시지를 만날 때가 있습니다. 해석 그대로 "상위 행을 삭제하거나 업데이트할 수 없습니다. 외래 키 제약 조건이 실패합니다."입니다. ERROR 1217(23000): Cannot delete or update a parent row: a foreign key constraint fails. @@foreign_key_checks ●2.외래 키가 걸린 데이터는 순차적으로 삭제해야 하지만 옵션을 해제하여 삭제가 가능합니다. 먼저 외래키 제한이 있는 조회 합니다. SELECT @@foreign_key_checks; ●3. 조회 해보면 대부분 1로 되어 있을 것입니다. foreign_key_checks 설정 ●3. 해당 설정을 .. 2021. 11. 12.
MySQL - You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column MYSQL 업데이트, 딜리트시에 나타나는 오류 안녕하세요. 고코더 입니다. ●1. update, delete 작업을 실행할 시 where 절이 없으면, 이런 메시지가 나타는 경우가 있습니다. 해석 그대로 "안전 업데이트 모드를 사용 중이고 KEY 열을 사용하는 WHERE 없이 테이블을 업데이트하려고 했습니다."라는 메시지입니다. You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column 해결 방법은 두 가지가 있습니다. 임시 해체 모드 ●2. SQL 상에서 임시로 해제가 가능합니다. 현재 세션에서만 한시적으로 where 절 없이 업데이트가 가능하도록 허용합니다. set sql_saf.. 2021. 11. 12.
MySQL - 오토커밋 설정, 해체하기 / AUTOCOMMIT, @@AUTOCOMMIT; MYSQL 오토커밋 변경하기 안녕하세요. 고코더 입니다. MySQL은 기본적으로 커밋 설정이 OFF 되어 있습니다. 그 말은 즉슨 데이터를 수정하면 즉시 반영된다는 말이죠. 오라클이랑은 기본 설정이 반대입니다. 그래서 이번 시간에는 오토커밋을 제어하는 방법을 알아보겠습니다. @@AUTOCOMMIT; ●1. 우선은 사용 중인 데이터베이스에서 오토 커밋 설정을 확인해야 합니다. 아래 SQL을 실행합니다. SELECT @@AUTOCOMMIT; ●2. 해당 결과 값입니다. 표시 내용은 0,1로 출력됩니다. 기본은 대부분 1로 되어 있을 것입니다. 0 - 오토커밋 설정 1 - 오토커밋 해제 SET AUTOCOMMIT ●3. 이번에는 오토커밋 속성을 변경해보겠습니다. 해당 명령어를 실행하면 현재 사용자의 오토커밋 .. 2021. 11. 12.