백엔드/Oracle 13

57 -Oracle : SQL ( 로또 실습 예제 )

1. 로또 기본 테이블 (lotto_basic) 생성 -- 1. 로또 기본 테이블 (lotto_basic) CREATE TABLE lotto_basic( seq_no NUMBER NOT NULL,-- 로또 회차 draw_dateDATE, -- 추첨일 num1 NUMBER,-- 당첨번호1 num2 NUMBER,-- 당첨번호2 num3 NUMBER,-- 당첨번호3 num4 NUMBER,-- 당첨번호4 num5 NUMBER,-- 당첨번호5 num6 NUMBER,-- 당첨번호6 bonus NUMBER-- 보너스번호 ); SELECT * FROM lotto_basic; -- 기본키 추가 : ALTER TABLE 이용 -- → 기본키의 경우, 제약조건이므로 CONSTRAINTS 이용 ALTER TABLE LOTTO..

백엔드/Oracle 2023.07.18

Oracle : SQL ( OUTER JOIN / SUBQUERY )

3. OUTER JOIN - 릴레이션에서 JOIN 조건에 만족하지 않는 튜플도 결과로 출력하기 위한 JOIN 방법 - LEFT OUTER JOIN | RIGHT OUTER JOIN | FULL OUTER JOIN ① LEFT OUTER JOIN -INNER JOIN의 결과를 구한 후, 우측 항 릴레이션의 어떤 튜플과도 맞지 않는 좌측 항의 릴레이션에 있는 튜플들에 NULL값을 붙여서 INNER JOIN의 결과에 추가함 - 형식 SELECT [테이블명1].속성명, [테이블명2].속성명, … FROM 테이블명1 LEFT OUTER JOIN 테이블명2 ON 테이블명1.속성명 = 테이블명2.속성명 ; SELECT [테이블명1].속성명, [테이블명2].속성명, … FROM 테이블명1, 테이블명2 WHERE 테이블..

백엔드/Oracle 2023.07.17

Oracle : SQL ( INNER JOIN )

JOIN에서 사용할 테이블에 데이터 추가 - 사원 테이블(tbl_employee)에 데이터 추가 -- 1. 사원 테이블에 데이터 추가 (1 ~ 5번 자료) INSERT INTO tbl_employee ( emp_id, emp_name, gender, age, hire_date, dept_id, address_id) VALUES ( 1, '김유신', '남성', 56, TO_DATE('2023-07-01', 'YYYY-MM-DD'), 1, 2); INSERT INTO tbl_employee ( emp_id, emp_name, gender, age, hire_date, dept_id, address_id) VALUES ( 2, '신사임당', '여성', 34, TO_DATE('2023-07-01', 'YYYY-..

백엔드/Oracle 2023.07.14

Oracle : SQL ( INSERT / DELETE / UPDATE 확장 / COMMENT )

INSERT ① 정식 형식 : 컬럼 리스트와 값 리스트는 1:1 대응 ( 데이터형, 관련순서 ) INSERT INTO 테이블명 ( 컬럼 리스트, … ) VALUES ( 값 리스트, … ) ; ② 약식 형식 INSERT INTO 테이블명 VALUES ( 값 리스트, … ) ; → 이 경우에는 컬럼을 알 수 없으므로, 테이블 구조(컬럼 구조) 형식으로 값을 입력함 • 대용량 데이터를 삽입할 경우, 트랜잭션 이용 권장 ③ 주로 백업용으로 필요한 데이터만 모으는 결과보고 데이터용으로 사용 INSERT INTO 테이블명 ( 컬럼 리스트, … ) SELECT 문장 ( 컬럼 리스트와 일치하는 검색 컬럼 리스트 ) ( 참고 사항 ) • 실제 데이터 백업용으로 사용할 때 많이 쓰는 방법은 테이블을 만들 때 SELECT문..

백엔드/Oracle 2023.07.13

SQL ( GROUP BY ~ HAVING / 집합연산자 )

GROUP BY에서 조건절 HAVING 추가 • 그룹 질의 결과물 내에서 특정 내용만들 다시 가져오려면 HAVING 조건절 사용 • WHERE : 그룹화하기 전의 조건 설정 HAVING : 그룹화한 후의 조건 설정 ※ GROUP BY절이 그룹 지정! 그룹에 대한 조건 지정 시, WHERE절이 아닌 HAVING절 사용 ※ WHERE 절에는 MAX, SUM, AVG 등과 같은 집계함수 사용 불가 • 구문 SELECT 컬럼명 FROM 테이블명 WHERE 그룹화하기 전 조건 (전체 테이블에 적용) GROUP BY 그룹화할 컬럼명 HAVING 그룹화한 후의 조건 (그룹화한 컬럼에 적용) ORDER BY 컬럼명 ; SELECT STATION_NAME, BOARD_TIME, GUBUN, MIN(PASSENGER_NU..

백엔드/Oracle 2023.07.12

Oracle : SQL ( CASE WHEN THEN / GROUP BY )

CASE 구문 : CASE WHEN THEN - DECODE 함수를 조금 더 구체화하여 SELECT절의 구문형식으로 확장 가능 DECODE 함수와 같이 컬럼이나 표현식을 비교하여 결과값을 비교하여 조건에 맞는 결과값을 리턴함 → 특정 조건에 따라 값을 변경할 수 있는 수식으로, 주로 SELECT절에서 사용 - ① 단순형 CASE 구문 CASE 표현식 WHEN 비교조건1 THEN 결과1 // 표현식과 비교조건1 비교 시, 같으면 결과1 리턴 WHEN 비교조건1 THEN 결과1 // 표현식과 비교조건2비교 시, 같으면 결과2 리턴 WHEN 비교조건1 THEN 결과1 // 표현식과 비교조건3 비교 시, 같으면 결과3 리턴 ELSE 기본값 // 표현식이 조건들과 같지 않은 경우, 기본값 리턴 END // CAS..

백엔드/Oracle 2023.07.11

Oracle : SQL ( 날짜형 함수 / 형변환 함수 / NULL 처리 함수 / GREATEST, LEAST, DECODE / WITH절 )

날짜형 함수 - 데이터형 date or timestamp를 대상으로 연산을 수행하는 함수 - 특정일을 기준으로 ‘과거 3일전’, ‘한달 후’ 등 이와 같이 날짜 계산 가능 또한, 해당 월의 마지막 날이 언제인지 등 날짜를 구할 수 있음 - 중요한 기본 날짜 함수 - SYSDATE • 현재 날짜와 시간 반환 (인터넷 시간이 아닌 컴퓨터의 시계를 이용) SELECT SYSDATE FROM dual; → 결과 : 2023-07-10 00:32:08.000 - ADD_MONTHS( date, n ) • 입력날짜 date에 입력달 n개월을 더한 날짜를 반환 • n < 0인 경우, 입력날짜에서 n개월을 뺀 날짜를 반환 SELECT ADD_MONTHS(SYSDATE, 1) FROM dual; → 결과 : 2023-0..

백엔드/Oracle 2023.07.10

Oracle : SQL - 내장 함수

내장 함수 - 수학함수의 정의와 유사 - 여러 자주 사용하는 기능을 한 함수 이름을 정의해놓으면 필요할 때 불러서 사용 가능 - 그 중에서 이미 잘 만들어진 SQL 제공함수를 공부해보자. 1. 숫자형 함수 - 입력되는 파라미터(매개변수)가 숫자인 경우, 계산결과(반환값)이 숫자인 함수를 의미 - 절대값 함수 : ABS(n) • 매개변수 n의 절대값을 반환 • SELECT ABS(-199) FROM dual; → 결과 : 199 - 천장 함수 : CEIL(n) • 매개변수 n과 같거나 큰 최소 정수 반환 = 올림 • SELECT CEIL(10.5) FROM dual; → 결과 : 11 - 바닥 함수 : FLOOR(n) • 매개변수 n과 같거나 작은 최대 정수 반환 = 내림 • SELEC..

백엔드/Oracle 2023.07.07

Oracle : SQL ( SELECT -2 )

연습 -- 7. IN 연산 -- • 몇 개의 낱개의 검색어와 비교할 때, 이 검색어들이 서로 연관되어 있지 않은 경우에 사용하는 연산자 -- → 이 검색어가 같으면 true, 다르면 false -- • WHERE 컬럼명 IN ( value1, value2, ... 여러 조건 ) -- → value의 경우, 컬럼명의 데이터타입과 일치하는 데이터값이 와야함 -- • IN연산은 OR연산과 유사하지만, OR연산의 경우 중복되는 데이터를 모두 적어야 하므로 혼동 가능성 있음 -- 반면, IN연산의 경우 중복되는 부분을 한번만 쓰므로 보다 깔끔한 표현이 가능 -- 예) 잠실역에서 7시와 9시에 탑승한 고객 검색에서 7시, 9시가 바로 그 대상 검색어에 해당됨 -- "잠실역에서 7시와 9시에 승/하차한 고객 검색" ..

백엔드/Oracle 2023.07.06

Oracle : SQL ( SELECT - 1 )

외부에서 다운받은 파일 열고 DB에 데이터 저장하기 - 상단 File - Open File : 해당 파일 열기 - 상단 스키마 아이콘 클릭 - Select Data Source : 연결되어있는 계정 중 선택 → 변경된 제목 확인 가능 - DB에 데이터 저장할 때 : 저장할 데이터 영역 지정 후, 오른쪽 클릭 - 실행 - SQL 스크립트 실행 클릭 → 클릭 시, 아래와 같은 화면 출력됨 (많은 스크립트 양일 경우, 시간이 걸릴 수 있다는 화면 ) : Yes 클릭하면 DB로 데이터 저장됨 SELECT문 - 내가 원하는 자료를 테이블로부터 검색하는 쿼리 구문 - 형식 SELECT 컬럼리스트 FROM DB명.테이블명 또는 테이블명 WHERE 조건식 ORDER BY 정렬식 ; - 해석 순서 ① FROM 테이블명으..

백엔드/Oracle 2023.07.05