따옴표로 묶인 두 숫자를 더하려고 한다는 것은, 곧 문자열을 숫자로 취급하겠다는 의미입니다. 이 경우 MySQL은 해당 문자열 값을 가장 가까운 숫자 값으로 자동 변환한 뒤 산술 연산을 수행하고 그 결과를 반환합니다.MySQL의 암시적 타입 변환(implicit type conversion) 덕분에 별도의 형 변환 함수 없이도 문자열 형태의 숫자를 바로 계산에 사용할 수 있습니다.예제mysql> Select 1525 + 200 As Total; +-------+ | Total | +-------+ | 1725 | +-----
스토리지 엔진(Storage Engine)이란?스토리지 엔진은 데이터베이스 관리 시스템(DBMS)이 데이터 삽입(Create), 조회(Read), 수정(Update), 삭제(Delete)와 같은 다양한 SQL 연산을 처리하기 위해 사용하는 소프트웨어 구성 요소입니다. 쉽게 말해, DBMS가 데이터베이스 내부의 정보를 실제로 저장·관리하도록 하는 핵심 모듈이라고 할 수 있습니다.가장 널리 사용되는 스토리지 엔진은 InnoDB이며, MySQL 5.5 이상 버전에서는 기본 스토리지 엔진으로 채택되고 있습니다. 그 이전 버전(MySQL 5
MySQL에서 문자열 형태의 숫자, 즉 따옴표 안에 포함된 숫자끼리 덧셈을 수행할 때, 숫자 뒤에 숫자가 아닌 텍스트(Kg, Oz 등의 단위)가 붙어 있으면 어떻게 처리될까요?MySQL은 이런 경우 숫자가 아닌 텍스트 부분을 단순히 버리고(discard), 숫자 값만 추출하여 덧셈을 수행합니다. 다만 결과는 정상적으로 반환되지만 경고(warning)가 함께 발생한다는 점에 유의해야 합니다.예제아래 예제는 1525 Kg과 200 Oz라는 문자열을 더하는 상황을 보여줍니다. 각 문자열에는 숫자 뒤에 단위 텍스트가 포함되어 있습니다.my
MySQL 테이블 생성 시 스토리지 엔진 지정하기MySQL에서 테이블을 생성할 때는 별도의 설정이 없으면 기본 스토리지 엔진인 InnoDB가 자동으로 적용됩니다. 하지만 특정 테이블에 다른 스토리지 엔진을 사용하고 싶다면, CREATE TABLE 문 마지막에 ENGINE 키워드를 추가하여 원하는 엔진을 직접 지정할 수 있습니다.사용 예제mysql> CREATE TABLE Student(id INTEGER PRIMARY KEY, Name VARCHAR(15))-> ENGINE = MyISAM;Query OK, 0 rows
MySQL에서 테이블의 스토리지 엔진 확인하기MySQL에서는 information_schema.TABLES 뷰를 조회하여 특정 테이블이 어떤 스토리지 엔진을 사용하고 있는지 간단히 확인할 수 있습니다.다음 MySQL 쿼리는 tutorial 데이터베이스에 있는 Student 테이블에 적용된 스토리지 엔진을 조회합니다.mysql> SELECT ENGINE FROM information_schema.TABLES-> WHERE TABLE_SCHEMA = tutorial-> AND TABLE_NAME = Student;+--
MySQL에서 현재 작업 중인 데이터베이스가 아닌 다른 데이터베이스에 저장된 테이블의 열 목록을 확인해야 할 때가 있습니다. 이 경우 SHOW COLUMNS 문에 IN 절을 함께 사용하면 간단하게 해결할 수 있습니다.구문기본적인 구문은 다음과 같습니다.SHOW COLUMNS FROM tab_name IN db_name각 요소의 의미는 다음과 같습니다.tab_name: 열 목록을 조회하려는 테이블의 이름입니다.db_name: 해당 테이블이 저장되어 있는 데이터베이스의 이름입니다.사용 예시다음 예제에서는 현재 query 데이터베이스를
MySQL에 새로운 사용자를 추가하려면 mysql 데이터베이스의 user 테이블에 새 레코드를 추가하기만 하면 됩니다. 아래 예제를 통해 그 과정을 자세히 살펴보겠습니다.예제: 새 사용자 추가하기다음은 SELECT, INSERT, UPDATE 권한을 가진 새 사용자 guest를 비밀번호 guest123으로 추가하는 SQL 쿼리 예제입니다.root@host# mysql -u root -p Enter password:******* mysql> use mysql; Database changed mysql> INSERT INT
MySQL에서는 GRANT SQL 명령문을 사용하여 새로운 사용자 계정을 간편하게 추가할 수 있습니다. GRANT 문은 사용자에게 특정 데이터베이스나 테이블에 대한 권한을 부여하는 동시에, 해당 사용자 계정이 아직 존재하지 않는 경우 자동으로 계정을 생성해 주는 편리한 기능을 제공합니다.예제다음 예제에서는 TUTORIALS라는 이름의 특정 데이터베이스에 대해, 비밀번호가 zara123인 사용자 Zara를 추가하는 과정을 살펴보겠습니다.root@host# mysql -u root -p password; Enter password:**
MySQL의 집계 함수를 IF() 함수와 함께 사용하면 원하는 특정 결과를 손쉽게 얻을 수 있습니다. 조건에 따라 데이터를 분류하거나 카운트해야 하는 상황에서 특히 유용한 기법입니다. 아래에서는 SUM()과 COUNT() 집계 함수를 IF() 함수와 결합한 실제 예시를 살펴보겠습니다.SUM() 함수와 IF() 함수의 결합mysql> Select SUM(IF(Language = English, 1, 0)) As English, SUM(IF(Language <> English,1,0)) AS Non-English fro
명령 프롬프트(터미널)에서 mysql 바이너리를 사용하면 별도의 GUI 도구 없이도 MySQL 데이터베이스를 손쉽게 설정하고 관리할 수 있습니다. 아래 예제를 통해 접속 과정을 단계별로 살펴보겠습니다.MySQL 서버 접속하기명령 프롬프트에서 다음 명령어를 입력하면 MySQL 서버에 접속할 수 있습니다.[root@host]# mysql -u root -p Enter password:******-u 옵션은 접속할 사용자 계정을 지정하고, -p 옵션은 비밀번호 입력을 요청합니다. 비밀번호를 올바르게 입력하면 mysql> 프롬프트가
MySQL에서 데이터베이스를 생성하거나 삭제하려면 특별한 관리자 권한이 필요합니다. 일반적으로 root 계정 또는 그에 준하는 권한을 가진 사용자만 데이터베이스 생성 작업을 수행할 수 있습니다.MySQL 서버에 직접 접속하지 않고도 mysqladmin 바이너리를 사용하면 간단하게 새 데이터베이스를 만들 수 있습니다.기본 문법[root@host]# mysqladmin -u root -p create db_name Enter password:******여기서 db_name은 생성하고자 하는 데이터베이스의 이름입니다. -u root는 r
MySQL의 CASE 문은 SELECT 절이나 WHERE 절과 같은 쿼리 내부에서 조건 분기를 처리할 수 있게 해주는 강력한 제어 흐름 함수입니다. 프로그래밍 언어의 if-else 구문과 유사한 역할을 하며, 상황에 따라 서로 다른 값을 반환하도록 로직을 구성할 수 있습니다.MySQL에서 CASE 문은 크게 두 가지 문법으로 나뉩니다. 각각의 문법과 동작 방식을 자세히 살펴보겠습니다.문법 1: 값 비교 방식 (Simple CASE)CASE val WHEN compare_val1 THEN result1 WHEN compare_val2
MySQL에서 데이터베이스를 생성하거나 삭제하려면 특별한 관리자 권한이 필요합니다. 이 글에서는 mysqladmin 바이너리를 사용하여 기존 데이터베이스를 삭제하는 방법을 단계별로 살펴봅니다.기본 구문mysqladmin을 이용해 데이터베이스를 삭제하는 기본 구문은 다음과 같습니다.[root@host]# mysqladmin -u root -p drop db_name Enter password:******여기서 db_name은 삭제하고자 하는 데이터베이스의 이름입니다. -u root 옵션은 root 계정으로 접속한다는 의미이며, -p
MySQL의 CASE 문은 조건에 따라 서로 다른 값을 반환할 수 있는 강력한 제어문입니다. 특히 CASE 문 내부에 테이블의 열(column) 데이터를 활용하면 조건부 집계를 매우 손쉽게 구현할 수 있습니다. 이해를 돕기 위해 Students 테이블의 데이터를 먼저 살펴보겠습니다.mysql> Select * from Students; +----+-----------+-----------+----------+----------------+ | id | Name | Country | Language | Course
MySQL의 CASE 문은 WHEN 절의 어떤 비교 조건도 참이 아닐 경우, ELSE 절 뒤에 지정된 결과값을 반환하도록 설계되어 있습니다. 그렇다면 만약 ELSE 문 자체가 존재하지 않는다면 어떻게 될까요? 이런 상황에서 CASE 문은 아무 값도 반환하지 못하고 NULL을 반환하게 됩니다. 아래 예제를 통해 이 동작 방식을 자세히 살펴보겠습니다.예제 1: ELSE 절 없이 단순 값 비교하기mysql> Select CASE 100 -> WHEN 150 THEN It is matched -> WHEN 2
두 번째 인수에 음수 값을 지정했을 때의 동작MySQL의 TRUNCATE() 함수는 숫자를 지정한 자릿수까지 버림(절삭)하는 함수입니다. 이때 두 번째 인수(D)에 음수 값을 지정하면 소수점 아래 자릿수가 아니라 소수점 앞의 정수 부분 자릿수가 반올림 없이 그대로 잘려나갑니다. 삭제되는 자릿수는 두 번째 인수의 음수 값 크기에 따라 결정되며, 남는 자릿수는 0으로 채워집니다.아래 예제들을 통해 두 번째 인수의 음수 값에 따라 TRUNCATE() 함수의 출력이 어떻게 달라지는지 확인해 보겠습니다.예제 1: 두 번째 인수가 -1인 경우
MySQL에서 숫자를 다른 숫자만큼 거듭제곱하려면 POWER() 함수를 사용하면 됩니다. POW() 함수는 POWER() 함수와 동일한 기능을 수행하는 동의어(synonym)로, 두 함수는 완전히 같은 방식으로 작동합니다.이 함수들은 두 개의 인수를 받으며, 첫 번째 인수는 밑(base) 역할을 하고, 두 번째 인수는 지수(exponent) 역할을 합니다.기본 문법POWER(M, N)각 인수의 의미는 다음과 같습니다.M: 거듭제곱의 밑이 되는 숫자입니다.N: 거듭제곱의 지수가 되는 숫자입니다.사용 예시아래 예시에서는 2의 3제곱(2
MySQL의 POWER() 함수는 특정 숫자의 거듭제곱을 계산할 때 사용됩니다. 이 함수를 테이블 컬럼의 데이터 값에 적용하려면 첫 번째 인수인 밑(base) 자리에 컬럼 이름을 지정하고, 두 번째 인수인 지수(exponent) 값은 직접 지정해 주면 됩니다.예시 테이블 준비아래와 같은 구조의 Employee 테이블이 있다고 가정해 보겠습니다.mysql> Select * from Employee; +----+--------+--------+ | ID | Name | Salary | +----+--------+--------
MySQL에서는 하나의 함수를 다른 함수의 인수(argument)로 전달하는 방식으로 여러 함수를 결합할 수 있습니다. 이러한 기법을 함수의 중첩(Nesting)이라고 부르며, SQL 문장을 더 간결하고 효율적으로 작성하는 데 유용하게 활용됩니다.함수 중첩의 기본 원리중첩된 함수는 안쪽에 위치한 함수부터 먼저 실행되며, 그 결과값이 바깥쪽 함수의 입력값으로 전달됩니다. 즉, 내부 함수의 반환 값이 외부 함수의 인수가 되는 구조입니다.아래 예제를 통해 함수 중첩이 실제로 어떻게 동작하는지 확인해 보겠습니다.mysql> Selec
MySQL에서 불리언 값 다루기MySQL에는 독립적인 BOOLEAN 데이터 타입이 존재하지 않습니다. 그러나 TRUE 또는 true, FALSE 또는 false 키워드를 사용하면 SQL 문장에서 불리언(Boolean) 값을 손쉽게 입력할 수 있습니다.내부적으로 MySQL은 TRUE를 1로, FALSE를 0으로 처리합니다. 즉, 불리언 값은 사실상 정수 형태로 저장되고 반환됩니다.예제mysql> Select TRUE,FALSE; +------+-------+ | TRUE | FALSE | +------+-------+ |