Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL

  1. MySQL에서 'ñ' 검색 시 'n'이 포함된 레코드를 제외하는 방법

    개요MySQL에서 ñ 문자를 검색할 때 기본 콜레이션(collation) 설정에 따라 의도치 않게 n이 포함된 모든 레코드까지 함께 반환되는 경우가 있습니다. 이 문제를 해결하려면 COLLATE utf8_spanish_ci를 사용하여 스페인어 콜레이션 규칙을 적용하면 됩니다. 스페인어 콜레이션에서는 ñ와 n을 서로 다른 문자로 구분하기 때문에 정확한 검색 결과를 얻을 수 있습니다.기본 문법select *from yourTableName where yourColumnName LIKE %ñ% COLLATE utf8_spanish_ci;

  2. MySQL 테이블 생성 시 AUTO_INCREMENT 설정을 잊었다면? ALTER TABLE로 나중에 추가하는 방법

    결론부터 말씀드리면, 테이블을 만든 후에도 AUTO_INCREMENT를 설정할 수 있습니다. MySQL의 ALTER TABLE 문을 사용하면 됩니다. 이 글에서는 AUTO_INCREMENT 설정을 잊은 상황을 가정하고, 이를 나중에 추가하고 정상적으로 동작하는지까지 단계별로 확인해 보겠습니다. 1단계: AUTO_INCREMENT 없이 테이블 생성하기 먼저 AUTO_INCREMENT를 설정하지 않은 상태로 테이블을 생성해 보겠습니다. 아래 예제에서는 StudentId와 StudentName 두 개의 컬럼만 가진 테이블을 만듭니다.

  3. MySQL Workbench DECLARE 구문 오류 해결 방법 완벽 가이드

    MySQL에서 DECLARE 구문 오류가 발생하는 이유MySQL에서 저장 프로시저(Stored Procedure)를 작성할 때 DECLARE 구문 오류가 자주 발생합니다. 가장 흔한 원인은 DECLARE 문이 반드시 BEGIN과 END 블록 사이에 위치해야 한다는 규칙을 지키지 않기 때문입니다.DECLARE 기본 문법DECLARE는 변수를 선언하는 구문으로, 다음과 같이 BEGIN과 END 사이에 작성해야 합니다.BEGIN DECLARE 변수명1 데이터타입; DECLARE 변수명2 데이터타입; ... ENDDECLARE 구문 오류를

  4. MySQL 테이블에서 날짜를 참조하는 고유 키 생성 방법

    날짜를 참조하는 고유 키란?MySQL 테이블에서 날짜 컬럼을 참조하는 고유 키(Unique Key)를 생성하려면 두 개 이상의 컬럼을 조합한 복합 고유 키(composite unique key)를 사용해야 합니다. 예를 들어, 동일한 클라이언트가 같은 마감일로 중복 등록되는 것을 방지하고 싶다면 ID 컬럼과 날짜 컬럼을 함께 묶어 고유 제약 조건을 설정하면 됩니다.기본 문법다음은 날짜를 참조하는 고유 키를 생성하는 기본적인 CREATE TABLE 문법입니다.CREATE TABLE yourTableName ( yourIdCol

  5. MySQL에서 SET 값에 '+0'을 더하면 무엇이 될까? — SET 타입의 정수 변환 원리

    MySQL에서 SET 타입 컬럼에 +0을 더하면 해당 SET 값이 정수(비트마스크 값)로 변환됩니다. SET 타입은 내부적으로 각 멤버를 비트(bit)로 관리하기 때문인데, 이를 숫자로 확인할 수 있는 아주 유용한 방법입니다.예제 테이블 생성먼저 예제로 사용할 테이블을 만들어 보겠습니다.mysql> create table SetZeroDemo -> ( -> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, -> TechnicalSkills set(C,Spring

  6. MySQL 자동 증분(AUTO_INCREMENT) ID를 미리 예약하는 방법

    MySQL 자동 증분 ID 예약하기MySQL에서 자동 증분(AUTO_INCREMENT) ID를 미리 예약하려면 트랜잭션 시작 → 빈 값 삽입 → 롤백 → LAST_INSERT_ID() 확인의 순서로 처리하면 됩니다. 기본 문법은 다음과 같습니다.START TRANSACTION;insert into yourTableName values(),(),(),();ROLLBACK;SELECT LAST_INSERT_ID() INTO @anyVariableName;예제 테이블 생성문법을 이해하기 위해 먼저 자동 증분 컬럼 하나만 가진 간단한 테이

  7. MySQL에서 현재 날짜와 날짜 필드 간의 일수 차이 구하는 방법

    MySQL DATEDIFF 함수로 현재 날짜와 날짜 필드 사이의 일수 구하기현재 날짜와 테이블에 저장된 날짜 필드 사이의 일수를 계산하려면 DATEDIFF(), CURDATE(), STR_TO_DATE() 함수를 함께 사용하면 됩니다.기본 문법SELECT DATEDIFF(CURDATE(), STR_TO_DATE(yourColumnName, %d-%m-%Y)) AS anyAliasName FROM yourTableName;각 함수의 역할은 다음과 같습니다.CURDATE(): 현재 시스템 날짜를 반환합니다.STR_TO_DATE(): 문

  8. MySQL 쿼리에서 연도를 무시하고 날짜 범위로 조회하는 방법

    MySQL에서 연도를 무시한 날짜 범위 조회 방법날짜 범위 조건에서 연도는 제외하고 월·일만 기준으로 데이터를 필터링해야 하는 경우가 있습니다. 예를 들어 어떤 연도든 상관없이 1월 1일부터 3월 31일 사이에 배송된 모든 주문을 조회하고 싶다면, DATE_FORMAT() 함수와 BETWEEN 절을 함께 사용하면 간단하게 해결할 수 있습니다.이번 글에서는 데모 테이블을 직접 만들어 단계별로 확인해 보겠습니다.1. 테이블 생성먼저 배송 날짜(ShippingDate)를 저장할 테이블을 생성합니다.mysql> create table

  9. MySQL INFORMATION_SCHEMA.key_column_usage 성능 저하 해결 방법

    INFORMATION_SCHEMA.key_column_usage 조회가 느릴 때 해결 방법INFORMATION_SCHEMA.key_column_usage 테이블 조회 시 응답 속도가 지나치게 느린 문제는 InnoDB의 메타데이터 통계 수집 설정 때문에 발생하는 경우가 많습니다. 아래와 같이 GLOBAL 변수를 조정하면 간단히 해결할 수 있습니다.1. innodb_stats_on_metadata 변수 비활성화다음 구문을 실행하여 전역 변수를 비활성화합니다.SET global innodb_stats_on_metadata =0;innod

  10. MySQL에서 자동 증가(AUTO_INCREMENT) 열 하나만 있는 테이블에 행 삽입하는 방법

    자동 증가(AUTO_INCREMENT) 열이 하나뿐인 테이블이라면 별도의 값을 지정하지 않고도 손쉽게 행을 삽입할 수 있습니다. 기본 문법은 다음과 같습니다.INSERT INTO 테이블명 SET 컬럼명 = NULL;또는 아래와 같은 문법을 사용할 수도 있습니다.INSERT INTO 테이블명 VALUES (NULL);두 방식 모두 자동 증가 컬럼에 NULL을 전달하면 MySQL이 해당 컬럼의 다음 시퀀스 값을 자동으로 생성해 줍니다.예제 테이블 생성실제 동작을 확인하기 위해 먼저 테이블을 생성해 보겠습니다. 테이블 생성 쿼리는 다음과

  11. MySQL에서 AND 조건을 올바르게 구현하는 방법

    MySQL에서 두 개 이상의 조건을 동시에 만족하는 데이터를 조회하려면 AND 연산자를 사용합니다. AND 조건은 WHERE 절과 함께 사용되며, 모든 조건이 참일 때만 해당 레코드가 결과로 반환됩니다.AND 조건의 기본 문법AND 조건을 구현하는 기본적인 문법은 다음과 같습니다.SELECT * FROM yourTableNameWHERE yourColumnName1 = yourValue1 AND yourColumnName2 = yourValue2;예제 테이블 생성하기위 문법을 실제로 이해하기 위해 예제 테이블을 먼저 생성해 보겠습니

  12. MySQL에서 타임스탬프를 날짜 문자열로 변환해 조회하는 방법

    MySQL에서 저장된 유닉스 타임스탬프(Unix Timestamp)를 사람이 읽기 쉬운 날짜 문자열 형태로 조회하려면 FROM_UNIXTIME() 함수를 사용하면 됩니다. 이 함수는 숫자로 된 타임스탬프를 지정한 형식의 날짜·시간 문자열로 변환해 줍니다.기본 문법SELECT FROM_UNIXTIME(yourColumnName, %Y-%m-%d %H:%i:%s) FROM yourTableName;여기서 %Y-%m-%d %H:%i:%s는 각각 연도, 월, 일, 시, 분, 초를 의미하는 형식 지정자입니다. 원하는 출력 형식에 맞게 자유롭

  13. 앰퍼샌드(&)가 포함된 쿼리가 Oracle에서는 작동하지만 MySQL에서는 작동하지 않는 이유와 해결 방법

    Oracle에서는 앰퍼샌드(&)를 사용한 변수 치환이 기본적으로 지원되지만, MySQL에서는 이 방식이 작동하지 않습니다. MySQL에서 동일한 기능을 구현하려면 @ 기호를 사용한 사용자 정의 변수를 활용해야 합니다.MySQL에서 @ 변수를 사용하는 방법MySQL에서는 SET 문으로 변수에 값을 할당한 후, 해당 변수를 INSERT 문에 그대로 사용할 수 있습니다. 기본 구문은 다음과 같습니다.SET @yourVariableName1 = yourValue, @yourVariableName2 = yourValue, @yourV

  14. MySQL에서 FOREIGN KEY CHECKS가 1로 설정되어 있는지 확인하는 방법

    MySQL에서 FOREIGN KEY CHECKS 옵션이 1(활성화)로 설정되어 있는지 확인하려면 시스템 변수를 조회하는 두 가지 방법을 사용할 수 있습니다.방법 1: @@foreign_key_checks 변수 사용시스템 변수 @@foreign_key_checks를 SELECT 문으로 직접 조회할 수 있습니다. 기본 문법은 다음과 같습니다.SELECT @@foreign_key_checks;실제로 쿼리를 실행해 보겠습니다.mysql> SELECT @@foreign_key_checks;실행 결과는 다음과 같습니다.+---------

  15. MySQL에서 문자열의 마지막 2자를 기준으로 ORDER BY 정렬하는 방법

    MySQL에서는 ORDER BY와 함께 RIGHT() 함수를 사용하면 문자열의 마지막 2자를 기준으로 손쉽게 정렬할 수 있습니다. 이 방법은 고객 ID처럼 이름과 숫자가 결합된 문자열에서 숫자 부분만 추출해 정렬해야 할 때 특히 유용합니다.기본 문법SELECT yourColumnName FROM yourTableName ORDER BY RIGHT(yourColumnName, 2);RIGHT(컬럼명, 2)는 해당 컬럼 값의 오른쪽 끝에서 2개의 문자를 반환하며, 이 값을 기준으로 정렬이 수행됩니다.예제 테이블 생성문법을 실제로 이해하

  16. MySQL에서 특정 필드의 모든 항목을 일괄 변경하는 방법

    MySQL에서는 UPDATE 문과 WHERE 절을 활용하면 특정 필드(컬럼)의 모든 항목을 한 번의 쿼리로 손쉽게 일괄 변경할 수 있습니다. 이번 글에서는 데모 테이블을 만들고, 실제 데이터를 삽입한 뒤 특정 필드의 전체 값을 일괄 수정하는 과정을 단계별로 살펴보겠습니다.1. 데모 테이블 생성먼저 예제에 사용할 데모 테이블을 생성합니다.mysql> create table BulkChangeDemo-> (-> CustomerId int NOT NULL AUTO_INCREMENT PRIMARY KEY,-> Cust

  17. MySQL 테이블에서 고유(UNIQUE) 제약 조건을 제거하는 방법

    MySQL에서 테이블에 설정된 고유(UNIQUE) 제약 조건은 DROP INDEX 구문을 사용하여 간단하게 제거할 수 있습니다. 이 글에서는 실제 예제를 통해 고유 제약 조건을 확인하고 삭제하는 전체 과정을 단계별로 살펴보겠습니다.기본 문법고유 제약 조건을 제거하려면 다음과 같이 ALTER TABLE 문과 함께 DROP INDEX를 사용합니다.ALTER TABLE 테이블명 DROP INDEX 인덱스명;여기서 주의할 점은 MySQL에서 고유 제약 조건은 내부적으로 인덱스로 관리되기 때문에, 제거 시 해당 인덱스의 이름을 지정해야 한다

  18. MySQL int 타입 컬럼에 인덱스 생성하기 – 쿼리 속도 최적화 방법

    테이블에 대량의 레코드가 저장되어 있다면, int 타입 컬럼에 인덱스를 추가하는 것은 쿼리 실행 속도를 크게 향상시키는 효과적인 방법입니다. 반대로 레코드 수가 적은 소규모 테이블이라면 인덱스가 오히려 불필요한 오버헤드만 발생시킬 수 있으므로 사용을 권장하지 않습니다.인덱스가 필요한 이유인덱스는 마치 책의 목차와 같은 역할을 합니다. 인덱스가 없으면 MySQL은 조건에 맞는 데이터를 찾기 위해 테이블의 모든 행을 처음부터 끝까지 스캔해야 합니다(풀 테이블 스캔). 하지만 인덱스가 있으면 B-Tree 구조를 통해 원하는 데이터에 훨씬

  19. MySQL에서 REPLACE() 함수로 필드 내 문자열 찾아 바꾸는 방법

    MySQL에서 테이블의 특정 필드(컬럼)에 저장된 문자열을 찾아서 다른 문자열로 교체하려면 REPLACE() 함수를 UPDATE 문과 함께 사용하면 됩니다. 이 방법은 파일 경로 수정, 도메인 변경, 오타 일괄 수정 등 대량의 데이터를 한 번에 처리할 때 특히 유용합니다.기본 문법필드에서 문자열을 찾아 바꾸는 기본 문법은 다음과 같습니다.UPDATE yourTableNameSET yourColumnName = REPLACE(yourColumnName, yourOldValue, yourNewValue);yourTableName: 데이

  20. MySQL SELECT INTO 완벽 정리: CREATE TABLE AS SELECT로 테이블 복사하기

    MySQL에서 SELECT INTO의 역할은 무엇인가?다른 데이터베이스와 달리 MySQL에는 SELECT INTO 구문이 존재하지 않습니다. 대신 동일한 기능을 수행하는 것이 바로 CREATE TABLE AS SELECT 문입니다. 이 구문을 사용하면 기존 테이블의 데이터를 그대로 복사하여 새로운 테이블을 손쉽게 생성할 수 있습니다.기본 문법은 다음과 같습니다.CREATE TABLE 새테이블명 AS SELECT * FROM 기존테이블명;예제 테이블 생성하기개념을 이해하기 위해 먼저 예제용 테이블을 만들어 보겠습니다.mysql>

Total 4564 -컴퓨터  FirstPage PreviousPage NextPage LastPage CurrentPage:122/229  20-컴퓨터/Page Goto:1 116 117 118 119 120 121 122 123 124 125 126 127 128