본문 바로가기

MySQL11

[MySQL] 프로그래머스 Level 4, 5 문제 풀이 (20문제, 240715 업데이트) 내 기준에 MySQL 코딩테스트 레벨 4, 5는 시간도 오래 걸리고 어려웠어서 다시 풀어야 할 것 같다.우선 전체적으로 다 풀긴 했지만, 막상 다시 보면 못 풀면 안되니까 ... 파이팅 ! 1. 보호소에서 중성화한 동물[문제] ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다. ANIMAL_OUTS 테이블은 동물 보호소에서 입양 보낸 동물의 정보를 담은 테이블입니다. ANIMAL_O.. 2024. 7. 15.
[MySQL] 프로그래머스 Level 3 문제 풀이 (21문제, 240612 업데이트) 1. 없어진 기록 찾기[문제] ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다.  ANIMAL_OUTS 테이블은 동물 보호소에서 입양 보낸 동물의 정보를 담은 테이블입니다. ANIMAL_OUTS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, NAME, SEX_UPON_OUTCOME는 각각 동물의 아이디, 생물 종, 입양일, 이름, 성별 .. 2024. 6. 12.
[MySQL] 프로그래머스 Level 2 문제 풀이 (36문제, 240530 업데이트) 1. 최솟값 구하기[문제] ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다.  동물 보호소에 가장 먼저 들어온 동물은 언제 들어왔는지 조회하는 SQL 문을 작성해 주세요. [답]SELECT MIN(DATETIME) AS '시간'FROM ANIMAL_INS; 2. 고양이와 개는 몇 마리 있을까[문제] ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다... 2024. 5. 30.
[MySQL] 프로그래머스 Level 1 문제 풀이 (31문제, 240524 업데이트) 1. 모든 레코드 조회하기[문제] ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다. 동물 보호소에 들어온 모든 동물의 정보를 ANIMAL_ID 순으로 조회하는 SQL 문을 작성해주세요. [답]SELECT * FROM ANIMAL_INS 2. 역순 정렬하기[문제] ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다.. 2024. 5. 24.
[MySQL] SQL 내장함수 * MySQL 내장함수: 상수나 속성 이름을 입력 값으로 받아 단일 값을 결과로 반환  => 모든 내장 함수는 최초 선언 시, 유효한 입력 값을 받아야 하고, 위배될 경우 에러 메시지가 출력 1. 숫자 함수- 기본 사칙 연산자와 나머지(%) 연산자 기호, 내장 함수 제공ABS(숫자)숫자의 절댓값을 계산함. 예) ABS(-4.5) → 4.5CEIL(숫자)소수점 무조건 올림. 예) CEIL(4.1) → 5FLOOR(숫자)소수점 무조건 버림. 예) FLOOR(4.1) → 4ROUND(숫자, m)숫자의 반올림, m은 반올림 기준 자릿수. 예) ROUND(5.36, 1) → 5.40LOG(n, 숫자)숫자의 자연로그 값을 반환. 예) LOG(10) → 2.30259POWER(숫자, n)숫자의 n제곱 값을 계산. 예.. 2024. 5. 12.
[MySQL] SQL 프로그래밍 (IF, CASE, WHILE, 동적 SQL) * 스토어드 프로시저: MySQL에서 프로그래밍 기능이 필요할 때 사용하는 데이터베이스 개체 * 스토어드 프로시저의 기본 구조 DELIMITER $$ CREATE PROCEDURE 스토어드_프로시저_이름() BEGIN 이 부분에 SQL 프로그래밍 코딩 END $$ DELIMITER; CALL 스토어드_프로시저_이름(); - 스토어드 프로시저는 DELIMITER $$ ~ END $$ 안에 작성하고 CALL로 호출 - 구분 문자로 $$를 많이 사용하지만, /, &, @ 등을 사용해도 상관없음. 다만, 다른 기호와 중복될 수 있으므로 기호 2개를 연속으로 사용하는 것이 좋음. 1. IF 문 1) IF문 IF THEN SQL 문장들 END IF; * SQL문이 두 문장 이상 처리되어야 할 때는 BEGIN ~ E.. 2023. 12. 23.
[MySQL] 조인(Join) * 조인: 두 개의 테이블을 서로 묶어서 하나의 결과를 만들어 내는 것 1. 내부조인 - 일대다 관계(one to many) : 한쪽 테이블에는 하나의 값만 존재해야 하지만, 연결된 다른 테이블에는 여러 개의 값이 존재할 수 있는 관계를 의미함. 주로 기본 키(PK)와 외래 키(FK) 관계로 맺어져 있어, PK-FK 관계라고 부름. 상호 조인은 제외! - 내부 조인의 기본 형식 SELECT FROM INNER JOIN ON [WHERE 검색 조건] * INNER JOIN을 JOIN이라고만 써도 INNER JOIN으로 인식함 ! * 두 개의 테이블을 조인할 때 동일한 열 이름이 존재한다면, 테이블_이름.열_이름 형식으로 꼭 표기하기 * 내부 조인을 조금 더 간결하게 표현하려면 별칭(alias)를 이용한다 .. 2023. 12. 22.
[MySQL] 데이터 형식 (숫자, 문자, 날짜형) 1. MySQL의 데이터 형식 1) 숫자형 - 정수형: 소수점이 없는 숫자 데이터 형식 바이트 수 숫자 범위 TINYINT 1 -128 ~ 127 SMALLINT 2 -32,768 ~ 32,767 INT 4 약 -21억 ~ + 21억 BIGINT 8 약 -900경 ~ + 900경 * Out of range 오류: 입력값의 범위가 벗어났음을 의미 * UNSIGNED 예약어: 정수형에 해당 예약어를 붙이면 범위가 0부터 지정 (예: TINYINT는 0~255 사이의 수가 됨) - 실수형: 소수점이 있는 숫자를 저장할 때 사용 데이터 형식 바이트 수 숫자 범위 FLOAT 4 소수점 아래 7자리까지 표현 DOUBLE 8 소수점 아래 15자리까지 표현 * 과학 기술용 데이터가 아닌 이상 FLOAT 형이면 충분 2.. 2023. 12. 22.
[MySQL] 데이터 변경을 위한 SQL문 : INSERT, UPDATE, DELETE 1. 데이터 입력: INSERT INSERT는 데이터를 삽입하는 명령 INSERT INTO 테이블이름 [(열1, 열2, ...)] VALUES (값1, 값2, ...); INTO : 튜플을 삽입할 테이블의 이름과 속성 이름 VALUES : 삽입할 속성 값들을 나열 => INTO 절의 속성 이름과 VALUES 절의 속성 값은 순서대로 일대일 대응되어야 함. - 테이블 이름 다음에 나오는 열은 생략 가능. 단, 열 이름을 생략할 경우에 VALUES 다음에 나오는 값들의 순서 및 개수는 테이블을 정의할 때의 열 순서 및 개수가 동일해야 함. - 입력하지 않으면, 아무것도 없다는 의미의 NULL 값을 의미함. - 열의 순서를 바꿔서 입력하고 싶은 경우, 열 이름과 값을 원하는 순서에 맞춰 써주면 됨. INSER.. 2023. 12. 11.
[MySQL] SQL 기본 문법 : SELECT [실습용 데이터베이스 구축 코드] -- 데이터베이스 만들기 DROP DATABASE IF EXISTS market_db; CREATE DATABASE market_db; -- 회원 테이블(member) 만들기 USE market_db; CREATE TABLE member ( mem_id CHAR(8) NOT NULL PRIMARY KEY, -- 회원 아이디 (PK) mem_name VARCHAR(10) NOT NULL, -- 이름 mem_number INT NOT NULL,-- 인원수 addr CHAR(2) NOT NULL, -- 주소(경기, 서울, 경남 식으로 2글자만 입력) phone1 CHAR(3),-- 연락처의 국번(02, 031, 055 등) phone2 CHAR(8),-- 연락처의 나머지 전화.. 2023. 12. 8.