본문 바로가기

mysql55

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 - 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 - 테이블의 사용중인 저장엔진 알아보는 방법 / information_schema.TABLES 안녕하세요. 고코더 입니다. 저장엔진의 대해서 설명을 하였습니다. 그리고 이번 시간에는 데이터베이스의 테이블에서 사용중인 저장엔진을 알아보는 방법을 알아보겠습니다. ●1. 사용법은 "information_schema.TABLES" 을 이용합니다. 해당 테이블을 테이블의 정의 및 정보를 알 수 있는데 여기에 바로 저장엔진도 표시가 됩니다. SELECT engine FROM information_schema.TABLES where table_name='테이블'; ●2. 실행 후에 나타난 모습입니다. 해당 테이블의 저장엔진을 확인할 수 있습니다. ●3. 간혹 테이블에 트랜젝션이 실행되지 않는다면 해당 방법을 통해 InnoDB가 맞는지 확인해보세요. 2021. 11. 12.
MySQL - 쿼리를 지연 시키기 / SLEEP() 의도적으로 쿼리 지연 시키는 함수 안녕하세요. 고코더 입니다. 쿼리를 의도적으로 중단시켰다가 다시 실행할 수 있는 함수가 있습니다. 바로 SLEEP() 입니다. 이름 그대로 잠깐 잠들었다 진행되게 만드는 역할을 합니다. 사용법 ● 1. 해당 SQL을 실행하면 'start'가 표시되고 10초 후에 End가 표시됩니다. 중간이 끼어든 sleep() 함수가 잠깐 멈추고 진행시키게 때문입니다. SELECT 'Start'; DO SLEEP(10); SELECT 'End'; 사용하는 이유? ● 2. 사실 대부분 테스트 용도로 많이 사용하게 됩니다. 중간에 실행되는 쿼리를 살펴보고 싶거나 결과를 확인하고 넘어가고 싶을때 사용하기도 합니다. 그리고 실무에서는 아직 한번도 사용해서 개발을 해본적은 없지만 필요한 경우는 .. 2021. 11. 12.
MySQL - 저장 엔진(Storage Engine)이란? / 대표적인 종류와 실무에서 간단 사용법 안녕하세요. 고코더 입니다. 저장 엔진이란? 파일의 접근이다. ● 1. 저장엔진 일명 "스토리지 엔진"은 데이터베이스에서 데이터를 접근하는 방식에 대해 말합니다. Mysql에서 테이블을 생성하면 실제로 서버상에는. frm이라는 파일을 생성합니다. 이 파일에 접근하는 속성을 설정하는 것이 바로 저장 엔진입니다. 실제로 파일도 읽기 전용 파일, 수정 가능한 파일로 속성을 정할 수 있는 것처럼 저장 엔진도 이 파일에 대한 접근방식을 말합니다. 스토리지 엔진의 특성에 따라 데이터 접근, 안정성, 트랜잭션 등의 기능의 차이점가 발생합니다. 즉 다시 정리하면 "서버 엔진이 필요한 물리적인 데이터를 가져오는 장치"입니다. 대표적인 저장 엔진의 종류 저장 엔진 설명 특징 트랜젝션 여부 ISAM MySQL 5.0 이전에.. 2021. 11. 12.
MySQL - 테이블 생성 스크립트 확인하기 / SHOW CREATE TABLE 특정 테이블 만드는 SQL 확인하기 안녕하세요. 고코더 입니다. ● 1. MySQL에서는 특정 테이블의 생성 스크립트를 확인할 수 있는 방법이 있습니다. 바로 SQL처럼 "SHOW CREATE TABLE" 이라는 명령어를 통해 확인이 가능합니다. SHOW CREATE TABLE "테이블명"; ● 2. 해당 쿼리문을 실행하면 생성 쿼리를 확인이 가능합니다. create Table 칼럼에 노출된 텍스트를 활용하여 똑같은 테이블을 생성할 수 있습니다. 2021. 11. 9.
MySQL - 컬럼 not null 로 변경하기 / alter table 컬럼 속성을 not null -> null 안녕하세요. 고코더 입니다. 테이블을 사용할 때 기본 속성은 null을 허용합니다. 하지만 간혹 생성 후에 not null 일명 null 값이 들어가지 못하게 하도록 변경할 때가 있습니다. 방법은 아주 간단하나 자주 까먹어서 남겨봅니다. ● 1. 해당 SQL을 확인해보세요. alter table을 선언하고 필요한 옵션을 바꿉니다. 맨 마지막에 not null을 추가로 입력해주면 완료입니다. alter table GOODS modify column name varchar(50) not null ● 2. 반대로 다시 null을 허용하고 싶다면? 이런 식으로 not null을 지워서 기본 옵션으로 돌아가면 됩니다. alter table GOODS modify colu.. 2021. 11. 8.