목록Database (25)
버글버글
▶ Error Code: 1175. You are using safe update mode and you tried to update a table without a WHERE that uses a KEY colum. 해결방법 1. [Edit] - [Preferences...] 클릭 2. [SQL Editor] - Safe Updates (rejects UPDATEs and DELETEs with no restrictions)의 체크를 풀어준다 3. 꼭 MySQL Workbench 재시작 해야 적용! (그래야 항시 체크가 풀려 있다) ▶ 재부팅을 하고나면 꼭 사용 할 스키마 선택해주기.. 8ㅅ8.. 안해주니까 아래 오류가 떴다... ▶ Error Code: 1046. No database selected..
▶ 기본 설정 1. MySql Workbench 실행, root(관리자) 버튼 클릭 2. 비밀번호 입력 3. 기본 설정 = [Edit] - [Preferences] - [Fonts & Colors] (sql 편집기 창을 닫고 편집해야 한다.) 4. 쿼리편집기 열기 5. Schemas(스키마) 생성하기 (Oracle에서 SCCOT, SYS 등을 불리던 이름을 스키마 라고부른다. ) ▶ 쿼리 작성하기 1. 스키마 사용 명시를 해야한다. USE team; 쿼리문 실행 단독 실행 ctrl + enter 블록 실행 블록 잡고 ctrl + shift + enter 전체 실행 ctrl + shift + enter 2. 실행 성공 콘솔 ▶ 테이블 삭제하기 DROP TABLE IF EXISTS 테이블명; ▶ 테이블 생성..
▶ 연습문제 * HR계정(교육용 계정), EMPLOYEES 테이블 기반 1. 부서위치(LOCATION_ID)가 1700인 부서에 근무하는 사원들의 EMPLOYEE_ID, LAST_NAME, DEPARTMENT_NAME을 조회하시오. - DEPARTMENTS 테이블 : LOCATION_ID, DEPARTEMNT_NAME - EMPLOYEES 테이블 : EMPLOYEE_ID, LSAST_NAME 2. 부서명이 'Executive'인 부서에 근무하는 사원들의 EMPLOYEE_ID, LAST_NAME, DEPARTMENT_NAME을 조회하시오. 3. 직업아이디(JOB_ID)가 변하지 않은 사원들의 EMPLOYEE_ID, LAST_NAME, JOB_ID를 조회하시오. - 현재 JOB_ID(EMPLOYEES)와 과..
▶ 조인(Join) 1. 2개 이상의 테이블을 조회하는 방법 2. 조회할 테이블들은 관계를 줄 수 있어야 함 3. 종류 1) 크로스 조인 : 카테젼 곱, 각 테이블의 모든 행을 조인 - 많은 행을 순식간에 만들 수 있음(기초데이터 작성용) - 조인 조건을 잘못 지정한 경우 2) 내부 조인 - INNER JOIN - 각 테이블에 일치하는 모든 행을 조인 3) 외부 조인 - OUTER JOIN - 한 테이블은 일치하는 행을 조인, 한 테이블은 일치하지 않아도 조인 - 왼쪽 외부 조인(LEFT OUTER JOIN), 오른쪽 외부 조인(RIGHT OUTER JOIN) 4) 셀프 조인 - SELF JOIN - 한 테이블에 참조 관계가 있는 경우 - 한 테이블에 특정 칼럼과 다른 특정 칼럼을 조인 4. 형식 1) ..
▶ 연습문제 * HR계정(교육용 계정), EMPLOYEES 테이블 기반 1. 급여평균이 10000 이상인 부서의 부서번호와 급여평균을 조회하기 2. 동일한 부서번호(DEPARTMENT_ID)로 그룹화하기 - 동일한 부서번호를 가진 사원들을 직업아이디(JOB_ID)로 다시 그룹화하기 - 즉, 부서별 직업아이디별로 그룹화하기 - 부서별 직업아이디별로 그룹화하여 각 그룹의 사원수 조회하기 - 부서번호가 없는 사원은 제외하기 【DEPARTMENTS 테이블 연습】 1. 동일한 지역(LOCATION_ID)으로 그룹화하여 조회하기 2. 동일한 지역(LOCATION_ID)으로 그룹화하여 각 지역별 존재하는 부서수 조회하기 - 부서수가 2 이상인 지역만 조회하기 (HAVING COUNT(*) >= 2; 3. 동일한 지역..
▶ 그룹(GROUP BY) - GROUP BY절에서 지정한 칼럼의 데이터는 하나로 모아서 한 번만 조회가 됨 - SELECT절에서 조회할 칼럼은 "반드시" GROUP BY절에 존재해야 함 * HR계정(교육용 계정), EMPLOYEES 테이블 기반 1. 동일한 부서번호(DEPARTMENT_ID)로 그룹화하여 조회 SELECT DEPARTMENT_ID FROM EMPLOYEES GROUP BY DEPARTMENT_ID; 결과값 DEPARTMENT_ID 100 30 (null) 90 20 70 110 50 80 40 60 10 그룹화 실패의 예시) SELECT EMPLOYEE_ID FROM EMPLOYEES GROUP BY DEPARTMENT_ID; -- EMPLOYEE_ID를 조회하려면 GROUP BY절에 ..
▶ 기타 함수 1. 순위 1) RANK() OVER(ORDER BY 순위구할칼럼 ASC) : 오름차순 순위, 낮은 값이 1등, ASC는 생략 가능 2) RANK() OVER(ORDER BY 순위구할칼럼 DESC) : 내림차순 순위, 높은 값이 1등 - 같은 값이면 같은 등수(동점)로 처리 예시) EMPLOYEES 테이블의 사원 정보를 연봉이 높은 순으로 조회하기(연봉 순위를 함께 조회하기) SELECT RANK() OVER(ORDER BY SALARY DESC) AS 연봉순위 , EMPLOYEE_ID, FIRST_NAME, LAST_NAME, SALARY FROM EMPLOYEES; 예시) EMPLOYEES 테이블의 사원 정보를 입사순으로 조회하기(먼저 입사한 사원이 1등) SELECT RANK() OV..
▶ 문자열 함수 1. 대소문자 변환 1) UPPER(칼럼) : 칼럼의 데이터를 모두 대문자로 변환 2) LOWER(칼럼) : 칼럼의 데이터를 모두 소문자로 변환 3) INITCAP(칼럼) : INITAL CAPITAL, 첫 글자는 대문자 나머지는 소문자로 변환 예시) -- 테이블 생성 CREATE TABLE SAMPLE( EMAIL VARCHAR2(20 BYTE) NOT NULL ); -- ROW 생성 INSERT INTO SAMPLE (EMAIL) VALUES ('sample@naver.com'); SELECT EMAIL-- sample@naver.com , UPPER(EMAIL)-- SAMPLE@NAVER.COM , LOWER(EMAIL)-- sample@naver.com , INITCAP(EMAIL..