본문 바로가기

Database/MySQL

(16)
프로그래머스 LEVEL3 대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기 SELECT MONTH(START_DATE) AS MONTH, CAR_ID, COUNT(*) AS RECORDS FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY WHERE DATE_FORMAT(START_DATE, '%Y-%m') BETWEEN '2022-08' AND '2022-10' AND CAR_ID IN ( SELECT CAR_ID FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY WHERE DATE_FORMAT(START_DATE, '%Y-%m') BETWEEN '2022-08' AND '2022-10' GROUP BY CAR_ID HAVING COUNT(CAR_ID)>=5) GROUP BY CAR_ID..
프로그래머스 SQL 문제 풀이(level 2) 조건에 부합하는 중고거래 댓글 조회하기 SELECT B.TITLE, B.BOARD_ID, R.REPLY_ID, R.WRITER_ID, R.CONTENTS, DATE_FORMAT(R.CREATED_DATE, '%Y-%m-%d') AS CREATED_DATE FROM USED_GOODS_BOARD AS B JOIN USED_GOODS_REPLY AS R ON B.BOARD_ID = R.BOARD_ID WHERE B.CREATED_DATE LIKE '2022-10%' ORDER BY R.CREATED_DATE ASC, TITLE ASC 자동차 대여 기록에서 장기/단기 대여 구분하기 SELECT HISTORY_ID, CAR_ID, DATE_FORMAT(START_DATE, '%Y-%m-%d') AS START_..
MYSQL 엑셀 파일(csv) 불러오기 MYSQL Workbench를 실행시키고 데이터를 추가할 테이블 select * from 테이블명; 실행 위 아이콘 클릭하고 엑셀 csv 파일 선택하기 참고로 csv는 ,를 기준으로 컬럼을 구분하기때문에 데이터 안에 ,가 있으면 다른 기호로 바꿔주는 것이 좋다. next 클릭 후 기다리면 데이터가 성공적으로 insert 된다.
[MySQL] JOIN 예제 join 예제 1. emp테이블에서 모든 사원에 대한 이름, 부서번호, 부서명을 출력하는 문장 작성 부서번호 순으로 오름차순 정렬 select e.ename, d.deptno, d.dname from emp e join dept d on e.deptno = d.deptno order by d.deptno asc; 2. emp테이블에서 NEW YORK에서 근무하고 있는 사원에 대해 이름, 업무, 급여, 부서명 출력 select e.ename, e.job, e.sal, d.dname from emp e join dept d on e.deptno = d.deptno and d.loc='new york'; 3. EMP테이블에서 보너스를 받는 사원에 대하여 이름, 부서명, 위치를 출력하는 SELECT문을 작성하세..
[MySQL] JOIN JOIN : 둘 이상의 테이블을 연결하여 데이터를 검색 Primary Key 및 Foreign Key 값을 사용하여 조인 두 개의 테이블을 SELECT문장 안에서 조인하려면 적어도 하나의 열(컬럼)이 두 테이블 사이에서 공유되어야 함 [equi join] 단순조인, 내부 조인 : 조인 조건에서 '='를 사용하여 값들이 정확하게 일치하는 경우에 사용 주로 PK, FK 관계 작성할 때 사용 ▶ 사원명(emp), 급여(emp), 부서 코드(emp, dept). 부서명(dept)을 선택하라 - , 사용(권장하지 않음) select ename, sal, emp.deptno, dname from emp, dept where emp.deptno = dept.deptno; -- join 사용 select ename, ..
[MySQL] DDL (CREATE, DROP, ALTER) (mydb에서 실행한 예제 코드) CREATE TABLE CREATE TABLE 테이블명 ( column datatype * [, column datatype .... ] * ); -- 테이블 생성하기 create table member( -- 필드명 데이터 타입 제약조건 기본값 num int auto_increment primary key, username varchar(30) not null, tel varchar(15) not null, email varchar(50), birth date, gender char(1) default 'M', writedate datetime default now() ); (demo에서 실행한 예제코드) -- 회원등록 create table usertbl( useri..
[MySQL] 서브쿼리(= 하위쿼리) 예제 서브쿼리(= 하위쿼리) (Subquery) : 쿼리 안에 또 쿼리가 있는 것 [단일 서브쿼리] (교재 예시) ▶ 김하나보다 키가 크거나 같은 사람 선택 SELECT name, height FROM usertbl WHERE height > (SELECT height FROM usertbl WHERE Name = '김하나'); (demo db 예시) ▶ 평균 급여보다 많은 급여를 받는 사원을 선택하라 select * from emp where sal>(select avg(sal) from emp); ▶ emp 테이블의 급여 jones의 급여보다 많이 받는 사원 중 부서가 10번인 사원을 선택하라 select * from emp where sal>(select sal from emp where ename = ..
[MySQL] 테이블 제약 조건 제약조건 : 제약조건이란 테이블에 부적절한 자료가 입력되는 것을 방지하기 위해서 여러 가지 규칙을 적용해 놓는 것 UNIQUE : 데이터의 유일성을 보장한다.(= 중복되는 데이터 X) -- unique : 유일한 값 -- enmae을 unique 제약조건으로 설정(동명이인 불가) alter table emp add constraint emp_uq_ename unique(ename); 이후 제약조건 설정을 확인하면 이렇게 나온다. 제약조건 설정 확인 SELECT * FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS WHERE TABLE_NAME ~; -- 제약조건 확인하기 select * from information_schema.table_constraints where tabl..