티스토리 뷰
SQL은 Structured Query Language (구조적 질의 언어)의 줄임말이다.
관계형 데이터베이스 시스템(RDBMS)에서 자료를 관리 및 처리하기 위해 설계된 언어입니다.
SQL 문법은 3가지로 나누어져있다.
DDL (Data Definition Language 데이터 정의 언어)
테이블이나 관계의 구조를 생성하는데 사용하며 CREATE, ALTER, DROP,TRUNCATE 문 등이 있다.
CREATE - 새로운 데이터베이스 관계 (테이블) View, 인덱스 , 저장 프로시저 만들기.
DROP - 이미 존재하는 데이터베이스 관계 ( 테이블 ) , 뷰 , 인덱스 , 저장 프로시저를 삭제한다.
ALTER - 이미 존재하는 데이터베이스 개체에 대한 변경 , RENAME의 역할을 한다.
TRUNCATE - 관계 ( 테이블 )에서 데이터를 제거한다. ( 한번 삭제시 돌이킬 수 없음.)
DML (Data Manipulation Language 데이터 조작 언어)
테이블에 데이터 검색, 삽입, 수정, 삭제하는 데 사용하며 SELECT, UPDATE, DELETE, INSERT문 등이 있다.
SELECT - 검색(질의)
INSERT - 삽입(등록)
UPDATE - 업데이트(수정)
DELETE - 삭제
DCL (Data Control Language 데이터 제어 언어)
데이터베이스 사용자에게 GRANT 및 REVOKE로 설정 할 수 있는 권한
GRANT - 특정 데이터베이스 사용자에게 특정 작업에 대한 수행 권한을 부여한다.
REVOKE - 특정 데이터베이스 사용자에게 특정 작업에 대한 수행 권한을 박탈 or 회수 한다.
ORM이란 Object Relational Mapping(객체-관계-매핑)의 약자이다.
객체와 데이터베이스의 관계를 매핑해주는 도구
프로그래밍 언어의 객체와 관계형 데이터베이스의 데이터를 자동으로 매핑해줌
프로그래밍 언어의 객체와 관계형 데이터베이스 사이의 중계자(통역자) 역할을 한다.
MVC 패턴에서 모델(Model)을 기술하는 도구이다.
객체와 모델 사이의 관계를 기술하는 도구이다.
@Getter
@Setter
@NoArgsConstructor
@Entity
public class Comment extends Timestamped{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(nullable = false)
private String comment;
@Column(nullable = false)
private String nickname;
@Column(nullable = false)
private Long userid;
@ManyToOne
@JoinColumn(name = "Board_ID", nullable = false)
private Board board;
public void update(CommentRequestDto commentRequestDto) {
this.comment = commentRequestDto.getComment();
}
public Comment(CommentRequestDto commentRequestDto,Board board, User user) {
this.comment = commentRequestDto.getComment();
this.board = board;
this.userid = user.getId();
this.nickname = user.getNickname();
}
public interface BoardRepository extends JpaRepository<Board, Long> {
List<Board> findAllByOrderByCreatedAtDesc();
Optional<Board> findByIdAndUserid(Long id, Long userid);
List<Board> findByUserid(Long userid);
}
데이터베이스 접근을 프로그램밍 언어의 관점에서 맞출 수 있다.
SQL을 자동으로 생성하여 불일치를 해결한다.
SQL 문을 직접 작성하지 않고 엔티티를 객체로 표현 할 수 있다.
객체를 통해 간접적으로 데이터베이스를 다룰 수 있다.
마지막으로
ORM(Object-Relational Mapping)은 객체와 관계형 데이터베이스 간의 변환을 자동화하는 기술이고MVC(Model-View-Controller)는 소프트웨어 디자인 패턴
이 둘은 서로 밀접한 관계가 있다.
ORM을 사용하면 데이터를 자동으로 객체로 변환할 수 있으므로, 모델 부분을 쉽게 구현할 수 있어서
애플리케이션의 유지 보수성을 향상시키고 개발 시간을 단축시키는 데 도움이 되고
개발을 효율적으로 할 수 있다.
'Spring' 카테고리의 다른 글
form-date, consumes와 produces의 차이점 (0) | 2023.03.30 |
---|---|
CORS 문제 해결하기 (0) | 2023.03.23 |
Spring Security (0) | 2023.03.15 |
@Autowired 생략 가능? (0) | 2023.03.12 |
DI, IoC, Bean (0) | 2023.03.12 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 오토 스케일링
- Load Balancer
- flask
- 로드 밸런서
- HTML
- githubactions
- 위치의 중요성
- CICD
- EC2
- aws
- Auto Scaling
- 로드밸런서
- JWT
- 인스턴스
- 시작 템플릿
- CodeDeploy
- java
- script
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
글 보관함