분류 전체보기 428

Chapter 06 DML : 내장 함수와 갱신문

1. 단일행 내장함수(Single-Row Built-In Functions) 1-1. SQL 내장 함수 - 단일행 내장 함수(SINGLE-ROW BUILT-IN FUNCTIONS): 함수의 입력이 단일 행 -> 각 행에 대해 개별적으로 적용, 단 하나의 결과를 리턴 (SELECT, ORDER BY, WHERE절에 사용) -> 함수의 인자(argument)로 컬럼명, 표현식, 상수가 가능 -> 함수의 인자로 함수를 사용하는 함수의 중첩(nesting)이 가능하다. Ex) 문자형 - ASCII(char), CHAR(integer): 아스키 코드 값, 아스키 문자를 리턴 - INSTR(str, substr): str에서 첫번째 나타나는 substr의 시작위치를 리턴 - SUBSTR(str, position[,..

Chapter 15 입출력 I/O

1. 자바에서의 입출력 1.1 입출력이란? - Input & Ouput => 입출력 1.2 스트림(stream) 입출력을 수행하려면 (어느 한쪽에서 한 쪽으로 데이터를 전달하려면) 데이터를 전송할 수 있는 무언가가 필요하다. "스트림"이란 데이터를 운반하는데 사용되는 연결 통로이다. 스트림은 단방향 통신만 가능하기 때문에 입력, 출력을 동시에 처리할 수 없다. 스트림은 Queue와 같이 선입선출 구조로 되어있어서 먼저 입력된 데이터가 먼저 출력된다. 1.3 바이트기반 스트림 - InputStream, OutputStream 스트림은 바이트 단위로 데이터를 전송하며 입출력 대상에 따라 다음과 같은 스트림이 있다. InputStream: read() 오버라이드하고 OutputStream: write() 오버..

Java/Java의 정석 2022.03.07

Chapter 05 DML : 단일 테이블 검색문 (Part 2)

3. 검색문의 GROUP BY 절과 HAVING절 - SELECT문의 GROUP BY절과 HAVING절 -> HAVING을 이용하면 원하는 특정 그룹만 선택 가능하다. -> 집단 함수를 함께 사용해서 그룹별 통계치를 생성한다. (1) 집단함수(Aggregate Functions) - 집단함수명 ( [ALL 또는 DISTINCT] 컬럼명 또는 표현식 ) ex) COUNT, SUM, AVG, MIN, MAX, STDDEV, VARIAN - 집단 함수는 WHERE절에 사용할 수 없다. (HAVING 절에는 가능) (2) GROUP BY절 - 표준SQL에서는 WHERE, GROUP BY절에서 alias 사용 불가능 - MySQL에서는 GROUP BY절 사용 가능 - 집단 함수의 중첩은 허용하지 않는다. - GR..

[2주차] 강의노트 DDL & DML

2022-03-05 프로그래머스 2주차 강의 0. 지난 과제 리뷰 - 표준 SQL 기능은 여러 프로그램에서 사용할 수 있다. - 내가 쓰는 기능이 표준인지 파악한다. - 고정길이 문자열(항상 n개 문자를 저장) / 가변길이 문자열의 차이() -> CHAR(n): 최대 255문자 / VARCHAR(n): 최대 65,535문자 -> 고정길이는 데이터를 읽어내는 게 빠르다. 단점: 디스크의 낭비? -> 가변길이는 디스크의 낭비가 적다. 단점: - NOT NULL -> 컬럼제약방식이 가장 적합 -> 그 외 -> ???방식 - Constraint는 수정이 안 된다. - 컬럼별칭은 표준 SQL에서는 '출력 용도'로만 사용한다.(SELECT, ORDER BY 절에 사용가능) -> MySQL에서는 GROUP BY절에서..

Chapter 14 람다와 스트림

ㅇ1. 람다식(Lambda expression) 1.1 람다식이란? Def) 람다식: 함수(메서드)를 간단한 식(expression)으로 표현하는 방법 - 람다식은 사실 익명 클래스의 객체와 동등하다. -> 람다식을 다루기 위한 참조 변수가 필요하다. - 함수와 메서드의 차이 -> 근본적으로 동일, 함수는 일반적 용어, 메서드는 객체지향개념 용어 -> 함수는 클래스에 독립적, 메서드는 클래스에 종속적이다. 1.2 람다식 작성하기 1) 메서드의 이름과 반환 타입을 제거하고 '->'을 블록 앞에 추가한다. 2) 반환값이 있는 경우, 식이나 만 적고 return문을 생략가능하다. (세미콜론 안 붙인다.) 3) 매개변수 타입이 추론 가능하면 생략 가능하다. (대부분 생략 가능) - 작성 시 주의사항 1) 매개 ..

Java/Java의 정석 2022.03.04

Chapter 12 지네릭스, 열거형, 에너테이션

1. 지네릭스(Generics) 1.1 지네릭스란? Def) 지네릭스: 다양한 타입의 객체들을 다루는 메서드나 컬렉션 클래스에 컴파일 시의 타입 체크를 해주는 기능 - 자료형을 제한해주는 기능이다. - 타입 안정성이 높아지고 형변환의 번거로움이 줄어들어 간결해진다. - 의도하지 않은 타입의 객체가 저장되는 것을 막는다. 1.2 지네릭 클래스의 선언 - 클래스와 메서드에 선언할 수 있다. Ex) 지네릭 클래스 Box가 선언되어 있을 때 - Box: 지네릭 클래스, 'T의 Box' 또는 'T Box'라고 있는다. - T: 타입 변수 또는 타입 매개변수(T는 타입 문자) - Box: 원시 타입(raw type) Note) 지네릭스의 제한 - 지네릭 타입의 배열을 생성할 수 없다. - static 멤버에 타입 ..

Java/Java의 정석 2022.03.02

Chapter 11 컬렉션 프레임웍(Collection Framework)

1. 컬렉션 프레임웍 (Collection Framework) 컬렉션: 여러 객체(데이터)를 모아 놓은 것 프레임워 = 라이브러리(기능) + 프로그래밍 방식 프레임워크: 표준화, 정형화된 체계적인 프로그래밍 방식 컬렉션 프레임워크: 데이터 군을 저장하는 클래스들을 표준화한 설계 컬렉션(다수의 객체)을 다루기 위해 표준화된 프로그래밍 방식 컬렉션을 쉽고 편리하게 다룰 수 있는 다양한 클래스 제공 1.1 컬렉션 프레임웍의 핵심 인터페이스 List: 순서가 있는 데이터의 집합, 데이터 중복을 허용 Set: 순서를 유지하지 않는 데이터의 집합, 중복 허용하지 않는다. ex) HashSet, TreeSet Map: 키 - key(중복 허용하지 않는다.)와 값-value(중복 허용)이 쌍으로 이루어진 데이터의집합 ..

Java/Java의 정석 2022.03.02

Chapter 04 DML : 단일테이블 검색문(Part 1)

- 관계 대수 연산자 1) 집합연산자 2) 순수관계 연산자: 셀렉트(WHERE), 프로젝트(SELECT), 조인 3) 확장된 관계 연산자: 외부조인 / 그룹연산/ 통계연산 / 작명연산 - SQL DML(Data Manipulation Language) 1) 검색: SELECT문 2) 갱신: INSERT문/ DELETE문/ UPDATE문 1. SELECT문 -> SELECT - (FROM) - WHERE 구조 -> SELECT절: 관계대수의 프로젝트 연산자 -> FROM절은 표준SQL, Oracle에서 생략불가 (MySQL, SQL server은 가능) (1) SELECT문 실행순서 FROM -> WHERE -> GROUP BY -> HAVING -> SELECT -> ORDER BY - SELECT문 종..

Chapter 03 스키마와 테이블 정의를 위한 명령문

1. SQL(Structured Query Language) - SQL표준의 역사 - 표준 -> 국가표준: 강제적 사용가능 -> 국제 표준: 사용 권고 (recommadation) -> 국제 표준이 국가 표준으로 채택되어야 강제적 적용이 가능 -> 제조사별로 SQL문 법의 차이는 적어지고 있으나 데이터 유형과 내장함수는 아직 차이가 많다. -> SQL표준의 100%를 지원하는 제품은 없다. (보통, 80~90%) - DBMS 응용 프로그램 개발 팁 -> 이식성이 보장된 응용프로그램 작성한다. -> 표준 기능과 특정 제품 고유의 기능(사용 자제)을 구별한다. - SQL 데이터 타입 1) 숫자형 2) 문자형: CHAR(n) - 고정 길이 문자형, VARCHAR(n) - 가변길이 문자열(varying char..

Chapter 10 날짜와 시간 & 형식화 date, time and formatting

1.날짜와 시간 1.1 Calendar 와 Date - Date -> Calendar(오래 쓰다가 바뀜) -> time - 실무에서는 아직 Calendar을 쓰기도 한다. - Calendar 클래스 -> 추상 클래스(인스턴스 생성 불가)이므로 getInstance() - (static)를 통해 구현된 객체를 얻어야 한다. - Calendar 클래스 - Date와 Calendar 간의 변환 -> Date의 메서드는 대부분 'deprecated-더 이상 사용을 권장하지 않음.'되었지만 여전히 사용한다. "하위 호환성" - 컴퓨터는 항상 시간을 정수로 저장한다. - clear(int field)는 Calendar 객체의 모든(특정) 필드를 초기화한다. -> 1970년 1월 1일 00:00:00 (EPOCH T..

Java/Java의 정석 2022.02.28