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

MySQL

  1. MySQL GROUP BY와 MAX()로 학생 이름별 최대 나이 구하는 방법

    개요MySQL에서 동일한(또는 유사한) 학생 이름이 여러 번 등록되어 있을 때, 이름별로 그룹화하여 각 학생의 최대 나이를 조회해야 하는 경우가 자주 있습니다. 이럴 때 GROUP BY 절과 집계 함수 MAX()를 함께 사용하면 간단하게 해결할 수 있습니다.아래에서 예제 테이블 생성부터 데이터 삽입, 그리고 최대 나이를 조회하는 전체 과정을 단계별로 살펴보겠습니다.1. 예제 테이블 생성하기먼저 학생 이름과 나이를 저장할 테이블을 생성합니다.mysql> create table DemoTable1964 ( Stude

  2. MySQL에서 모든 테이블에 존재하는 열(컬럼)을 찾는 방법 완벽 가이드

    데이터베이스를 운영하다 보면 수십, 수백 개의 테이블 중에서 특정 컬럼명이 어느 테이블에 존재하는지 확인해야 할 때가 있습니다. MySQL에서는 INFORMATION_SCHEMA.COLUMNS를 활용하면 현재 데이터베이스의 모든 테이블을 대상으로 특정 열의 존재 여부를 손쉽게 조회할 수 있습니다.기본 문법컬럼명을 식별하려면 아래와 같은 쿼리 구문을 사용합니다.SELECT table_name, column_name FROM INFORMATION_SCHEMA.COLUMNS WHERE table_schema = SCHEMA() AND c

  3. MySQL SELECT 문에서 IF/ELSE 조건문 사용하는 방법

    MySQL SELECT 문에서 IF 조건 활용하기MySQL에서는 IF() 함수를 사용하여 SELECT 쿼리 안에서 조건 분기(if/else) 로직을 간단하게 구현할 수 있습니다. 이 함수는 세 개의 인자를 받습니다. 첫 번째는 평가할 조건식, 두 번째는 조건이 참(TRUE)일 때 반환할 값, 세 번째는 조건이 거짓(FALSE)일 때 반환할 값입니다.먼저 예제에 사용할 테이블을 생성해 보겠습니다.mysql> create table DemoTable1966(  UserId int NOT NULL AUTO_INCR

  4. MySQL에서 앞자리 0이 채워진 값 자동 삽입하기 – LPAD() 함수 활용법

    MySQL 테이블에 001, 002처럼 앞자리가 0으로 채워진 값을 저장하고 싶다면 INSERT INTO ... SELECT 문과 LPAD() 함수를 함께 사용하면 됩니다. LPAD()는 문자열의 왼쪽을 지정한 문자로 채워 원하는 길이만큼 맞춰 주는 함수로, 일련번호 형태의 데이터를 만들 때 매우 유용합니다. 1단계: 테이블 생성 먼저 예제에 사용할 테이블을 생성합니다. mysql> create table DemoTable1967 ( Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,

  5. MySQL에서 ALTER TABLE로 기존 열에 NOT NULL 속성 설정하기

    MySQL에서 이미 존재하는 열에 NOT NULL 속성을 설정하려면 ALTER TABLE 명령어를 사용하면 됩니다. 이 글에서는 실제 예제를 통해 기존 테이블의 열에 NOT NULL 제약 조건을 추가하는 방법을 단계별로 살펴보겠습니다. 1. 테이블 생성 먼저 예제로 사용할 테이블을 생성합니다. mysql> create table DemoTable1949 ( UserId int, UserName varchar(20) ); Query OK, 0 rows affected (0.00 sec) UserId와

  6. MySQL에서 SUM과 FORMAT 함수를 결합해 결과 형식 지정하는 방법

    MySQL에서는 SUM() 함수로 숫자 컬럼의 합계를 구하고, 여기에 FORMAT() 함수를 결합하면 소수점 자릿수를 지정하고 천 단위 구분 기호(콤마)까지 포함된 보기 좋은 형태로 결과를 출력할 수 있습니다. 아래 예제를 통해 실제 사용 방법을 단계별로 살펴보겠습니다.1. 테이블 생성먼저 예제에 사용할 테이블을 생성합니다.mysql> create table DemoTable1950 ( Amount float ); Query OK, 0 rows affected (0.00 sec)2. 레코드 삽입INSERT

  7. MySQL에서 부동 소수점 값을 두 열로 나누는 방법

    부동 소수점(float) 값을 두 개의 열로 나누려면 첫 번째 열에는 소수점 앞의 정수 부분을, 두 번째 열에는 소수점 뒤의 소수 부분을 저장하면 됩니다. 이를 위해서는 SUBSTRING_INDEX() 함수와 CAST() 함수를 함께 사용할 수 있습니다.1. 테이블 생성하기먼저 테이블을 생성해 보겠습니다.mysql> create table DemoTable1951 ( Value1 varchar(20) ); Query OK, 0 rows affected (0.00 sec)2. 데이터 삽입하기insert 명령

  8. MySQL CASE 문으로 학생 점수에 따라 사용자 지정 메시지 출력하는 방법

    MySQL에서 점수(Marks) 값에 따라 서로 다른 메시지를 출력하려면 CASE 문을 사용하면 됩니다. CASE 문은 조건을 평가한 후 조건에 맞는 결과값을 반환하는 SQL의 강력한 제어 흐름 함수입니다.이번 글에서는 실제 예제를 통해 학생 점수 열을 기준으로 Good Marks와 Not Good Marks 같은 사용자 지정 메시지를 설정하는 방법을 단계별로 살펴보겠습니다.1. 테이블 생성하기먼저 예제에 사용할 테이블을 생성합니다. 점수를 저장할 정수형(int) 컬럼 하나만 포함된 간단한 테이블입니다.mysql> create

  9. MySQL에서 NULL 값 여부에 따라 새 열에 사용자 정의 텍스트 표시하는 방법

    MySQL에서 특정 열의 값이 NULL인지 아닌지에 따라 새로운 열에 원하는 텍스트를 출력해야 하는 경우가 종종 있습니다. 이럴 때 IF() 함수를 활용하면 간단하게 해결할 수 있습니다. 이번 글에서는 예제를 통해 단계별로 살펴보겠습니다.1. 테이블 생성하기먼저 예제에 사용할 테이블을 생성합니다.mysql> create table DemoTable1953 ( StudentName varchar(20) ); Query OK, 0 rows affected (0.00 sec)StudentName이라는 varch

  10. MySQL에서 날짜의 요일 이름 구하기 – DAYNAME() 함수 활용 방법

    MySQL에서 특정 날짜가 무슨 요일인지 알고 싶다면 DAYNAME() 함수를 사용하면 됩니다. 이 함수는 DATE 또는 DATETIME 값을 입력받아 해당 날짜의 요일 이름을 문자열로 반환합니다.1. 예제 테이블 생성먼저 배송 날짜를 저장할 테이블을 생성해 보겠습니다.mysql> create table DemoTable1954 ( ShippingDate date ); Query OK, 0 rows affected (0.00 sec)2. 데이터 삽입INSERT 명령을 사용해 몇 개의 날짜 데이터를 입력합니

  11. MySQL에서 삭제된 행으로 인해 끊긴 자동 증가(AUTO_INCREMENT) 값을 1,3,5 → 1,2,3처럼 다시 정렬하는 방법

    MySQL에서 테이블의 일부 행을 삭제하면 자동 증가(AUTO_INCREMENT) 컬럼의 값에 빈 번호가 생기게 됩니다. 예를 들어 1부터 5까지의 데이터가 있던 테이블에서 2번과 4번 행을 삭제하면 1, 3, 5처럼 번호가 건너뛰게 되죠. 이번 글에서는 이렇게 끊긴 번호를 사용자 변수(@variable)를 활용해 1, 2, 3처럼 연속된 값으로 다시 정렬하는 방법을 단계별로 알아보겠습니다.1. 테스트용 테이블 생성먼저 자동 증가 컬럼을 가진 테이블을 생성합니다.mysql> create table DemoTable1955

  12. MySQL에서 조건에 맞는 열을 선택해 오늘 날짜와 내일 날짜의 레코드 가져오기

    MySQL에서 특정 날짜 조건을 만족하는 레코드만 조회하고 싶을 때가 있습니다. 이번 글에서는 현재 날짜(CURDATE())와 현재 날짜 + 1일(내일)에 해당하는 배송일 데이터를 가진 레코드에서 원하는 열만 선택해 가져오는 방법을 단계별로 알아보겠습니다.1단계: 현재 날짜 확인하기먼저 CURDATE() 함수로 현재 날짜를 확인해 보겠습니다.mysql> select curdate();실행 결과는 다음과 같습니다.+------------+ | curdate() | +------------+ | 2019-12-15 | +----

  13. MySQL 쿼리에서 열 나누기를 활용해 직원의 월급 계산하기

    MySQL에서는 SELECT 쿼리 안에서 산술 연산자(/)를 사용해 열 값을 나눌 수 있습니다. 연봉이 저장된 열을 12로 나누면 해당 직원의 월급을 간단하게 계산할 수 있는데요. 아래 예제를 통해 실제 동작 과정을 단계별로 살펴보겠습니다. 1. 테이블 생성하기 먼저 직원 정보를 저장할 예제 테이블을 생성합니다. mysql> create table DemoTable1957     (     EmployeeId int,    &nb

  14. MySQL에서 001부터 시작하는 자동 증가 사용자 ID 시퀀스 번호 표시하는 방법

    MySQL에서 001부터 시작하는 자동 증가 ID 만들기사용자 ID를 001, 002처럼 앞자리가 0으로 채워진 형태로 표시하고 싶다면 ZEROFILL 옵션을 활용하면 됩니다. ZEROFILL은 지정한 표시 폭(display width)보다 숫자가 짧을 때 왼쪽을 0으로 채워 출력해 주는 MySQL의 속성입니다.먼저 ALTER TABLE 문으로 기존 컬럼을 다음과 같이 변경합니다.alter table yourTableName    change yourColumnName yourColumnName

  15. MySQL에서 ORDER BY ASC 정렬 시 NULL 값을 맨 아래로 표시하는 방법

    MySQL에서 ORDER BY ASC(오름차순)로 데이터를 정렬하면 기본적으로 NULL 값이 목록의 가장 앞쪽에 표시됩니다. 하지만 실무에서는 NULL 값을 목록 맨 아래로 보내야 하는 경우가 많습니다. 이럴 때 CASE 문과 ORDER BY를 함께 사용하면 원하는 정렬 결과를 손쉽게 얻을 수 있습니다.1. 예제 테이블 생성먼저 테스트용 테이블을 생성합니다.mysql> create table DemoTable1937 ( Name varchar(20) ); Query OK, 0 rows affected (0

  16. MySQL에서 테이블의 모든 필드(컬럼) 이름을 조회하는 방법

    MySQL에서 특정 테이블에 정의된 모든 필드(컬럼)의 이름을 확인하고 싶다면, information_schema.columns 시스템 뷰를 활용하면 됩니다. 이때 table_schema에는 현재 사용 중인 데이터베이스를, table_name에는 대상 테이블명을 지정합니다.기본 문법아래와 같은 형식으로 쿼리를 작성하면 테이블의 전체 컬럼 목록을 세로 방향으로 깔끔하게 출력할 수 있습니다.select column_name as 별칭 from information_schema.columnswhere table_schema=databas

  17. MySQL 쿼리로 이름 열의 마지막 공백 왼쪽 텍스트만 추출하는 방법

    MySQL에서 마지막 공백 왼쪽의 모든 텍스트 추출하기이름(FullName)처럼 공백을 포함한 문자열에서 마지막 공백을 기준으로 왼쪽에 있는 모든 내용을 추출하려면 LEFT(), LENGTH(), LOCATE(), REVERSE() 함수를 조합하면 됩니다. 예를 들어 Adam Smith에서 Adam만, Robert Downey, Jr.에서 Robert Downey,만 가져오는 방식입니다.1. 테이블 생성먼저 테이블을 생성합니다.mysql> create table DemoTable1939 ( FullName var

  18. MySQL에서 가장 많이 등장하는 값 조회하기 – ORDER BY COUNT(*) 활용법

    MySQL에서 개수가 가장 많은 필드 값을 반환하는 방법MySQL에서 특정 컬럼에 저장된 값 중 가장 많이 등장하는 값을 찾고 싶다면, GROUP BY로 데이터를 그룹화한 뒤 ORDER BY COUNT(*)를 내림차순으로 정렬하고 LIMIT 1을 사용하면 됩니다.이번 글에서는 예제 테이블을 만들고, 실제 쿼리를 통해 가장 많이 등장하는 이름을 조회하는 과정을 단계별로 살펴보겠습니다.1. 예제 테이블 생성하기먼저 테스트용 테이블을 생성합니다.mysql> create table DemoTable1940 ( First

  19. MySQL에서 GROUP BY와 COUNT(*)로 값별 발생 횟수 집계하는 방법

    MySQL에서 레코드별 발생 횟수 세기MySQL 테이블에 저장된 각 값이 몇 번 등장했는지 확인하고 싶다면 COUNT(*) 함수와 GROUP BY 절을 함께 사용하면 됩니다. GROUP BY는 동일한 값을 가진 행들을 하나의 그룹으로 묶어주고, COUNT(*)는 각 그룹에 속한 행의 개수를 세어 결과를 별도의 열로 출력해 줍니다.실제 예제를 통해 단계별로 살펴보겠습니다.1단계: 테이블 생성하기먼저 실습에 사용할 테이블을 만듭니다.mysql> create table DemoTable1942 ( Value int

  20. MySQL에서 특정 단어 뒤에 대문자가 포함된 모든 데이터베이스 조회하는 방법

    MySQL에서 특정 단어 뒤에 대문자가 이어지는 이름을 가진 데이터베이스를 모두 조회해야 하는 경우가 있습니다. 이럴 때는 정규 표현식(REGEXP)을 활용하면 간단하게 해결할 수 있습니다.기본 문법information_schema의 schemata 테이블과 REGEXP 조건을 조합하여 사용합니다. 기본 문법은 다음과 같습니다.select * from information_schema.schemata WHERE SCHEMA_NAME REGEXP ^yourValue_+[A-Z];^yourValue_+ : 지정한 단어로 시작하고 그 뒤

Total 4564 -컴퓨터  FirstPage PreviousPage NextPage LastPage CurrentPage:18/229  20-컴퓨터/Page Goto:1 12 13 14 15 16 17 18 19 20 21 22 23 24