개발일지/Database18 블로그 DB 시나리오 보호되어 있는 글 입니다. 2022. 10. 19. CASCADE DELETE 는 테이블 내의 레코드를 삭제할 때 사용하는 명령어입니다. 학생에 관한 정보를 모아둔 위와 같은 테이블이 있다고 할 때, DELETE 를 활용하면 조건에 따라 개별 학생의 정보가 담긴 row 를 하나씩 지우거나, 혹은 테이블 내의 모든 row 를 지우는 것이 가능합니다. 하지만 여러 개의 테이블이 foreign key 로 묶여있을 경우에는 상황이 조금 다릅니다. 서로가 연결되어 있기 때문에 어느 하나를 지워서는 정보가 꼬이는 상황이 발생할 수 있죠. MySQL 에서는 만약 어떤 테이블의 row 의 정보가 다른 테이블과 foreign key 로 묶여있을 때 DELETE 명령어를 사용해 row 를 삭제하려고 하면, ERROR 1451 (23000): Cannot delete or update a.. 개발일지/Database 2022. 10. 19. CRUD - (JDBC) JDBC란 ? JDBC(Java DataBase Connectivity)는 데이터베이스에 연결 및 작업을 하기 위한 자바 표준 인터페이스 이다. 자바는 DBMS(Oracle, MySQL, MongoDB 등)의 종류에 상관 없이 하나의 JDBC API를 이용해서 데이터베이스 작업을 처리한다. 이 JDBC는 DB에 접근해서 CRUD를 쉽고 효율적이게 할 수 있게 하고, 고성능에서의 세련된 메소드를 제공하며 쉽게 프로그래밍 할 수 있게 도와준다. # JDBC가 생긴 이유 JDBC API가 없던 때에는 데이터베이스의 종류 마다(ms-sql, my-sql, oracle ..) 각각의 SQL문을 사용 그 결과 DB의 종류에 따라 SQL문의 작성 방법이 너무나 차이가 나서 구현이 불편함. 그래서 메서드나 전역변수 등.. 개발일지/Database 2022. 10. 18. Class for Class Class class 클래스 사용하기 자바의 모든 클래스와 인터페이스는 컴파일 후 class 파일 생성 됨. 개발일지/Database 2022. 10. 18. JAVA와 MySQL(DB) 연결하기 https://downloads.mysql.com/archives/c-j/ MySQL :: Download MySQL Connector/J (Archived Versions) Please note that these are old versions. New releases will have recent bug fixes and features! To download the latest release of MySQL Connector/J, please visit MySQL Downloads. MySQL open source software is provided under the GPL License. downloads.mysql.com 버전은 낮은걸 사용하는걸 추천한다. 알집을 다운받아주자!!! 알집 압축을.. 개발일지/Database 2022. 10. 18. BETWEEN 사용법 조건 A 에서 조건 B 사이의 값을 조회한다 = 조건 키 170(포함) ~ 180(포함) 두 조건을 포함하는 사이값을 모두 출력하려면 BETWEEN을 사용하면 된다. 개발일지/Database 2022. 10. 13. 데이터베이스 (사용자 생성, 권한 확인) 개발일지/Database 2022. 10. 13. LIMIT, ORDER BY LIMIT 말그대로 리밋 즉 제한을 하는 것이다. 필요한 데이터가 30개만 표시를 하면된다 하면 LIMIT 30을 써주게 되면 30개의 로우가 출력이 된다. 개발일지/Database 2022. 10. 13. GROUP BY절 , DISTINCT, HAVIGN 절 DISTINCT = 컬럼 내 데이터를 중복을 제거해 조회한다. GROUP BY = 컬럼 내 데이터를 Unique한 값을 기준으로 그 결과를 가져온다. DISTINCT 와 GROUP BY 차이 두 작업은 기능적으로는 약간의 차이가 있지만, 동일한 형태의 작업이다. 쉽게 생각해서, DISTICNT는 그룹핑만, GROUP BY는 그룹핑 + 정렬의 과정이다. 때문에 연산 속도도 DISTINCT가 더 빠르며 같은 그룹핑 작업을 진행하므로 두 연산을 동시에 할 수 없기도 하다. - GROUP BY 절은 데이터들을 원하는 그룹으로 나눌 수 있다. - 나누고자 하는 그룹의 컬럼명을 SELECT절과 GROUP BY절 뒤에 추가하면 된다. - 집계함수와 함께 사용되는 상수는 GROUP BY 절에 추가하지 않아도 된다. (.. 개발일지/Database 2022. 10. 13. 집계함수 (MAX, MIN, SUM, COUNT, ROUND ) * 그룹 함수란 ? 테이블의 전체 행을 하나 이상의 컬럼을 기준으로 컬럼값에 따라 그룹화하여 그룹별로 결과를 출력하는 함수이고 복수행 함수라고도 한다. * 그룹함수 규칙 1. 그룹함수는 NULL값이 있는 컬럼은 조회에 포함시키지 않는다. 2. LOW가 없는 테이블에 그룹함수 COUNT()를 사용 시 0이 출력되며 SUM()를 사용시 NULL 값이 출력된다. 3. COUNT, MAX 와 MIN은 문자, 숫자, 날짜 데이터 모두에게서 사용할 수 있다. 그러나 AVG SUM, VARIANCE, STDDEV는 NUMBER만 사용 가능하다. 4. EXPR이 있는 인수들의 자료 형태는 CHAR, VARCHAR2, NUMBER, DATE 형이 될 수도 있다. * COUNT 함수 - 테이블에서 조건을 만족하는 행의 개.. 개발일지/Database 2022. 10. 13. 서브쿼리 활용한 AVG 개발일지/Database 2022. 10. 13. 서브쿼리 활용한 SUM 결과 개발일지/Database 2022. 10. 13. 이전 1 2 다음