MYSQL 16

[Server] MariaDB Docker Container 생성하고 실행하기

1. 제공되는 MariaDB image pull docker pull mariadb:[버전명] - 버전명 미기입 시, 최신 버전으로 다운로드 된다. +) 생성된 이미지 확인 docker image ls 2. Docker run docker run --name mariadb-container -v $(pwd)/[db정보_저장할_폴더명]:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=비밀번호 -e MYSQL_DATABASE=DB이름 -d -p [외부포트]:3306 [이미지명] --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci //예시 docker run --name mariadb-container -v $(pwd)..

Programming/Server 2022.11.27

SpringBoot(2) - MyBatis 사용하기

*프로젝트 시작할 때, MyBatis 담아놓고 시작 1. Database 설정하기 application.properties 파일에 작성 #DataBase Setting spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.url=jdbc:mysql://127.0.0.1:3306/testdb?serverTimezone=UTC&useUniCode=yes&characterEncoding=UTF-8 spring.datasource.username=myid spring.datasource.password=mypw 2. Mapper 생성하기 1. src/main/java내에 Mapper 클래스 생성 package com.test..

Programming/Spring 2022.06.10

Spring (4) - MySQL과 연결하기

0. DB 관련 library 불러오기 아래 사이트에서 코드를 복사해서 설정파일(application.xml 또는 pom.xml)에 붙여넣고 저장한다. 1) MySQL이 제공하는 connector https://mvnrepository.com/artifact/mysql/mysql-connector-java/8.0.28 2) jdbc https://mvnrepository.com/artifact/org.springframework/spring-jdbc/5.3.19 1. DB 테이블과 DTO(데이터 객체) 만들기 Workbench를 열어, 이름과 나이 정보를 담을 테이블을 만든다. DB에서 값을 읽어와서 출력하는 기능 구현이 목표라서 값을 미리 넣어준다. create database testdb; use t..

Programming/Spring 2022.04.25

[환경설정] Eclipse의 Web Project와 DB(MySQL) 연결하기2

*기본적인 세팅은 아래 글 참조 2022.03.26 - [웹프로그래밍/Servlet & JSP] - [환경설정] Eclipse의 Web Project와 DB(MySQL) 연결하기 [환경설정] Eclipse의 Web Project와 DB(MySQL) 연결하기 1. DB(MySQL)-connector 설치 및 등록 1. mysql-connector 설치 - mysql에서 각 언어마다 연결해주는 connector를 제공하고 있으니, 가져다 쓰자! https://mvnrepository.com/artifact/mysql/mysql-connector-java.. yerinpy73.tistory.com 위의 글에서 DBUtil.java는 DB의 데이터를 접근할 때마다 새로운 연결을 맺고 끊고를 반복하기 때문에, 시..

[환경설정] Eclipse의 Web Project와 DB(MySQL) 연결하기

1. DB(MySQL)-connector 설치 및 등록 1. mysql-connector 설치 - mysql에서 각 언어마다 연결해주는 connector를 제공하고 있으니, 가져다 쓰자! https://mvnrepository.com/artifact/mysql/mysql-connector-java 원하는 버전 선택 후, jar파일 클릭해서 다운받기 2. 웹프로젝트의 lib에 등록 WEB-CONTENT > WEB-INF > lib에 다운 받은 jar파일을 복사 & 붙여넣기하면 연결이 끝난다. 2. DB와 통신하는 JAVA코드 작성 *웹 프로젝트 뿐만 아니라, 일반 Java파일과 연결할 때도 같은 코드를 사용한다. *객체 지향을 위해, 코드를 분리해서 적었지만 DB관련 코드를 한 곳에 다 작성해서 사용해도 ..

[환경설정] Servlet & JSP 프로젝트 생성

0. 설치 1. Eclipse 설치 https://www.eclipse.org/downloads/ Eclipse Downloads | The Eclipse Foundation The Eclipse Foundation - home to a global community, the Eclipse IDE, Jakarta EE and over 415 open source projects, including runtimes, tools and frameworks. www.eclipse.org 2. TOMCAT(WAS)를 설치 아래 사이트에서 원하는 버전을 다운로드하기 *설치한 Eclipse버전에서 제공하는 Tomcat버전을 확인 후에 설치할 것을 권장합니다. *저는 Eclipse 8.대, Tomcat은 9.0대를 ..

[MySQL] Error Code: 1175. Safe Update Mode

발생하는 이유는 데이터 수정 또는 삭제 시 Key값을 이용해서만 가능하도록 설정되어 있기 때문이다. 해결 방안은 2가지가 있다. [방법1] workbench 설정 변경하기 1. [Edit] > [Preferences...] 에서 SQL Editor의 [Safe Updates (rejects UPDATEs and DELETEs with no restrictions)]를 해제 2. Workbench 재실행 후, 코드 실행 [방법2] 코드로 일시적으로만 변경하기 아래 코드를 작성 후, 수정/삭제 코드 실행 set sql_safe_updates = 0;

[SQL] 조인

1. 조인이란? - 여러 테이블에 분산되어 있는 데이터를 "테이블 간의 관계를 지어" 활용할 수 있도록 함 2. 조인 활용 1. 조인 검색 - 자연 조인 : FROM절에 관련 테이블들을 명세 - 조인 조건(= 조인 프레디킷) : WHERE절에 조인하는 조건을 반드시 작성 /*과목코드 CO423에 수강한 학생의 성명, 학과, 성적을 검색하라*/ SELECT 성명, 학과, 성적 FROM 학생, 수강 WHERE 학생.학번 = 수강.학번 AND 과목코드 = 'CO423'; /*열 이름을 단순화하기 위해 FROM절에 별칭 사용*/ SELECT 성명, 학과, 성적 FROM 학생 S, 수강 E WHERE S.학번 = E.학번 AND 과목코드 = 'CO423'; 2. 셀프 조인 : 자기 자신과 조인 /*같은 학과 학생..

[SQL] SubQuery 중첩질의문

1. SubQuery란? - Query문 안에 또 다른 Query문이 있는 것 - 중첩될 수 있는 Query문은 Select문만 가능하므로 SubSelect라 부르기도 함 - 소괄호 안에 표기 2. SubQuery 활용 1. 검색 1) 단일 값을 반환하는 경우 /* 학생 김철수와 같은 학과에 속하는 학생의 성명을 검색하라*/ SELECT 성명 FROM 학생 WHERE 학과 = (SELECT 학과 FROM 학생 WHERE 성명 = '김철수'); /*괄호에서 반환되는 결과는 '컴퓨터' 단일 값임*/ 2) 2개 이상의 값을 반환하는 경우(1) - 1개의 열로 이루어진 테이블을 반환 - 외부 질의문의 WHERE절에 (NOT) IN, ANY, ALL, EXISTS와 같은 연산자가 사용됨 연산자 설명 IN '=AN..

[SQL] 데이터 조작어(DML) 활용

1. SELECT - 데이터 검색하기 더보기 SQL과 이론적 관계형 데이터 모델 차이점 SQL은 똑같은 투플들을 자동으로 제거하지 않는다. 단, 사용자가 SELECT문에 "DISTINCT"를 명시할 때만 "투플의 중복을 제거"한다. 이론상의 관계형 모델은 "투플의 유일성"에 따라 똑같은 투플을 허용하지 않는다. 따라서, SELECT의 결과가 SQL과 이론상 결과가 다를 수 있다. 기본 구조 SELECT [ALL|DISTINCT] 열_리스트 FROM 테이블_리스트 [WHERE 조건] [GROUP BY 열_리스트 [HAVING 조건]] [ORDER BY 열_리스트 [ASC|DESC]]; # [ ]는 선택 가능 요소로 작성 안해도 되는 구간을 표시한 것, # 실제로 작성할 때는 괄호는 지우기 1. 테이블의 투..