Oracle Express Edition 21c데이터베이스(DB)데몬, 서비스 프로그램 > 화면이 없는 프로그램SQL Developer데이터베이스 클라이언트(DB Client)전문적인 작업용SQL \* Plus오라클과 같이 설치되는 기본 클라이언트 프로그램(CLI, C
변수(x) > SQL은 프로그래밍 언어가 아니다.SQL > 대화형 언어 > DB와 대화를 목적으로 하는 언어자료형 > 데이터 저장하는 규칙 > 테이블 정의할 때 사용 > 컬럼의 자료형실행 ctrl + enter1\. 숫자형: 정수, 실수a. numbernumber :
: DML, DQL: SQL은 SELECT로 시작해서 SELECT로 끝난다.: CRUD: 데이터베이스의 테이블로부터 데이터를 가져오는 명령어(읽기, 조회)이 포스팅에서 살펴볼 Query 2문장 1\. SELECT column_list 원하는 컬럼을 지정 > 해당 컬럼만
: 레코드(행)을 검색한다.: 원하는 레코드만 추출 > 결과셋 생성이 포스팅에서 살펴볼 Query 2문장 1\. SELECT column_list 원하는 컬럼을 지정 > 해당 컬럼만 가져와라.2\. FROM table_name 데이터 소스, 어떤 테이블로부터 테이터를
컬럼 리스트에서 할 수 있는 행동: 컬럼 리스트에서 사용: 중복값 제거: distinct 컬럼명(x) > distinct 컬럼리스트(o)실습 코드📌두 컬럼 모두 동일한 것을 중복한다고 생각 : 대부분의 절에서 사용 가능: 조건문 역할 > 컬럼값 조작: 조건을 만족하면
: order by 컬럼명 asc, desc (오름차순 기본값)이 포스팅에서 살펴볼 Query 4문장 3\. SELECT column_list 원하는 컬럼을 지정 > 해당 컬럼만 가져와라.1\. FROM table_name 데이터 소스, 어떤 테이블로부터 테이터를 가져
: Java의 count(), sun(), max(), min(), average() 와 동일한 기능count()sum()avg()max()min()count()실습 코드📌count(\*) = 14개 하지만 count(population) = 13개 : null 값
: 반올림 함수: number round(컬럼명) : 정수 반환: number round(컬럼명, 소수이하 자릿수) : 실수 반환실습 코드\+ from dual: 절삭 함수: 무조건 내림 함수: number floor(컬럼명) : 정수 반환: number trunc(컬
: upper(), lower(), initcap(): varcher2 upper(컬럼명): varcher2 lower(컬럼명): varcher2 initcap(컬럼명) : 첫글자만 대문자, 나머지 소문자실습 코드=> Anthony가 없기 때문에 다 대문자나 소문자로
varchar2 to_char(숫자형) : 숫자 > 문자varchar2 to_char(날짜형) : 날짜 > 문자number to_number(문자형) : 문자 > 숫자date to_date(문자형) : 문자 > 날짜varchar2 to_char(숫자형,형식문자열
sysdate: 현재 시스템의 시각을 반환: Calendar.getInstance(): date sysdate날짜 연산📌 시각은 11시 40분 (한 시점을 의미)📌 시간은 40분 (시각과 시각 사이의 양을 의미)1\. 시각 - 시각 = 시간(일)실습 코드2\. 시간
테이블 생성하기 > 스키마 정의하기 > 컬럼 정의하기 > 컬럼의 이름, 자료형, 제약사항 정의: 해당 컬럼에 들어갈 데이터(값)에 대한 조건: 데이터 무결성을 보장하기 위한 도구 : 해당 컬림이 반드시 값을 가져야 한다.: 해당 컬럼에 값이 없으면 에러 발생: 필수값실
: DML: 테이블 데이터를 추가하는 명령어실습 코드➕ 테이블 복사실습 코드📌 테이블 복사 할 때 유의할 점!테이블 구조 복사(o)제약 사항 복사(x)임시 + 다량 데이터 용도 > 테스트용 (주로 개발중에 만들고 실제 서비스에는 절대 사용x)
: DML : 원하는 행의 원하는 컬럼값을 수정하는 명령어실습 코드📌 꼭 코드 위에 트랜잭션 처리 하고 할 것 !! 아니면 되돌 릴 수 없는 대 참사...😂😂💡되돌릴 땐 미리 만들어둔 rollback문 실행!
: 특정 기준으로 레코드를 그룹으로 나눈다.(수단) > 각각의 그룹을 대상으로 집계 함수를 실행한다.(목적)실습 코드📌 저번에 select 주의 사항에서 집계함수와 일반컬럼을 함께 쓸 수 없다고 했으나그룹으로 지은 컬럼은 가능하다!: 그룹에 대한 조건: having을
: 하나의 문장안에 하나의 select(insert, update, delete)로 되어 있는 쿼리: 하나의 문장안에 또 다른 문장(무조건 select)이 들어있는 쿼리: select <- select : insert <- select: update <
=> 테이블을 다시 수정해야 고쳐지는 것들 > 구조적 문제!!1\. 테이블에 기본키가 없는 상태 > 데이터 조작 불가능 (레코드 식별 불가능)2\. null이 많은 상태의 테이블 > 공간 낭비 + SQL 작업 불편3\. 데이터가 중복되는 상태 > 공간 낭비 + 데이터
: 데이터베이스 객체 중 하나(테이블, 제약사항, 시퀀스, 뷰): 가상 테이블, 뷰 테이블 등..: 원하는 데이터를 선택해서 사용자 정의를 해놓은 요소: or replace => 수정 역할 (원래 있는 코드 수정하고 바로 create 하면 수정된 테이블 반환): 테이블
: 테이블과 테이블을 합치는 연산: 스키마가 동일한 결과셋끼리 가능실습 코드📌 union, union all의 차이점📌 구조가 다르면 에러: 테이블과 테이블을 빼는 연산 (차집합): 어느 테이블에서 어느 테이블을 빼는 순서에 따라 결과셋이 다름실습 코드: 테이블과
객체 생성 : create객체 수정 : alter -- 잘 안 사용함 > 수정이 생기는 일이 생기면 좋지 않음객체 삭제 : drop데이터 생성 : insert데이터 수정 : update데이터 삭제 : delete 테이블 수정 > 테이블 정의 수정 > 스키마 수정 > 컬
: 실제 컬림이 아닌데 컬럼처럼 행동하는 객체rownum: 행번호: 시퀀스 객체 상관 x: 테이블의 행번호를 가져오는 역할: 오라클 전용실습코드📌 1. rownum은 from절이 호출될때 계산되어진다.📌 2. where절에 의해 결과셋의 변화가 발생할 때 다시 계산
: rownum을 기반으로 만들어진 함수1\. rank() over(order by 컬럼명 asc|desc) \- 동일값 = 동일순서 \- 누적 o2\. dense_rank() over(order by 컬럼명 asc|desc) \-
: 인라인뷰(from 절 서브쿼리)에 이름을 붙이는 기술with절 > 임시 뷰 이름view > 영구 뷰 이름실습 코드: null을 치환하는 함수1\. nvl (컬럼, 값) -> 주로 사용2\. nvl2(컬럼, 값, 값)실습 코드
계층형 쿼리, Hierarchical query : 오라클 전용 쿼리 : 레코드의 관계가 서로간의 상하 수직 구조인 경우에 사용한다. : 자기 참조를 하는 테이블에서 사용(셀프 조인) : 자바(= 트리 구조) 1. start with절 + connect by 절 2
1\. 요구사항 수집 및 분석 2\. 개념 데이터 모델링 3\. 논리 데이터 모델링4\. 물리 데이터 모델링 4.5 정규화5\. 데이터베이스 구축(구현): 요구 분석 기반 > 수집한 데이터 > 분석 > 저장 구조 > 도식화 > 산출물(ERD): 데이터를 저장하기 위한
: Oracle's Procedural Language extension to SQL: 기존의 ANSI-SQL + 절차 지향 언어 기능 추가(변수, 제어 흐름, 객체 정의 등): 메서드, 함수 등.. (같은 말): 순서가 있는 명령어들의 집합: 모든 PL/SQL 구문은