Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
Tags
- 문자열 포함여부
- 멀티캠퍼스it부트캠프
- JavaScript
- srtpos()
- SQL
- explode()
- 정규식
- 함수
- Excel
- 배열
- 노션
- DOM
- react
- ES6
- 부트캠프후기
- 오류
- implode()
- jQuery
- myshortcut
- error
- getimagesize()
- 현대이지웰java풀스택개발자아카데미6월
- MySQL
- 이걸 그렇게 쓸 줄은 몰랐지
- node.js
- 일부 문자열 포함여부
- php
- strpos()
- formula
- 특수문자 포함여부
Archives
- Today
- Total
코딩짜는 일상
[현대이지웰 Java 풀스택 개발자 아카데미 6월] TIL 27 & 28 & 29일차 - Oracle 본문
반응형
📕 27일 배운 것
- sqlDeveloper 기본 조작
- 데이터베이스란?
- DBMS
- 시스템 상세 구조
- 데이터 구조
- 논리적 구조
- 물리적 구조
- 데이터 언어 종류
- 데이터 정의어 (DDL : Data Definition Language)
- 데이터 조작어 (DML : Data Manipulation Language)
- 데이터 제어어 (DCL : Data Control Language)
- 관계형 데이터 모델
- 릴레이션
- 튜플
- 제약
- 기본키
- 외래키
- SQL
- 데이터 정의어 (DDL : Data Definition Language)
- CREATE
- ALTER
- DROP
- 데이터 정의어 (DDL : Data Definition Language)
📙 새로 알게 된 것
- 릴레이션 & 튜플
- 릴레이션 = 테이블
- 튜플 = 레코드, 로우(row), 행
- 오라클은 사용하는 단어가 약간 다르다는 걸 알게 됨.
📕 28일 배운 것
- 데이터 조작어 (DML) - INSERT
- 시퀀스
- DUAL 테이블
- 데이터 임포트
- 데이터 조작어 (DML) - UPDATE
- 데이터 조작어 (DML) - DELETE
- 데이터 조작어 (DML) - SELECT
- select
- where
- 집계 함수
- SUM()
- AVG()
- ORDER BY
📙 새로 알게 된 것
- 시퀀스
- 기본키에 자동 증가값을 적용할 때 사용.
- 하나의 시퀀스를 여러 테이블에 사용 가능.
- 예시) INSERT INTO 테이블명 VALUES(시퀀스명.NEXTVAL, 값1, 값2, ...);
- 수업에선 직접 시퀀스를 호출하는 방법만 배웠지만 TRIGGER를 복합해서 쓰면 튜플이 추가될 때마다 자동 증가하도록 쓸 수 있는 모양이다.
- 좀 더 알아봤더니 12c 이상부터는 MySQL의 AUTO_INCREMENT와 비슷한 IDENTITY를 제공한다고 한다.
- DUAL 테이블
- 단 하나의 열과 하나의 행만을 가진 오라클 내장 더미 테이블
- 계산 또는 함수 결과를 SELECT로 조회할 때 사용
- 기본적으로 문법상 select절이 필요한 작업 수행할 때 마땅한 테이블이 없으면 대신 사용하는 것 같다.
예를 들어 INSERT ALL같은 거
📕 29일 배운 것
- 데이터 조작어 (DML) - SELECT
- 집계 함수
- MAX()
- MIN()
- COUNT()
- GROUP BY
- HAVING
- ROUND()
- 집계 함수
- 데이터 복사
- JOIN
- OUTER JOIN
- 서브 쿼리
- 단일행 서브쿼리
- = 연산자
- 다중행 서브쿼리
- IN, NOT IN 연산자
- 단일행 서브쿼리
📙 새로 알게 된 것
- GROUP BY
- 오라클은 GROUP BY 에 포함되지 않은 비집계 열은 SELECT절에 허용하지 않는다.
- 즉, SELECT절에 집계함수를 사용하지 않은 일반 열이 있다면 반드시 GROUP BY절에 추가해줘야 한다!
- MySQL 8부터는 이 기능 있다고 들은 것 같긴한데 마이그레이션한 당시에도 딱히 관련 오류는 없었기에 오라클과 달리 필수는 아닌 모양이다. 오라클은 ORA-00979 에러를 표시한다.
- 별칭
- WHERE절은 결과로 내보일 튜플을 확정짓는데 사용되고 SELECT절은 확정된 튜플을 토대로 정보를 재가공?하는 느낌이라 from ➡️ where ➡️ select 순으로 동작하는 건 알고 있어서 SELECT 절에서 선언한 별칭을 WHERE절에서 사용할 수 없는 건 이해했고 MySQL과 동일했다.
- 그런데 GROUP BY는 별칭 사용이 불가능한게 의외였다... select 다음이 group by ➡️ having ➡️ order by 라서 별칭 정보를 가져오기엔 문제가 없지 않나...?
- 이유를 찾다가 오라클의 처리 순서가 MySQL과 완전히 다르다는 걸 알았다!!!
FROM ➡️ WHERE ➡️ GROUP BY ➡️ HAVING ➡️ SELECT ➡️ ORDER BY 순이다! 이게 원인이었던 듯!
📗 오늘 회고
동일한 SQL 문법을 기반으로 하다보니 오라클과 MySQL은 많이 닮아서 배우기 편했다.
중간중간 서로 다른 부분 찾아보면서 공부하는게 재밌다!
특히 연습문제 풀면서 많이 배운 것 같다.
이론만 들어서는 비집계 열을 허용 안한다는게 무슨 소린가 했는데
연습문제 풀고서야 이해가 됐다!😎✨
오라클이 MySQL보다 규칙이 좀 더 엄격한 느낌이다...🥲
반응형
'TIL' 카테고리의 다른 글
[현대이지웰 Java 풀스택 개발자 아카데미 6월] TIL 5주차 - JAVA 객체지향 프로그래밍 (5) | 2025.08.12 |
---|---|
[현대이지웰 Java 풀스택 개발자 아카데미 6월] TIL 4주차 - 깃허브 프로필 꾸미기 (4) | 2025.08.05 |
[현대이지웰 Java 풀스택 개발자 아카데미 6월] TIL 3주차 - React 앱 생성 (3) | 2025.07.29 |
[현대이지웰 Java 풀스택 개발자 아카데미 6월] TIL 2주차 - React 사용 환경 세팅하기 (2) | 2025.07.25 |
[현대이지웰 Java 풀스택 개발자 아카데미 6월] TIL 12일차 - 응용 예제 (0) | 2025.07.25 |