MySQL 명령줄 도구 로그인에 인증이 필요한가요?네, MySQL 명령줄 도구(command line tool)에 로그인하려면 반드시 인증 과정을 거쳐야 합니다. MySQL은 기본적으로 사용자 계정과 비밀번호를 확인하는 보안 절차를 갖추고 있어, 허가된 사용자만 데이터베이스에 접근할 수 있습니다.예를 들어, Windows 명령 프롬프트(cmd)에서 MySQL에 로그인하려고 하면 매번 비밀번호 입력을 요구하는 메시지가 나타납니다. 이는 무단 접근을 방지하고 데이터베이스 보안을 유지하기 위한 필수적인 인증 단계입니다.로그인 방법명령줄에
배치 모드에서 MySQL을 실행하려면 먼저 .sql 파일을 생성해야 합니다. 이 파일에는 실행하고자 하는 MySQL 문(쿼리)이 담기게 됩니다.예를 들어 hh.sql이라는 파일에 다음과 같은 SELECT 문을 작성했다고 가정해 보겠습니다.select * from hh;배치 모드 실행 방법다음 명령어를 사용하면 이 파일을 배치 모드로 실행할 수 있습니다.예제C:\Program Files\MySQL\bin>mysql -u root -p gaurav < hh.sql Enter password: *****출력 결과id 1 2명령
MySQL에서 동일한 쿼리를 대화형(interactive) 모드로 실행하느냐, 아니면 배치(batch) 모드로 실행하느냐에 따라 기본 출력 형식이 달라집니다. 이 차이를 미리 알아 두면 스크립트 작성이나 쿼리 결과 처리 시 발생할 수 있는 혼란을 줄일 수 있습니다.대화형 모드에서의 출력 형식mysql 클라이언트에 직접 접속해 쿼리를 입력하는 대화형 모드에서는 결과가 표 형태의 테두리와 함께 출력됩니다. 예를 들어 다음 쿼리를 실행하면 아래와 같은 형식으로 결과가 표시됩니다.mysql> select * from hh; +---
MySQL을 배치(batch) 모드로 실행하면 기본적으로 쿼리 결과가 테두리 없는 탭(tab) 구분 형식으로 출력됩니다. 하지만 -t(--table) 옵션을 함께 사용하면, 배치 모드에서도 대화형(interactive) 모드에서 보던 것과 동일한 테이블 형식의 출력 결과를 얻을 수 있습니다.사용 예시아래 명령어처럼 SQL 파일을 배치 모드로 실행할 때 -t 옵션을 추가하면 됩니다.C:\Program Files\MySQL\bin>mysql -u root -p gaurav < hh.sql -t Enter password: *
MySQL 배치(batch) 모드에서 SQL 파일을 실행하면 기본적으로 쿼리 결과만 출력되고, 실제로 어떤 문이 실행되었는지는 화면에 나타나지 않습니다. 이때 -v 옵션을 사용하면 실행 중인 MySQL 문이 결과와 함께 함께 출력됩니다. 배치 모드에서 -v 옵션 사용하기 예를 들어, hh.sql 파일에 저장된 쿼리를 배치 모드로 실행하면서 -v 옵션을 추가하면 다음과 같이 실행된 문장과 그 결과가 함께 표시됩니다. C:\Program Files\MySQL\bin>mysql -u root -p gaurav < hh.sql
MySQL에서는 ALTER TABLE 문을 사용하여 테이블의 스토리지 엔진을 간단하게 변경할 수 있습니다. 아래 예시를 통해 구체적인 방법을 살펴보겠습니다.스토리지 엔진 변경하기다음과 같이 ALTER TABLE 문에 ENGINE 옵션을 지정하면 테이블의 스토리지 엔진을 원하는 엔진으로 변경할 수 있습니다.mysql> ALTER TABLE Student ENGINE = InnoDB;Query OK, 0 rows affected (0.90 sec)Records: 0 Duplicates: 0 Warnings: 0위 명령어를 실행하면
MySQL NOT LIKE 연산자란?MySQL의 NOT LIKE 연산자는 지정한 패턴의 문자열이 대상 문자열 안에 존재하지 않는지를 확인할 때 사용합니다. 즉, LIKE 연산자와 정반대의 역할을 수행하며, 특정 패턴이 포함되지 않은 데이터만 조회할 수 있습니다.기본 문법은 다음과 같습니다.NOT LIKE specific_pattern여기서 specific_pattern은 다른 문자열 내에서 찾고 싶지 않은 문자열의 패턴을 의미합니다.NOT LIKE 사용 예제예를 들어 학생 정보를 담고 있는 student_info 테이블이 있다고 가
따옴표로 묶인 문자열 안에서 숫자 앞에 Kg, Oz처럼 숫자가 아닌 텍스트가 포함된 경우, MySQL은 해당 숫자의 값을 단순히 0으로 평가합니다. 즉, 덧셈 연산 시 숫자가 아닌 텍스트가 앞에 붙어 있으면 그 값은 무시되고 0으로 처리됩니다.아래 예시를 통해 이러한 동작 방식을 쉽게 확인할 수 있습니다.예시mysql> Select Kg 1525 + Oz 200 As Total; +-------+ | Total | +-------+ | 0 | +-------+ 1 row in set, 2 warnings (0.00 se
MySQL에서 구분자를 활용한 문자열 결합 방법MySQL에서는 CONCAT_WS() 함수를 사용하면 구분자(separator)를 포함하여 두 개 이상의 문자열을 손쉽게 하나로 결합할 수 있습니다. 함수 이름의 WS는 With Separator의 약자로, 결합되는 문자열 사이에 지정한 구분자를 자동으로 삽입해 주는 역할을 합니다.CONCAT_WS() 함수 문법CONCAT_WS(구분자, 문자열1, 문자열2, ..., 문자열N)첫 번째 인수는 각 문자열 사이에 삽입될 구분자이며, 그 뒤에 오는 인수들은 하나의 문자열로 결합하고자 하는 값
MySQL 명령줄 도구 종료하기MySQL 명령줄 클라이언트에서 작업을 마친 후 Windows 명령 셸(명령 프롬프트)로 돌아가려면 EXIT 또는 QUIT 명령을 사용하면 됩니다. 두 명령은 동일한 기능을 수행하며, MySQL 세션을 안전하게 종료하고 원래의 셸 환경으로 복귀시켜 줍니다.EXIT 명령 사용하기mysql> EXITQUIT 명령 사용하기mysql> QUIT명령을 입력하고 Enter 키를 누르면 MySQL 모니터가 종료되고 다음과 같은 메시지와 함께 Windows 명령 셸로 돌아갑니다.Bye C:\>참고 사
따옴표로 묶인 문자열 형태의 숫자들을 더할 때, 그 문자열 안에 숫자가 아닌 텍스트가 포함되어 있다면 MySQL은 해당 문자열의 첫 번째 숫자만 사용하여 덧셈을 계산하고, 경고(warning)를 함께 반환합니다.MySQL은 문자열을 숫자로 변환할 때 문자열의 시작 부분부터 유효한 숫자 부분까지만 읽어들이기 때문입니다. 이러한 동작 방식은 다음 예시를 통해 확인할 수 있습니다.예시mysql> Select 1525 * 2 + 200 As Total; +-------+ | Total | +-------+ | 1725 | +----
MySQL은 별도의 외부 문서를 찾아볼 필요 없이 터미널에서 바로 서버 측 도움말을 확인할 수 있도록 HELP 명령어를 제공합니다. 이 명령어의 기본 문법은 다음과 같습니다.mysql> help 검색_문자열MySQL은 HELP 명령어의 인수를 검색 문자열로 사용하여 MySQL 참조 매뉴얼(Reference Manual)의 내용에 접근합니다. 만약 입력한 검색 문자열과 일치하는 항목이 없다면 해당 검색은 실패하게 되므로, 정확한 키워드를 입력하는 것이 중요합니다.사용 예시예를 들어 INTEGER 데이터 타입에 대한 서버 측 도움
MySQL에서 쿼리를 실행하면 단순히 결과만 반환되는 것이 아니라, 영향을 받은 행(row)의 개수와 쿼리 실행에 걸린 시간도 함께 출력됩니다. 이 두 가지 정보를 잘 활용하면 쿼리의 효율성과 서버의 전반적인 성능을 간접적으로 파악할 수 있습니다.실행 예시다음과 같이 간단한 테이블 생성 쿼리를 실행해 보겠습니다.mysql> create table e1(id int);Query OK, 0 rows affected (0.23 sec)출력 결과 해석하기위 출력 결과는 세 부분으로 나누어 해석할 수 있습니다.Query OK: 쿼리가
MySQL에는 문자열의 첫 글자만 대문자로 변환해 주는 단일 함수가 존재하지 않습니다. 따라서 여러 함수를 중첩하여 사용해야 하며, 이 경우 UPPER(), LOWER(), SUBSTRING() 함수를 조합하면 원하는 결과를 얻을 수 있습니다.예제 데이터 확인먼저 emp_tbl 테이블에 저장된 아래 데이터를 살펴보겠습니다.mysql> Select * from emp_tbl; +----+----------------+ | Id | Name | +----+----------------+ | 1 | rahul s
MySQL에서 날짜를 계산하는 주요 함수MySQL에서는 다양한 내장 함수를 활용해 날짜를 손쉽게 계산하고 추출할 수 있습니다. 대표적으로 사용되는 함수는 다음과 같습니다.CURDATE() 함수 – 현재 시스템(컴퓨터)의 오늘 날짜를 반환합니다.YEAR() 함수 – 지정한 날짜에서 연도(year) 값을 반환합니다.MONTH() 함수 – 지정한 날짜에서 월(month) 값을 반환합니다.DAY() 함수 – 지정한 날짜에서 일(day) 값을 반환합니다.RIGHT() 함수 – 주어진 날짜 값에서 지정한 개수만큼의 문자를 오른쪽부터 반환합니다
MySQL 서버에 성공적으로 접속한 후에는 실제로 작업을 진행할 데이터베이스를 반드시 선택해야 합니다. 하나의 MySQL 서버에는 여러 개의 데이터베이스가 동시에 존재할 수 있기 때문에, 어떤 데이터베이스에서 작업할지 먼저 지정해 주어야 하기 때문입니다.다행히 mysql> 프롬프트에서 데이터베이스를 선택하는 방법은 매우 간단합니다. SQL 명령어인 USE를 사용하면 되는데, 그 뒤에 사용하고자 하는 데이터베이스의 이름을 입력하기만 하면 됩니다.사용 문법USE 데이터베이스_이름;예제다음 예시에서는 TUTORIALS라는 이름의 데
MySQL에서 문자열의 길이를 비트(bit) 단위로 확인해야 할 때 BIT_LENGTH() 문자열 함수를 사용할 수 있습니다. 이 함수는 문자열이 실제로 몇 비트를 차지하는지 알려주기 때문에, 데이터 저장 크기를 계산하거나 바이트 기반 길이 함수와 비교할 때 유용하게 활용됩니다.함수의 기본 문법은 다음과 같습니다.BIT_LENGTH(Str)여기서 Str은 BIT_LENGTH 값을 구하고자 하는 대상 문자열을 의미하는 인수입니다. 인수로는 일반 문자열뿐 아니라 숫자열도 전달할 수 있으며, 문자열을 전달할 경우에는 반드시 따옴표()로
MySQL의 IFNULL() 함수와 NULLIF() 함수는 이름이 비슷해서 혼동하기 쉽지만, 사실 두 함수의 기능은 전혀 다릅니다. 흥미롭게도 두 함수의 문법 구조 자체는 거의 동일합니다.IFNULL() 함수의 문법IFNULL(expression1, expression2)NULLIF() 함수의 문법NULLIF(expression1, expression2)두 함수를 구별하는 핵심 포인트두 함수의 차이는 첫 번째 인수를 결과로 반환하는 조건에 있습니다.IFNULL(): 첫 번째 인수가 NULL이 아니면 첫 번째 인수를 그대로 반환합니다
MySQL은 기본적으로 문자열을 비교할 때 대소문자를 구분하지 않습니다. 하지만 이 동작은 변경할 수 있으며, 표현식 앞에 BINARY 키워드를 사용하면 대소문자를 구분하는(case-sensitive) 문자열 비교가 가능합니다.BINARY 키워드는 문자의 철자 자체가 아니라 각 문자의 내부적인 ASCII 값을 기준으로 비교하도록 MySQL에 지시합니다. 따라서 Ram과 RAM은 같은 이름이 아니라 서로 다른 값으로 처리됩니다.예제 데이터 확인다음과 같은 데이터를 가진 Employee 테이블을 통해 BINARY 키워드의 동작을 살펴보
MySQL은 기본 설정에서 문자열을 비교할 때 대소문자를 구분하는(case-sensitive) 비교를 수행하지 않습니다. 이는 사용된 문자셋의 콜레이션(collation)이 대소문자를 구분하지 않는 방식(예: utf8mb4_general_ci)으로 설정되어 있기 때문입니다. 따라서 Gaurav와 gaurav처럼 철자만 다른 문자열은 MySQL이 동일한 값으로 취급합니다.아래와 같은 데이터를 가진 Employee 테이블을 통해 이를 확인해 보겠습니다.mysql> Select * from Employee; +----+-------