MySQL에서 datetime 타입의 컬럼 값이 오늘 날짜와 일치하는 레코드만 조회하고 싶다면, DATE(NOW()) 함수를 활용하면 됩니다. 아래는 기본적인 문법입니다.select * from yourTableName where DATE(yourColumnName) = DATE(NOW());예제 테이블 생성하기먼저 실습에 사용할 테이블을 생성해 보겠습니다.mysql> create table DemoTable706 ( UserId varchar(100), UserName varchar(100), UserS
MySQL에서 데이터를 정렬할 때 NULL 값이 포함된 컬럼을 다뤄야 하는 경우가 자주 있습니다. 이 글에서는 IS NULL 연산자와 ORDER BY 절을 활용해 NULL 값을 원하는 위치(맨 앞 또는 맨 뒤)로 정렬하는 방법을 단계별로 살펴보겠습니다.1. 테이블 생성하기먼저 예제에 사용할 테이블을 생성합니다.mysql> create table DemoTable707 ( StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY, StudentFirstName varchar(100)
MySQL에서 DATE_ADD() 함수와 INTERVAL 키워드를 활용하면 날짜 컬럼의 값을 원하는 만큼 손쉽게 증가시킬 수 있습니다. 이번 글에서는 실제 예제를 통해 날짜에 대한 간격 조건을 올바르게 구현하고, 특정 컬럼의 모든 값에 5개월씩 더하는 방법을 단계별로 살펴보겠습니다.1단계: 테이블 생성먼저 마감일(DueDate)을 저장할 테이블을 생성합니다.mysql> create table DemoTable (DueDate date);Query OK, 0 rows affected (0.92 sec)2단계: 데이터 삽입INSE
네, MySQL에서는 예약어(키워드)도 열의 별칭(Alias) 이름으로 사용할 수 있습니다. 단, 키워드를 별칭으로 지정할 때는 반드시 역따옴표(backtick, `)로 감싸주어야 합니다.기본 문법select yourColumnName AS `yourKeywordAsAliasName` from yourTableName;위 구문에서 yourKeywordAsAliasName 자리에 원하는 MySQL 키워드를 넣으면 됩니다.예제먼저 실습용 테이블을 생성하겠습니다.mysql> create table DemoTable (UserId i
MySQL에서 내림차순 정렬과 LIMIT 절 활용하기MySQL에서 결과를 내림차순으로 정렬하려면 DESC 키워드를 사용합니다. 여기에 LIMIT 절을 함께 사용하면 정렬된 결과 중 원하는 개수만큼의 레코드만 가져올 수 있습니다.기본 문법은 다음과 같습니다:SELECT * FROM yourTableName ORDER BY yourColumnName DESC LIMIT yourLimitNumber;이제 실제 예제를 통해 단계별로 살펴보겠습니다.1단계: 테이블 생성먼저 예제에 사용할 테이블을 생성합니다.mysql> create ta
MySQL에서 시간과 관계없이 날짜별로 그룹화하기 테이블에 같은 날짜가 서로 다른 시간 값으로 여러 번 저장되어 있는 경우, GROUP BY DATE()를 사용하면 시간은 무시하고 날짜 단위로 간단하게 그룹화할 수 있습니다. DATE() 함수는 DATETIME 값에서 날짜 부분만 추출해 주기 때문에, 이 함수를 GROUP BY 절에 적용하면 하루 안의 여러 레코드가 하나의 그룹으로 묶이게 됩니다. 1. 테이블 생성 먼저 예제에 사용할 테이블을 생성합니다. mysql> create table DemoTable692 (DueDat
MySQL 데이터베이스 목록 조회하기MySQL 서버에 현재 존재하는 모든 데이터베이스의 목록을 확인하려면 SHOW DATABASES 명령어를 사용합니다. 기본 문법은 다음과 같습니다.SHOW DATABASES;이 명령문은 접속한 MySQL 계정이 볼 수 있는 권한을 가진 모든 데이터베이스를 화면에 출력합니다.MySQL 서버 버전 확인하기현재 실행 중인 MySQL 서버의 버전을 확인하려면 VERSION() 함수를 사용합니다.SELECT VERSION();실제 실행 예제위에서 소개한 두 가지 구문을 실제로 실행해 보겠습니다.먼저 데이터
CREATE TABLE 문에서 When을 열 이름으로 사용할 수 있을까?MySQL에서 WHEN은 예약어(reserved word)로 지정되어 있기 때문에, 별도의 처리 없이 열 이름으로 사용하면 오류가 발생합니다. 먼저 예약어를 그대로 사용했을 때 어떤 일이 일어나는지 확인해 보겠습니다.1. 예약어를 그대로 사용한 경우아래와 같이 CREATE TABLE 문에서 when을 열 이름으로 지정해 보겠습니다.mysql> create table DemoTable693( StudentId int NOT NULL AUTO_INCREM
MySQL에서 첫 번째와 마지막 레코드 조회하기MySQL에서 테이블의 첫 번째 레코드와 마지막 레코드를 동시에 가져오려면 UNION을 사용하면 됩니다. 각 SELECT 문에 LIMIT를 적용해 원하는 개수만큼의 레코드를 추출한 뒤, 두 결과를 하나로 합치는 방식입니다.먼저 예제 테이블을 생성해 보겠습니다.mysql> create table DemoTable694 ( EmployeeId int NOT NULL AUTO_INCREMENT PRIMARY KEY, EmployeeName varchar(100),
MySQL에서는 COUNT(*) 함수의 결과에 별칭(alias)을 지정하면, 그 별칭이 마치 변수 이름처럼 동작하도록 활용할 수 있습니다. 이를 통해 테이블에 저장된 전체 레코드 수를 원하는 이름으로 깔끔하게 출력할 수 있습니다.기본 문법SELECT COUNT(*) AS anyAliasName FROM yourTableName;AS 키워드 뒤에 붙인 별칭이 결과 집합의 열 이름으로 표시되므로, 쿼리 결과를 읽기 쉽게 만들어 줍니다.1. 예제 테이블 생성먼저 실습용 테이블을 만들어 보겠습니다.mysql> CREATE TABLE
MySQL의 함수(Function)는 테이블을 반환할 수 없습니다. MySQL 함수는 문자열(string), 정수(integer), 문자(char) 등 스칼라 값만 반환할 수 있습니다. 따라서 테이블 형태의 결과 집합(ResultSet)을 반환하려면 함수가 아닌 저장 프로시저(Stored Procedure)를 사용해야 합니다.예제 테이블 생성하기먼저 예제로 사용할 테이블을 생성해 보겠습니다.mysql> create table DemoTable696 ( Id int, &nbs
MySQL에서 타임스탬프(timestamp) 값에 포함된 날짜 부분만 추출하고 싶다면 DATE() 함수를 사용하면 됩니다. 이 함수는 YYYY-MM-DD HH:MM:SS 형식의 날짜·시간 값에서 시간 정보를 제거하고 순수한 날짜(YYYY-MM-DD)만 반환해 줍니다.1. 예제 테이블 생성하기먼저 실습에 사용할 테이블을 생성해 보겠습니다.mysql> create table DemoTable697( Id varchar(100), Title varchar(100),&nbs
MySQL에서 NULL을 0으로 처리하여 두 열의 값 더하기MySQL에서 두 열의 값을 단순히 더하면 한쪽 열에 NULL이 있을 경우 결과 역시 NULL이 되어버립니다. 이러한 문제를 해결하려면 COALESCE() 함수를 사용하면 됩니다. COALESCE()는 전달된 인수 중 첫 번째로 NULL이 아닌 값을 반환하는 함수로, 이를 활용하면 NULL을 0으로 대체하여 정상적인 합계를 계산할 수 있습니다.먼저 예제에 사용할 테이블을 생성해 보겠습니다.mysql> create table DemoTable-> (-> Val
MySQL에서 특정 단어(값)가 열에 몇 번 나타나는지 확인하고 싶다면 COUNT() 함수를 활용하면 됩니다. 이 글에서는 예제 테이블을 만들고, 특정 직원 이름이 몇 번 등장하는지 단계별로 확인해 보겠습니다. 1. 테이블 생성하기 먼저 예제로 사용할 테이블을 생성합니다. mysql> create table DemoTable -> ( -> EmployeeId int NOT NULL AUTO_INCREMENT PRIMARY KEY, -> EmployeeName varchar(100)
초(second) 단위 데이터를 가장 가까운 반 분(0.5분, 즉 30초) 단위로 반올림하려면 MySQL의 CEILING() 함수를 활용하면 됩니다. CEILING()은 소수점 이하 값을 무조건 올림 처리하는 함수로, 이를 나눗셈과 조합하면 초 단위 값을 원하는 분 단위로 손쉽게 변환할 수 있습니다.먼저 예제에 사용할 테이블을 생성해 보겠습니다.mysql> create table DemoTable (secondValue int); Query OK, 0 rows affected (0.64 sec)예제INSERT 문을 사용하여 테
MySQL 테이블에서 자동 증가(AUTO_INCREMENT) 열의 값과 특정 텍스트를 연결한 결과를 별도의 열에 저장해야 하는 경우가 있습니다. 이럴 때 LAST_INSERT_ID() 함수를 활용하면 간단하게 해결할 수 있습니다. 먼저 예제에 사용할 테이블부터 생성해 보겠습니다.1단계: 테이블 생성하기자동 증가 기본 키인 UserId와, 연결된 문자열을 저장할 UserAutoIncrement 열로 구성된 데모 테이블을 만듭니다.mysql> create table DemoTable ( UserId int(6) un
MySQL에서 각기 다른 고정된 문자 수 조건에 맞는 레코드를 무작위로 추출하려면 CHAR_LENGTH() 함수와 RAND() 함수를 함께 활용할 수 있습니다. CHAR_LENGTH()는 문자열의 길이를 반환하고, RAND()는 무작위 정렬을 위해 사용됩니다.실제 동작 과정을 예제를 통해 단계별로 살펴보겠습니다.1. 테이블 생성먼저 테이블을 생성합니다.mysql> create table DemoTable (Subject text); Query OK, 0 rows affected (0.61 sec)2. 샘플 데이터 삽입inser
MySQL에서 대량의 데이터 중 원하는 범위의 행만 빠르게 가져오려면 인덱스와 ORDER BY, LIMIT 절을 함께 활용하는 것이 가장 효과적입니다. 이 글에서는 실제 예제를 통해 상위 N개 행을 효율적으로 선택하는 방법을 단계별로 살펴보겠습니다.1. 테이블 생성하기먼저 예제에 사용할 테이블을 생성합니다.mysql> create table DemoTable (StudentName varchar(100), StudentScore int); Query OK, 0 rows affected (0.66 sec)2. 샘플 데이터 삽입하
MySQL에서 컬럼 값에 포함된 공백(빈 칸)을 특정 문자로 바꾸려면 REPLACE() 함수를 사용하면 됩니다. REPLACE() 함수는 첫 번째 인자로 대상 문자열, 두 번째 인자로 찾을 문자열, 세 번째 인자로 교체할 문자열을 받아 모든 일치 항목을 한 번에 변경해 줍니다.먼저 예제에 사용할 테이블을 생성해 보겠습니다.mysql> create table DemoTable (Subject text);Query OK, 0 rows affected (0.86 sec)예제INSERT 명령을 사용하여 테이블에 몇 개의 레코드를 삽입
네, MySQL에서 CONCAT() 함수의 대안으로 CONCAT_WS() 함수를 사용할 수 있습니다. CONCAT_WS는 Concatenate With Separator(구분자를 사용한 문자열 연결)의 약자로, 첫 번째 인수에 지정한 구분자를 기준으로 여러 문자열을 하나로 합쳐 줍니다.CONCAT_WS()의 가장 큰 장점은 NULL 처리 방식입니다. 일반 CONCAT() 함수는 인수 중 하나라도 NULL이면 전체 결과가 NULL로 반환되지만, CONCAT_WS()는 NULL 값을 자동으로 건너뛰고 나머지 문자열을 정상적으로 연결해