MySQL에서는 UPDATE 문의 SET 절에 쉼표(,)로 구분하여 여러 열을 지정함으로써 두 개 이상의 열을 동시에 업데이트할 수 있습니다. 기본 문법은 다음과 같습니다.UPDATE 테이블이름 SET 열이름1 = 값1, 열이름2 = 값2 WHERE 조건;예제 테이블 생성하기문법을 실제로 이해하기 위해 먼저 예제 테이블을 만들어 보겠습니다. 아래 쿼리로 학생 정보 테이블을 생성합니다.mysql> create table StudentInformations -> ( -> StudentId int not n
MySQL의 AUTO_INCREMENT, SQL Server IDENTITY의 대응 기능Microsoft SQL Server의 IDENTITY 열에 해당하는 MySQL의 기능은 바로 AUTO_INCREMENT입니다. SQL Server의 IDENTITY가 자동으로 숫자를 증가시키듯, MySQL의 AUTO_INCREMENT도 동일한 역할을 수행합니다.기본 문법MySQL에서 AUTO_INCREMENT 열을 가진 테이블을 생성하는 기본 문법은 다음과 같습니다.CREATE TABLE yourTableName ( yourColumnN
MySQL에서는 SUBSTRING() 함수를 사용하여 SELECT 쿼리 결과로 반환되는 긴 텍스트 필드의 길이를 손쉽게 제한할 수 있습니다. 이 함수는 지정한 시작 위치부터 원하는 문자 수만큼만 잘라서 반환해 주기 때문에, 게시글 목록 화면 등에서 요약 텍스트를 표시할 때 특히 유용합니다.SUBSTRING() 기본 문법SELECT SUBSTRING(yourColumnName, 1, yourIntegerValueToGetTheCharacters) AS anyVariableName FROM yourTableName;위 문법에서 첫 번째
오류 1396(HY000)이 발생하는 이유MySQL에서 ERROR 1396 (HY000): Operation DROP USER failed 오류는 사용자 계정을 생성할 때 호스트를 %(모든 호스트 허용)로 지정했는데, 삭제할 때는 localhost로 지정하는 경우 발생합니다.MySQL은 사용자를 사용자 이름 + 호스트 조합으로 식별하기 때문에, Jack@%으로 생성된 계정과 Jack@localhost는 서로 다른 별개의 계정으로 취급됩니다. 따라서 존재하지 않는 계정을 삭제하려고 하면 위와 같은 오류가 나타나는 것입니다.오류 재현:
MySQL에서는 IN과 OUT 두 가지 매개변수를 사용하여 저장 프로시저(Stored Procedure)를 생성할 수 있습니다. IN은 프로시저 내부로 값을 전달하는 입력 매개변수이고, OUT은 처리 결과를 외부로 반환하는 출력 매개변수입니다.기본 문법매개변수가 있는 저장 프로시저의 기본 문법은 다음과 같습니다.DELIMITER // CREATE PROCEDURE yourProcedureName(IN yourParameterName dataType, OUT yourParameterName dataType ) BEGIN your
MySQL에서 sql_mode를 영구적으로 설정하는 방법MySQL의 sql_mode는 서버의 SQL 구문 처리 방식과 동작 규칙을 결정하는 중요한 설정 값입니다. 세션 단위로 변경할 수도 있지만, 서버를 재시작하면 설정이 초기화되기 때문에 영구적으로 적용하려면 설정 파일을 직접 수정해야 합니다.1단계: 데이터 디렉터리 확인Windows 운영체제를 사용하고 있다면 먼저 my.cnf 또는 my.ini 파일이 위치한 디렉터리를 확인해야 합니다. MySQL에서 다음 명령어를 실행하면 데이터 디렉터리 경로를 알 수 있습니다.mysql>
MySQL에서 특정 날짜의 하루 전, 즉 어제 날짜를 구하고 싶다면 subdate() 함수를 사용하면 됩니다. 이 함수는 지정한 날짜에서 원하는 만큼의 시간 간격을 빼주는 역할을 합니다.subdate() 함수 기본 문법SELECT SUBDATE(날짜컬럼명, INTERVAL 1 DAY) AS 별칭 FROM 테이블명;위 문법이 실제로 어떻게 동작하는지 예제 테이블을 만들어 단계별로 확인해 보겠습니다.1. 예제 테이블 생성먼저 datetime 타입의 컬럼을 가진 테이블을 생성합니다.mysql> CREATE TABLE Yesterda
MySQL에서 UNIX_TIMESTAMP 값을 저장할 때 가장 적합한 데이터 타입은 바로 정수형(Integer)입니다. 일반적으로 다음과 같이 선언합니다.int(11);정수형 데이터 타입은 >, <= 같은 조건 비교 연산과 인덱싱에 유용하게 활용됩니다. 또한 MySQL의 UNIX_TIMESTAMP() 함수는 기본적으로 정수를 반환하도록 설계되어 있기 때문에, 저장 공간과 성능 측면에서도 정수형이 가장 효율적인 선택입니다.DATETIME을 UNIX TIMESTAMP로 변환하면 어떤 값이 나올까?그렇다면 DATETIME 값을
MySQL에서 % 와일드카드는 문자열 검색 시 매우 유용한 도구입니다. % 와일드카드는 0개, 1개 또는 여러 개의 임의의 문자를 대체할 수 있어서, 부분 일치 검색에 활용됩니다. 이 와일드카드를 사용하려면 LIKE 연산자와 함께 사용해야 합니다.LIKE 연산자와 % 와일드카드 기본 문법SELECT * FROM yourTableName WHERE yourColumnName LIKE 조건%;위 문법에서 조건 뒤에 붙은 %는 해당 조건으로 시작하는 모든 문자열과 일치함을 의미합니다. 그럼 실제 예제를 통해 개념을 자세히 살펴보겠습니다.
SQLite 개요SQLite는 서버 없이 동작하는(serverless) 오픈 소스 데이터베이스로, 별도의 설치나 설정 과정이 필요하지 않습니다. 데이터베이스 전체가 하나의 디스크 파일로 저장되므로 운영체제 파일 시스템의 어느 위치에든 자유롭게 배치할 수 있습니다. SQLite의 명령어는 표준 SQL과 거의 유사하며, 웹 브라우저 같은 애플리케이션의 내부 데이터 저장소로 널리 사용되고 있습니다. 또한 임베디드 기기를 위한 간편한 데이터 저장 수단으로도 활용됩니다.파이썬의 sqlite3 모듈과 DB-API파이썬 표준 라이브러리에는 SQ
URL과 같은 문자열에서 마지막 인덱스, 즉 마지막 구분자 뒤에 있는 부분을 추출하려면 MySQL의 SUBSTRING_INDEX() 함수를 사용하면 됩니다. 이 함수는 지정한 구분자를 기준으로 문자열을 나누고, 원하는 위치의 값을 반환합니다.SUBSTRING_INDEX() 기본 문법SELECT yourColumnName1,...N,SUBSTRING_INDEX(yourColumnName,yourDelimiter,-1) as anyVariableName from yourTableName;세 번째 인자가 -1이면 구분자가 마지막으로 등장
개요 MySQL에서는 SUM()과 같은 집계 함수를 사용하지 않고도 여러 열(column)의 값을 손쉽게 더할 수 있습니다. 방법은 아주 간단합니다. SELECT 문에서 산술 연산자(+)로 원하는 열들을 직접 더한 뒤, 그 결과에 별칭(Alias)을 붙여 출력하면 됩니다. 기본 문법 SELECT *, (컬럼명1 + 컬럼명2 + 컬럼명3 + ...N) AS 별칭 FROM 테이블명; 예제 테이블 생성 문법을 이해하기 위해 먼저 예제 테이블을 만들어 보겠습니다. 학생별 과목 점수를 저장하는 테이블입니다. mysql> create
DDL(Data Definition Language, 데이터 정의 언어)은 테이블 생성, 수정, 삭제 등 데이터베이스 구조를 정의하는 데 사용되는 SQL 명령어 집합입니다. MySQL에서는 복잡한 절차 없이 단 하나의 쿼리만으로 특정 테이블의 전체 DDL을 손쉽게 확인할 수 있습니다. SHOW CREATE TABLE 명령어란? 쿼리를 통해 테이블의 DDL을 생성하려면 SHOW CREATE 명령어를 사용합니다. 기본 문법은 다음과 같습니다. SHOW CREATE TABLE yourTableName; 위 문법은 MySQL 전용으로 제공
MySQL에서 IN 절 값 순서대로 정렬하기MySQL에서 SELECT 문의 IN 절에 지정한 값들의 순서 그대로 조회 결과를 정렬하고 싶다면, FIELD() 함수를 ORDER BY 절과 함께 사용하면 됩니다. 일반적인 ORDER BY는 오름차순이나 내림차순으로만 정렬할 수 있지만, FIELD() 함수를 활용하면 개발자가 원하는 임의의 순서로 결과를 정렬할 수 있습니다.기본 문법SELECT * FROM yourTableName WHERE yourColumnName IN(Value1, Value2, Value3, ......N) ORD
MySQL 명령줄에서 레코드를 세로로 표시하는 방법MySQL 명령줄에서 쿼리 결과를 확인하다 보면, 컬럼이 많거나 값이 길어서 기본 테이블 형태의 출력이 화면에 제대로 들어오지 않는 경우가 있습니다. 이럴 때 유용한 방법이 바로 세미콜론(;) 대신 역슬래시 + G(\G)를 사용하는 것입니다.기본 문법\G를 쿼리 끝에 붙이면 각 레코드가 세로 방향으로 출력됩니다. 문법은 다음과 같습니다.SELECT *FROM yourTableName\G예제용 테이블 생성실제 동작을 이해하기 위해 먼저 테이블을 생성해 보겠습니다. 테이블 생성 쿼리는
MySQL 명령줄에서 데이터베이스 목록을 가로가 아닌 세로 형태로 깔끔하게 확인하고 싶다면, 쿼리 끝에 붙이는 세미콜론(;) 대신 역슬래시와 G를 조합한 \G를 사용하면 됩니다.기본 문법데이터베이스 이름을 세로로 출력하는 기본 문법은 다음과 같습니다.SHOW DATABASES \G사용 예시모든 데이터베이스 이름을 세로 형태로 표시하려면 아래와 같이 \G를 활용합니다.mysql> show databases\G실행 결과위 쿼리를 실행하면 각 데이터베이스가 행 단위로 구분되어 다음과 같이 출력됩니다.******************
MySQL 변수 선언의 두 가지 방식MySQL에서는 일반 쿼리 내에서 변수를 선언하고 활용할 수 있습니다. MySQL의 변수는 크게 두 가지 방식으로 선언할 수 있는데, 하나는 세션 변수(Session Variable)이고 다른 하나는 지역 변수(Local Variable)입니다.1. 세션 변수 선언 (@변수명)세션 변수는 @변수명 형태로 선언하며, SET 명령어를 사용해 값을 할당합니다. 세션 변수는 현재 접속 중인 세션 전체에서 유효하기 때문에 여러 쿼리에서 재사용할 수 있다는 장점이 있습니다.세션 변수를 생성하는 기본 문법은
MySQL에서 DECIMAL 값 삽입하기MySQL에 소수점 숫자를 저장하려면 테이블 컬럼을 정의할 때 DECIMAL(M, D) 데이터 타입을 사용해야 합니다. 여기서 M은 전체 자릿수(정수부 + 소수부), D는 소수점 이하 자릿수를 의미합니다.기본 문법yourColumnName DECIMAL(총 자릿수, 소수점 이하 자릿수);예를 들어 DECIMAL(4,2)로 선언하면 전체 4자리 중 소수점 둘째 자리까지 저장할 수 있으므로, 최대 99.99까지 표현 가능합니다.1단계: 테이블 생성문법을 이해하기 위해 실제로 테이블을 하나 만들어
MySQL에서 INSERT와 SELECT 문 결합하기MySQL에서는 INSERT 문과 SELECT 문을 결합하여 한 테이블의 데이터를 다른 테이블로 손쉽게 복사할 수 있습니다. 이 방법은 VALUES 절에 값을 일일이 나열하는 대신, 기존 테이블에서 조회한 결과를 그대로 새 테이블에 삽입할 때 매우 유용합니다.기본 문법은 다음과 같습니다.INSERT INTO 첫번째테이블명(컬럼명1, 컬럼명2, ...컬럼명N) SELECT 컬럼명1, 컬럼명2, ...컬럼명N FROM 두번째테이블명 WHERE 조건;위 문법을 실제로 이해하기 위해 두
MySQL에서 NOT NULL 제약 조건은 해당 컬럼에 반드시 값을 입력해야 함을 의미합니다. NOT NULL 컬럼은 크게 두 가지 상황에서 추가할 수 있습니다. 첫 번째는 테이블을 새로 생성할 때 함께 정의하는 방법이고, 두 번째는 이미 존재하는 테이블에 ALTER 명령으로 추가하는 방법입니다. Case 1. 테이블 생성 시 NOT NULL 컬럼 추가하기 테이블을 만드는 시점에 특정 컬럼에 NOT NULL 제약 조건을 지정하려면 아래와 같은 문법을 사용합니다. CREATE TABLE yourTableName ( you