Intelij 에서 MySQL에 데이터 삽입
데이터베이스를 연결을 확인, 데이터 추가, 변경, 검색 등을 통한 과제를 실시 하였다.
CREATE
따로 schema.sql 문서를 작성하여 호출후 명령을 실행하도록 동작
1 : 작성한 문서의 위치를 참조여 file로 설정 하여 파일을 읽는다.
2 : split메소드를 사용하여 세미콜론을 기준으로 실행할 명령어를 String 배열에 담는다.
3 : excute()메소드를 사용하여 실행을 하면 명령이 실행되고 mysql에 데이터 저장
- Statement 클래스는 SQL 명령어를 실행하는 역할을 한다.
JDBC : 자바에서 제공하는 데이터베이스와 연결하여 데이터를 주고 받을 수 있는 인터페이스
JDBC API 를 사용하여 제공하는 메소드를 통하여 DB와 연결하고, 데이터를 넣고 출력한다.
<간략한 흐름 순서>
1. JDBC 드라이버 연결 // Mysql이랑 연결하겠다
2. 계정을 연결 // Mysql에 있는 데이터베이스 연결 id, pw 입력 + Connection 클래스를 통하여 연결
3. 명령 실행 // Statement 클래스 이용
READ, UPDATE
JUnit 환경에서 상수값(쿼리문)을 받아와서 테스트 진행
Table이 만들어 졌다면 구조를 확인하는 테스트 (만들어진 테스트에 상수값만 적절히 설정하여 코드 실행)
이런식으로 상수값만 설정해주면서 SQL 쿼리문을 오랜만에 다시 상기시키면서 복습하는 기회가 되었다. SQL을 처음 접하시는 분들한테는 어려운 쿼리문도 있었다. 주로 처음에는 기본적은 쿼리문이 나왔고 후반부로 가면 JOIN, LEFT JOIN, GROUP BY 등을 활용해야 하는 쿼리문들이 등장했다.
UPDATE (바꿀 테이블) SET (바꿀 열) = (바꿀 내용) // 전체 열의 내용을 바꿀 내용으로 바꾼다.
UPDATE (바꿀 테이블) SET (바꿀 열) = (바꿀 내용) WHERE // WHERE을 설정하여 특정 행만 바꾼다.
UPDATE content SET body ='database is very easy' WHERE title LIKE 'database homework
WHERE NAME LIKE '%luckykim%' // 문자열에 luckykim이 포함되어 있다면
SELECT NAME FROM USER WHERE NAME LIKE'%luckykim%
서브쿼리를 활용하여 원하는 내용 출력 단순한 경우에는 가독성이 좋고 성능이 나쁘진 않지만 수준이 높아지면 JOIN에 비해 성능이 매우 좋지 않다.
서브쿼리를 조인으로 대체할수 있는 경우도 있고 없는 경우도 있다.
SELETE title FROM content WHERE userId = (SELECT id FROM user WHERE name='minsanggu')
'부트캠프 > 코드스테이츠 백엔드부트캠프 43기' 카테고리의 다른 글
코드스테이츠 백엔드 부트캠프 43기 (35일차-스프링 부트) (0) | 2023.02.03 |
---|---|
코드스테이츠 백엔드 부트캠프 43기 (34일차-스프링 프레임워크 특징) (0) | 2023.02.02 |
코드스테이츠 백엔드 부트캠프 43기 (31일차-SQL) (0) | 2023.01.31 |
코드스테이츠 백엔드 부트캠프 43기 (30일차-HTTP) (0) | 2023.01.27 |
코드스테이츠 백엔드 부트캠프 43기 (28일차-코딩테스트) (0) | 2023.01.25 |
댓글