MySQL13 [SQL] 자동차 대여 기록 별 대여 금액 구하기 - MySQL 1. 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr CAR_RENTAL_COMPANY_CAR 테이블과 CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블과 CAR_RENTAL_COMPANY_DISCOUNT_PLAN 테이블에서 자동차 종류가 '트럭'인 자동차의 대여 기록에 대해서 대여 기록 별로 대여 금액(컬럼명: FEE)을 구하여 대여 기록 ID와 대여 금액 리스트를 출력하는 SQL문을 작성해주세요. 결과는 대여 금액을 기준으로 내림차순 정렬하고, 대여 금액이 같은 경우 대여 기록 ID를 기준으로 내림차순 정렬해주세요. 2. 풀이 1.. 코딩테스트/SQL 2023. 4. 18. [SQL] 취소되지 않은 진료예약 조회하기 - MySQL 1. 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr PATIENT, DOCTOR 그리고 APPOINTMENT 테이블에서 2022년 4월 13일 취소되지 않은 흉부외과(CS) 진료 예약 내역을 조회하는 SQL문을 작성해주세요. 진료예약번호, 환자이름, 환자번호, 진료과코드, 의사이름, 진료예약일시 항목이 출력되도록 작성해주세요. 결과는 진료예약일시를 기준으로 오름차순 정렬해주세요. 2. 풀이 SELECT APNT_NO, PT_NAME, APPOINTMENT.PT_NO, APPOINTMENT.MCDP_CD,DR_NAME,APNT_YMD FROM APPO.. 코딩테스트/SQL 2023. 2. 27. [SQL] 오프라인/온라인 판매 데이터 통합하기 - MySQL 1. 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr ONLINE_SALE 테이블과 OFFLINE_SALE 테이블에서 2022년 3월의 오프라인/온라인 상품 판매 데이터의 판매 날짜, 상품ID, 유저ID, 판매량을 출력하는 SQL문을 작성해주세요. OFFLINE_SALE 테이블의 판매 데이터의 USER_ID 값은 NULL 로 표시해주세요. 결과는 판매일을 기준으로 오름차순 정렬해주시고 판매일이 같다면 상품 ID를 기준으로 오름차순, 상품ID까지 같다면 유저 ID를 기준으로 오름차순 정렬해주세요. 2. 풀이 포맷팅한 sales_date, product_.. 코딩테스트/SQL 2022. 10. 14. [AWS] ec2에 mysql 설치하기 1. EC2에서 MySQL 설치 1) 설치 # 설치 sudo apt install mysql-server # root계정 접속 sudo mysql -u root -p 2) 계정 생성 및 권한 부여 CREATE USER '아이디'@'%' IDENTIFIED BY '비밀번호'; FLUSH PRIVILEGES; show grants for '아이디'@'%'; grant all privileges on *.* to '아이디'@'%'; 3) 외부접속 허용 sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf # bind-address=0.0.0.0로 변경한다. # 포트 허용 sudo ufw allow out 3306/tcp sudo ufw allow in 3306/tcp # mysql 재시.. 기록/CI&CD 2022. 8. 8. [MYSQL] 그룹함수 1. 다중행 함수 하나의 값이 아닌 값들의 집합에 대해서 동작하는 함수다. COUNT COUNT(필드) 선택된 필드에서 특정 조건을 만족하는 레코드의 총 개수를 반환한다. 없다면 0을 반환한다. 중복된 값을 제외하려면 DISTINCT 키워드를 사용한다. MIN/MAX MIN(필드), MAX(필드) 선택된 필드에 저장된 값 중 가장 작은값/큰값을 반환한다. SUM SUM(필드) 선택된 숫자타입의 필드에 저장된 값의 총 합을 반환한다. AVG AVG(필드) 선택된 숫자타입의 필드에 저장된 값의 평균값을 반환한다. 2. 단일행 함수 문자열 함수 LENGTH() LENGTH('문자열') 전달받은 문자열의 길이 반환 CONCAT() CONCAT('문자열','문자열', ..) 전달받은 문자열을 모두 결합하여 하나의.. 기록/DB 2022. 5. 14. [MYSQL] DCL(Data Control Language) 1. 사용방법 WITH GRANT OPTION : 권한을 다른 사용자에게 부여 가능 여부를 결정하는 옵션이다. 접속경로로 '%'를 설정하면 외부접속을 모두 허용한다. 계정 생성 시 [IDENTIFIED BY 암호]를 넣지 않으면 비밀번호 없는 계정을 생성한다. -- 계정 생성 CREATE USER 계정명@접속경로 [IDENTIFIED BY 암호] -- 권한 부여 GRANT 권한종류 ON 대상(DB명.테이블명) TO 계정명@접속경로 [WITH GRANT OPTION]; -- 설정한 권한 적용 FLUSH PRIVILEGES; -- 권한 확인 SHOW GRANTS FOR 계정명@접속경로 -- 권한 해제 REVOKE 권한종류 ON 대상(DB명.테이블명) TO 계정명@접속경로; 권한 종류 CREATE, ALTER.. 기록/DB 2022. 5. 13. [MYSQL] DML(Data Manipulation Language) 1. 사용방법 * [참고] WHERE 없는 DELETE와 TRUNCATE의 차이점 DELETE : DML.데이터만 지워진다. 디스크 상 공간, 인덱스도 모두 남아있다. TRUNCATE : DDL. 최초 테이블이 만들어진 상태로 돌아간다. 따라서 디스크 공간과 인덱스도 삭제된다. 자동으로 커밋을 실행하기 때문에 데이터를 복구할 수 없다. -- 삽입 -- 1. 특정 필드만 삽입할 때 INSERT INTO 테이블이름(필드이름, 필드이름, ..) VALUES(데이터값, 데이터값, 데이터값, ..); -- 2. 전체 필드를 넣을 때 -- (NULL저장가능 필드, DEFAULT 설정된 필드, AUTO_INCREMENT 설정 필드 생략가능) INSERT INTO 테이블이름 VALUES(데이터값, 데이터값, 데이터값,.. 기록/DB 2022. 5. 12. [MYSQL] DDL(Data Definition Language) 1. 사용방법 -- 데이터베이스 생성 CREATE DATABASE 데이터베이스이름; -- 데이터베이스 사용 USE 데이터베이스이름; -- 테이블 생성 CREATE TABLE 테이블이름 ( 필드이름1 필드타입1, 필드이름2 필드타입2 ); -- 서브쿼리를 활용해서 테이블 생성(SELECT로 가져온 결과를 이용할 수 있음) CREATE TABLE 테이블이름 AS SELECT구문 -- 데이터베이스 수정 ALTER DATABASE 데이터베이스이름 변경내용; -- 테이블 수정 -- 1. 새로운 필드 추가 ALTER TABLE 테이블이름 ADD 필드이름 필드타입; -- 2. 필드 삭제 ALTER TABLE 테이블이름 DROP 필드이름; -- 3. 필드 타입변경 ALTER TABLE 테이블이름 MODIFY COLUM.. 기록/DB 2022. 5. 11. [SpringBoot] MySql & MyBatis 설정하기 1. pom.xml 프로젝트를 만들 때 MyBatis Framework, MySQL을 추가해도 되고, 프로젝트가 생성된 후 pom.xml 하단 Dependencies에서 검색해 추가해도 된다. 결론적으로 pom.xml에 이 코드가 생성된다. org.mybatis.spring.boot mybatis-spring-boot-starter 2.2.2 mysql mysql-connector-java runtime 2. application.properties src/main/resources/application.properties에 다음을 작성한다. spring에서 servlet-context.xml에 있던 설정들이다. #DataBase Setting spring.datasource.driver-class-na.. 기록/BACKEND 2022. 5. 9. [SQL] DATETIME에서 DATE로 형 변환 - MYSQL 1. 문제 코딩테스트 연습 - DATETIME에서 DATE로 형 변환 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디 programmers.co.kr ANIMAL_INS 테이블에 등록된 모든 레코드에 대해, 각 동물의 아이디와 이름, 들어온 날짜1를 조회하는 SQL문을 작성해주세요. 이때 결과는 아이디 순으로 조회해야 합니다. 2. 풀이 DATE_FORMAT으로 포맷변경한다. 년도는 %Y, 월은 %m, 일은 %d다. SELECT ANIMAL_ID, NAME, DATE_.. 코딩테스트/SQL 2022. 5. 6. [SQL] 오랜 기간 보호한 동물(2) - MYSQL 1. 문제 코딩테스트 연습 - 오랜 기간 보호한 동물(2) ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디 programmers.co.kr 입양을 간 동물 중, 보호 기간이 가장 길었던 동물 두 마리의 아이디와 이름을 조회하는 SQL문을 작성해주세요. 이때 결과는 보호 기간이 긴 순으로 조회해야 합니다. 2. 풀이 ORDER BY가 컬럼명만 되는 게 아니라 수식도 된다. INNER JOIN 한 뒤 둘의 DATETIME을 빼서 정렬했다. SELECT I.ANIMAL_ID.. 코딩테스트/SQL 2022. 5. 6. [SQL] 중성화 여부 파악하기 - MYSQL 1. 문제 코딩테스트 연습 - 중성화 여부 파악하기 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디 programmers.co.kr 보호소의 동물이 중성화되었는지 아닌지 파악하려 합니다. 중성화된 동물은 SEX_UPON_INTAKE 컬럼에 'Neutered' 또는 'Spayed'라는 단어가 들어있습니다. 동물의 아이디와 이름, 중성화 여부를 아이디 순으로 조회하는 SQL문을 작성해주세요. 이때 중성화가 되어있다면 'O', 아니라면 'X'라고 표시해주세요. 2. 풀이 c.. 코딩테스트/SQL 2022. 5. 5. 이전 1 2 다음