장생농 (140) 썸네일형 리스트형 집계 함수 집계 함수를 사용하면 집합의 개수, 합계 등의 데이터를 구할 수 있다. 집합은 함수의 인자로 지정한다. 집합에 대해 계산한다 해서 집계 함수라 부른다. 따라서 결과값으로는 하나의 행(집계의 결과)을 반환한다. COUNT : 인수로 주어진 집합의 개수를 구해 반환한다. NULL 값은 제외한다. SELECT COUNT(*) FROM sample; -> sample 테이블의 행의 개수를 구해 반환한다. SELECT COUNT(*) FROM sample WHERE name='money'; -> name이 money인 행의 개수를 구해 반환한다. no name 1 a 2 b 3 NULL 위와 같은 테이블이 있을 때, SELECT COUNT(no), COUNT(name) FROM sample; -> COUNT(no.. 데이터 추가, 삭제, 갱신 SQL 첫걸음이란 책을 읽으면서 정리중. SELECT 명령으로는 데이터를 검색한다. 데이터를 추가하는 경우에는 INSERT 명령을 사용한다. INSERT 명령은 테이블의 행 단위로 데이터를 추가한다. 데이터를 추가하기 전 'DESC 테이블명;' 명령을 통해 각 컬럼의 정보를 알고 데이터를 추가할 수 있다. 예를 들어 INT(11), VARCHAR(30), DATE 타입의 컬럼들이 있을 때, 데이터를 추가하려면 다음과 같이 명령문을 사용한다. INSERT INTO sample VALUES(1, 'ABC', '2021-05-20'); -> sample 테이블에 VALUES 괄호 안에 있는 데이터들을 삽입한다. 각 데이터의 순서는 테이블 컬럼의 순서와 맞아야 한다. INSERT INTO sample(no, n.. 정렬과 연산 - 날짜 데이터, CASE SQL 첫걸음이란 책을 읽으면서 정리중. 날짜 연산 데이터베이스에선 날짜 DATE, 시간 TIME, 날짜와 시간 DATETIME 형이 있다. 표준 SQL에서는 'CURRENT_TIMESTAMP'라는 함수를 실행하면 현재 시간을 볼 수 있다. SELECT CURRENT_TIMESTAMP; 위 함수를 시용하면 시간을 저장할 수 있다. 또 직접 시간을 지정해서 저장할 수 있는데, 대부분의 데이터베이스 제품은 날짜 서식을 임의로 지정, 변환하는 함수를 지원한다. Oracle : 문자열 데이터를 날짜 데이터로 -> TO_DATE('2014/11/11', 'YYYY/MM/DD') 날짜시간 데이터와 기간형 수치데이터(1일, 2시간, ...)를 사용해 날짜에 덧셈, 뺄셈 연산을 할 수 있다. 또는 날짜에서 날짜를 빼서.. 스프링 부트 프로젝트 시작할 때, 몰랐던 것 - 템플릿 엔진, mustache 이동욱 님의 책 "스프링 부트와 AWS로 혼자 구현하는 웹 서비스"를 보면서 기본적인 것들, 팁들을 많이 알았다. 이글의 출처이다. 웹 개발에서의 템플릿 엔진 : 지정된 템플릿 양식과 데이터가 합쳐져 HTML 문서를 출력하는 소프트웨어. 서버 템플릿 엔진은 서버에서 구동된다. 서버에서 java 코드로 문자열을 만든 뒤, 이 문자열을 html로 변환하여 브라우저로 전달한다. 클라이언트 템플릿 엔진은 브라우저 위에서 작동한다. 자바스크립트 코드가 실행되는 장소는 서버가 아닌 브라우저이다. Vue.js, React.js를 이용한 SPA(Single Page Application)는 브라우져에서 화면을 생성한다. -> 서버에서는 이미 코드가 벗어난 경우다. -> 서버에서는 json, xml 형식의 데이터만 전달.. 스프링 부트 프로젝트 시작할 때, 몰랐던 것 - JPA(2) 이동욱 님의 책 "스프링 부트와 AWS로 혼자 구현하는 웹 서비스"를 보면서 기본적인 것들, 팁들을 많이 알았다. 이글의 출처이다. API를 만들기 위해 세 가지 클래스가 필요하다. * Request 데이터를 받을 DTO * API 요청을 받을 Controller * 트랜잭션, 도메인 기능 간의 순서를 보장하는 Service -> 여기서 Service는 트랜잭션, 도메인 간의 순서 보장의 역할만 한다. 스프링 웹 계층을 살펴보자 Web Layer : 뷰 템플릿의 영역. 컨트롤러, JSP 등. 더불어 외부 요청과 응답에 대한 전반적인 영역. Service Layer : @Service에 사용되는 영역. 일반적으로 컨트롤러와 DAO의 중간 영역에서 사용된다. -> @Transactional이 사영되어야 하는.. 삽질 에러 해결 - cannot resolve symbol, Cannot access .... * cannot resolve symbol * Cannot access .... 위에 에러 때문에 많은 시간을 버렸다ㅎㅎㅎㅎㅎㅎㅎㅎ...... JPA 공부 중에 저런 에러가 나서 메모리 에러인지, 뭐인지 계속 찾아봤는데 이제 보니 그것과 관련있는 것은 아닌 것 같다. https://kim-hoya.tistory.com/45 : 에러 해결방법을 찾았다. 우선 저기서 rebuild project 방법은 효과가 없었다. 두번째 방법인 Sync project with Gradle -- 이 방법도 소용이 없었다. 세번째 방법은 Invalidate Caches였는데, 설정은 기본값 그대로하고 Invalidate and Restart를 눌렀다. 그제서야 제대로 객체가 인식이 됐다. 하..... 끝. 스프링 부트 프로젝트 시작할 때, 몰랐던 것 - JPA(1) 이동욱 님의 책 "스프링 부트와 AWS로 혼자 구현하는 웹 서비스"를 보면서 기본적인 것들, 팁들을 많이 알았다. 이글의 출처이다. JPA는 자바 표준 ORM 기술이다. 웹 애플리케이션에서는 거의 관계형 데이터베이스가 필수이다. 따라서 객체를 관계형 데이터베이스에서 관리하는 것이 중요하다. 하지만 객체지향 언어를 사용한다면 여러 문제가 생긴다. 1. 프로젝트의 대부분이 코드보다 SQL이 가득해짐. -> 관계형 데이터베이스는 SQL로만 조작할 수 있다 보니, CURD에 대한 SQL을 매번 생성해야 한다.(했다.) 2. 패러다임 불일치. -> RDB는 어떻게 데이터를 저장할지에 초점이 맞춰진 기술이고 -> 객체지향 프로그래밍 언어는 기능과 속성을 한 곳에서 관리하는 기술이다. -> 이 둘의 시작점 조차 다르.. 정렬과 연산 - 수치 연산(함수), 문자열 연산 SQL 첫걸음이란 책을 읽으면서 정리중. SQL은 기본적인 계산 기능을 포함하고 있다. 기본적인 산술 연산 기능을 갖고 있다. -> + - * / %(나머지. MOD를 사용하기도 함.) -> 우선순위는 기본적인 수학 연산에서와 같다. SELECT 구나 WHERE 구에서 사용할 수 있다. 다음과 같은 SAMPLE 테이블이 있다. SELECT *, price * quantity FROM sample; -> 샘플테이블에서 모든 열의 데이터와 단가와 개수를 곱한 값을 출력한다. -> 하지만 이렇게 하면 출력 값에는 'price * quantity'라는 열이 추가되서, 가독성이 떨어진다. -> 이럴 때, AS 구를 사용하면 원하는 이름의 별명을 붙일 수있다. -> SELECT *, price * quantity .. 이전 1 2 3 4 5 6 7 ··· 18 다음