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

MySQL

  1. MySQL에서 IF 조건문으로 저장 프로시저 내부에서 다른 저장 프로시저 호출하기

    저장 프로시저(Stored Procedure) 안에서 또 다른 저장 프로시저를 호출해야 하는 경우가 종종 있습니다. MySQL에서는 IF 조건문과 CALL 명령어를 조합하면 간단하게 구현할 수 있습니다. 이 글에서는 입력값에 따라 서로 다른 저장 프로시저를 실행하는 방법을 단계별로 살펴보겠습니다.기본 문법저장 프로시저 내에서 다른 저장 프로시저를 호출하는 기본 문법은 다음과 같습니다.If yourInputValue > 100 then    call yourProcedureName1();els

  2. MySQL REGEXP로 특정 단어 수를 가진 레코드만 조회하는 방법

    컬럼 값이 정확히 지정한 개수의 단어로만 이루어진 레코드를 조회하려면 MySQL에서 정규 표현식(REGEXP)을 활용하면 됩니다. 기본 문법은 다음과 같습니다.SELECT * FROM yourTableNameWHERE yourColumnName REGEXP ^[^ ]+[ ]+[^ ]+$;위 쿼리는 두 단어가 공백 하나로 구분된 경우에만 매칭됩니다. 정규 표현식의 각 요소를 살펴보면 다음과 같습니다.^ : 문자열의 시작을 의미합니다.[^ ]+ : 공백이 아닌 문자, 즉 첫 번째 단어가 하나 이상 존재해야 합니다.[ ]+ : 단어 사이

  3. MySQL 8에서 'rank'를 컬럼 이름으로 사용할 수 있을까? 예약어 오류와 백틱 해결법

    MySQL 8에서 rank는 예약어입니다rank는 MySQL 8.0.2 버전부터 정의된 예약어(reserved word)입니다. 따라서 rank를 그대로 컬럼(열) 이름으로 사용하면 문법 오류가 발생합니다. 이 경우 컬럼 이름을 백틱(`` ` ``)으로 감싸주면 오류 없이 사용할 수 있습니다.1. 현재 MySQL 버전 확인하기먼저 작업 중인 MySQL 버전을 확인해 보겠습니다. 여기서는 MySQL 8.0.12 버전을 사용하고 있습니다.mysql> select version(); +-----------+ | version() |

  4. MySQL 오류 1093(HY000) 해결 방법 – FROM 절에서 업데이트 대상 테이블을 지정할 수 없다는 오류 없이 열의 최솟값 삭제하기

    오류 1093(HY000): FROM 절에서 업데이트 대상 테이블을 지정할 수 없습니다MySQL에서는 DELETE나 UPDATE로 테이블을 수정하는 동안 같은 테이블을 서브쿼리에서 직접 참조하면 오류 1093 (HY000)이 발생합니다. 이 오류를 해결하는 핵심은 서브쿼리를 별칭이 있는 파생 테이블(derived table)로 한 번 더 감싸는 것입니다. 아래 예제를 통해 단계별로 살펴보겠습니다.1단계: 테이블 생성먼저 테이블을 생성합니다.mysql> create table DemoTable1597  &nbs

  5. MySQL 데이터베이스에서 임의의 레코드를 선택하는 방법

    MySQL 데이터베이스에서 임의의 레코드를 선택하려면 ORDER BY RAND()와 LIMIT 절을 함께 사용하면 됩니다. 이번 글에서는 실제 예제를 통해 그 사용 방법을 단계별로 살펴보겠습니다.1. 테이블 생성하기먼저 예제에 사용할 테이블을 생성합니다.mysql> create table DemoTable1581    -> (    -> StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY,  

  6. MySQL 테이블에서 지난 3일 이전에 게시된 행 조회하는 방법

    MySQL에서 지난 3일 이전에 게시된 데이터 조회하기 현재 날짜가 2019-10-20이라고 가정해 보겠습니다. 이 글에서는 MySQL 테이블을 쿼리하여 지난 3일 이전에 게시된 행을 가져오는 방법을 테이블 생성부터 쿼리 실행까지 단계별로 살펴봅니다. 1단계: 테이블 생성하기 먼저 예제로 사용할 테이블을 만듭니다. mysql> create table DemoTable1582 -> ( -> PostedDate datetime -> ); Query OK, 0 rows affected (13.

  7. MySQL 필드에서 부분 데이터 삭제하는 방법 – UPDATE와 REPLACE() 활용

    MySQL 필드에서 부분 데이터 삭제하기컬럼의 전체 값이 아니라 일부 문자열만 삭제하고 싶다면 UPDATE 명령과 REPLACE() 함수를 함께 사용하면 됩니다. REPLACE()는 문자열 안에서 지정한 부분 문자열을 찾아 다른 문자열로 치환하는 MySQL 내장 함수로, 세 번째 인자에 빈 문자열()을 넣으면 해당 부분을 사실상 삭제하는 효과를 얻을 수 있습니다.먼저 예제에 사용할 테이블을 생성해 보겠습니다.mysql> create table DemoTable1583    -> (&nb

  8. MySQL 트리거(TRIGGER)로 테이블에 날짜 자동 삽입하는 방법

    MySQL에서는 트리거(TRIGGER)를 활용하면 데이터가 삽입되는 시점에 자동으로 현재 날짜를 기록할 수 있습니다. 이번 글에서는 BEFORE INSERT 트리거와 CURDATE() 함수를 사용하여 테이블에 날짜를 자동으로 넣는 방법을 단계별로 살펴보겠습니다.1. 테이블 생성하기먼저 실습에 사용할 테이블을 생성합니다. 여기서는 DATETIME 타입의 DueDate 컬럼 하나를 가진 테이블을 만들어 보겠습니다.mysql> create table DemoTable1584    -> (&n

  9. MySQL에서 UNIQUE 제약 조건 설정 후 중복 값을 포함한 다중 INSERT를 하면 어떻게 될까?

    UNIQUE 제약 조건이 설정된 테이블에 중복 값으로 다중 INSERT하면 어떻게 될까?UNIQUE 제약 조건이 걸린 컬럼에 중복된 값을 포함하여 여러 행을 한 번에 삽입하면, 오류가 발생하고 어떤 행도 테이블에 삽입되지 않습니다. MySQL의 다중 행 INSERT 문은 하나의 작업 단위로 처리되기 때문에, 단 하나의 행이라도 제약 조건을 위반하면 전체 삽입 작업이 실패합니다.예제를 통해 직접 확인해 보겠습니다. 먼저 테이블을 생성합니다.mysql> create table DemoTable1585 -> ( -&

  10. MySQL에서 TYPE, KEY 등 필드(컬럼) 정보를 확인하는 방법

    MySQL에서 필드 정보 확인하기MySQL에서 테이블의 필드(컬럼) 이름뿐만 아니라 데이터 타입(TYPE), 키(KEY), 기본값(DEFAULT) 등 상세 정보를 확인하려면 다음과 같은 구문을 사용합니다.show columns from yourTableName;동일한 결과는 DESCRIBE yourTableName; 또는 축약형 DESC yourTableName;으로도 얻을 수 있습니다. 이 명령은 각 컬럼의 이름(Field), 타입(Type), NULL 허용 여부(Null), 키(Key), 기본값(Default), 추가 속성(Ex

  11. MySQL에서 두 열의 합이 최대인 행 조회하는 방법

    MySQL에서 두 열의 합(Value1 + Value2)이 가장 큰 데이터를 조회하려면 집계 함수 MAX()와 서브쿼리를 함께 사용하면 됩니다. 이 글에서는 예제 테이블을 만들고 단계별로 방법을 살펴보겠습니다.1. 예제 테이블 생성먼저 두 개의 정수형 컬럼을 가진 테이블을 생성합니다.mysql> create table DemoTable1587 -> ( -> Value1 int, -> Value2 int -> ); Query OK, 0 rows affected (0.59 sec)

  12. MySQL에서 정렬 순서를 적용한 집계 함수 호출 방법 – GROUP_CONCAT() 완벽 가이드

    MySQL에서 데이터를 정렬된 순서로 집계하려면 GROUP_CONCAT() 함수와 ORDER BY 절을 함께 사용하면 됩니다. 이 글에서는 실제 예제를 통해 단계별로 살펴보겠습니다. 1. 테이블 생성하기 먼저 예제에 사용할 테이블을 생성합니다. mysql> create table DemoTable1588     -> (     -> StudentId int,     -> StudentFirstName va

  13. MySQL 명령줄에서 명령문 실행 시간을 확인하는 방법

    MySQL 명령줄에서 명령문 실행 시간 확인하기MySQL 명령줄 인터페이스에서는 실행하는 모든 SQL 명령문에 대해 해당 명령문이 완료되는 데 걸린 정확한 시간이 자동으로 표시됩니다. 별도의 설정이나 추가 도구 없이도 각 쿼리 결과 하단에 소요 시간이 함께 출력되기 때문에, 쿼리 성능을 매우 간편하게 확인할 수 있습니다.1. 테이블 생성먼저 예제로 사용할 테이블을 생성해 보겠습니다.mysql> create table DemoTable1589    -> (   

  14. MySQL에서 숫자 이름으로 데이터베이스를 생성할 수 있을까요?

    MySQL에서 숫자 이름 데이터베이스 생성 시 발생하는 문제MySQL에서는 일반적인 방법으로 숫자만으로 이루어진 이름의 데이터베이스를 생성할 수 없습니다. 아래 예시처럼 쿼리를 실행하면 오류가 발생합니다.mysql> create database 1233;위 쿼리를 실행하면 다음과 같은 구문 오류 메시지가 출력됩니다.ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version

  15. Java에서 MySQL 연결하는 방법 – localhost 포트 번호 3306 설정 가이드

    Java 애플리케이션에서 MySQL 데이터베이스에 연결하려면 JDBC URL에 올바른 포트 번호를 지정해야 합니다. MySQL의 기본 포트 번호는 3306이며, localhost 환경에서도 동일하게 사용합니다.JDBC 연결 URL 형식MySQL 연결 시 사용하는 JDBC URL의 기본 문법은 다음과 같습니다.jdbc:mysql://localhost:3306여기서 localhost는 로컬 서버를 의미하고, 3306은 MySQL이 기본적으로 사용하는 포트 번호입니다.전체 예제 코드아래는 Java에서 DriverManager를 사용해 M

  16. MySQL 쿼리에 IF 문을 삽입하는 올바른 방법

    MySQL에서는 IF() 함수를 사용하면 SELECT 쿼리 안에서 조건문을 활용할 수 있습니다. 조건이 참이면 첫 번째 값을, 거짓이면 두 번째 값을 반환하는 방식입니다.기본 문법MySQL 쿼리에 IF 문을 삽입하려면 아래와 같은 구문을 사용합니다.SELECT yourColumnName, IF(yourCondition, yourStatement1, yourStatement2) FROM yourTableName;예제로 살펴보기1단계: 테이블 생성먼저 예제에 사용할 테이블을 생성합니다.mysql> CREATE TABLE DemoT

  17. MySQL GROUP BY 절에서 행을 정렬하고 선택하는 방법 완벽 가이드

    개요MySQL에서 GROUP BY 절을 사용할 때 각 그룹에서 특정 행을 선택하거나 정렬해야 하는 경우가 자주 발생합니다. 이 글에서는 서브쿼리와 MIN() 함수를 활용하여 그룹별로 원하는 행을 효과적으로 추출하는 방법을 단계별로 살펴보겠습니다.1. 예제 테이블 생성하기먼저 실습에 사용할 테이블을 생성합니다.mysql> create table DemoTable1572 -> ( -> StudentId int, -> StudentMarks int, -> StudentName var

  18. MySQL REGEXP 연산자로 정규 표현식 기반 데이터 조회하기

    MySQL에서 정규 표현식(Regular Expression)으로 SELECT 쿼리 작성하기MySQL에서는 REGEXP 연산자를 사용하면 WHERE 절에서 정규 표현식을 활용해 원하는 패턴과 일치하는 데이터를 손쉽게 조회할 수 있습니다. 이번 글에서는 예제 테이블을 만들고, 정규 표현식으로 특정 조건의 레코드를 선택하는 방법을 단계별로 살펴보겠습니다.1. 예제 테이블 생성먼저 테스트에 사용할 테이블을 생성합니다.mysql> create table DemoTable1573-> (-> StudentId int NOT N

  19. MySQL 데이터베이스에서 테이블 이름을 조회하는 방법

    MySQL에서 특정 데이터베이스에 포함된 테이블 이름을 확인하려면 SHOW TABLES 구문을 사용합니다. 기본 문법은 다음과 같습니다.show tables from yourDatabaseName;SHOW TABLES 실행 예제실제로 위 쿼리를 실행하여 테이블 목록을 조회해 보겠습니다. 아래 예제에서는 hb_student_tracker라는 데이터베이스의 테이블 이름들을 가져옵니다.mysql> show tables from hb_student_tracker;쿼리를 실행하면 해당 데이터베이스에 존재하는 모든 테이블 이름이 표 형태

  20. MySQL REPLACE() 함수로 열 값의 특수 문자 일괄 대체하기

    MySQL에서 REPLACE() 함수를 사용하면 열 값에 포함된 특수 문자나 특정 문자열을 손쉽게 다른 값으로 대체할 수 있습니다. 이번 글에서는 예제 테이블을 직접 만들어 보고, 언더스코어(_)로만 구성된 값을 다른 값으로 일괄 변경하는 과정을 단계별로 살펴보겠습니다.1. 예제 테이블 생성먼저 테이블을 생성합니다.mysql> create table DemoTable1574 -> ( -> StudentCode varchar(20) -> ); Query OK, 0 rows affected (

Total 4564 -컴퓨터  FirstPage PreviousPage NextPage LastPage CurrentPage:32/229  20-컴퓨터/Page Goto:1 26 27 28 29 30 31 32 33 34 35 36 37 38