웅진씽크빅 스타터스 부트캠프/교육일지

유데미 스타터스 취업 부트캠프 3기 - 백엔드 6주차 학습 일지

할루솔이 2023. 1. 1. 19:30
반응형

 

6주 차는 열정 빡빡 학생이 되겠다고 다짐했는데 의욕만 앞서서 그런 건지

열감기에 제대로 걸려서 진짜 죽다 살아났다..ㅠㅠㅠ일주일 내내 푹 퍼져서 약만 퍼먹음...ㅋㅋ큐ㅠㅠㅠ

진짜 건강이 최고인걸 다시 한 번 알게 되었고.. 앞으로 마스크 더 잘 쓰고 영양제도 잘 챙겨 먹어야지.. 흑..

모두모두 건강하고 새해 복 많이 받으시길~~!

 


DML

Data Manipulation language(데이터 조작 언어)

데이터 추가 / 수정 / 삭제를 담당한다.

  • INSERT
  • UPDATE
  • DELETE

 

INSERT)

INSERT INTO 테이블명(컬럼명) VALUES(추가 값);

INSERT INTO emp_copy(employee_id, first_name, last_name, salary, hire_date, department_id)
VALUES(1,'사원','이',15000,'2022-12-26',10);

 

-여러 개의 내용 INSERT

INSERT INTO emp_copy VALUES
(5, "길동", "홍", 7000, '2012-11-26',NULL),
(6, "길동", "홍", NULL, '2012-10-26',NULL),
(7, "길동", "홍", NULL, '2012-09-26',50);

 

-DATE값 오류. IGNORE사용해주기!

-- 오류
INSERT INTO emp_copy VALUES 
(5, "길동", "홍", 7000, '2012',NULL)
년도4자리-월2자리-일2자리 0시:0분:0초 => mariadb 날짜 기본 형식


INSERT ignore INTO emp_copy VALUES 
(8, "길동", "홍", 7000, '2012',NULL);
desc emp_copy;

 

UPDATE)

UPDATE 테이블명 SET 컬럼명=수정내용 [WHERE]

	UPDATE menu 
	SET m_code= m_code-1
	WHERE p_name='샌드위치';

=> p_name이 샌드위치인 컬럼을 찾아서 m_code - 1 해라!

 

DELETE)

DELETE FROM 테이블명 [WHERE 조건]

DELETE FROM EMPLOYEE
WHERE ID = 101;

=> ID가 101인 사람의 데이터를 삭제!!

(*delete는 실행 시 즉각 결과 반영됨. 즉, 실수여도 복구 불가하니 확인 후 신중하게 실행하기!)

 

ON DELETE CASCADE : 자식테이블도 같이 삭제 가능

 

 

테이블 생성 시 사용할 수 있는 문장
  1. not null: null값 허용 X
  2. unique: 중복 값 허용 X
  3. check: 조건 설정 가능
  4. primary key(기본키)
  5. foreign key(외래키)
CREATE TABLE orders(
order_code INT(5) PRIMARY KEY,
user_code CHAR(30) UNIQUE,
product_code INT(5) NOT NULL,
buy INT(3) CHECK(buy <=100),
FOREIGN KEY(user_code) REFERENCES customer(user_id)
);

=> FOREIGN KEY(user_code) REFERENCES customer(user_id)

     orders user_code는 user_id에 들어있는 값만 가능해~

 

 

 

DDL

Data Definition language(데이터 구조 정의 언어)

  1. CREATE
  2. ALTER
  3. DROP

 

ALTER) 테이블 수정할 수 있다.

 

ALTER TABLE 테이블명 ADD a INT; -- 없던 컬럼 추가

ALTER TABLE 테이블명 MODIFY a CHAR(10); -- 있던 컬럼 타입이나 길이 수정

ALTER TABLE 테이블명 DROP a; -- 있던 컬럼 삭제

ALTER TABLE 테이블명 ADD CONSTRAINT; -- 존재하는 컬럼에 제약조건 추가

ALTER TABLE 테이블명 MODIFY CONSTRAINT a CHAR(10); -- 있던 컬럼 제약조건 수정

ALTER TABLE 테이블명 DROP CONSTRAINT; -- 제약조건 삭제

 

*ALTER와 UPDATE의 차이!

ALTER는 테이블 내용 수정

UPDATE는 데이터 내용 수정

 

 

서브쿼리

예시)

SELECT department_id, salary, first_name FROM employees
WHERE department_id=(SELECT department_id FROM employees WHERE first_name LIKE 'kelly');

 

서브쿼리는 () 괄호 안에 내용을 작성한다.

SELECT절, FROM절, WHERE절에서 사용 가능하다.

 

 

SELECT user_code AS '고객아이디', 
(SELECT user_name FROM customer WHERE user_id=user_code) AS '고객이름', 
(SELECT p_name FROM menu WHERE p_code=product_code) AS '제품이름', 
buy AS '구입수량', 
(SELECT price FROM menu WHERE p_code=product_code)*buy AS '결제액',
(SELECT money FROM customer WHERE user_id = user_code) AS '잔액'
FROM orders;

customer 테이블의 user_id와 orders 테이블의 user_code는 동일 값이니까

서브쿼리 조건에 넣어서 customer테이블의 이름을 가져왔다.

결제액은 위와 동일하게 menu테이블에서 값을 가져오고 orders테이블의 buy(수량)을 *해준다.

 

 

조인(JOIN)

테이블을 공통된 키로 연결하여 조회할 수 있게 해준다.

 

select id, name, stdnum 
from a join b on a.컬럼 = b.컬럼 ⇒ inner join
from a a1 join a a2 on a1.컬럼 = a2.컬럼⇒ self join
from a left outer join b on a.컬럼 = b.컬럼 ⇒ outer join(a 테이블 모든 데이터 조회)
from a right outer join b on a.컬럼 =b.컬럼 ⇒ outer join(b 테이블 모든 데이터 조회)

서로 다른 테이블인 a와 b를 공통된 키로 연결해주면 조인 완료!!!

 

jdbc
  1. 자바에서 데이터베이스 이용 프로그램
  2. 자바-platform 독립적이다.(모든 자바 소스 동일 동작)
  3. 각 db별 jdbc driver 프로그램 설치해서 사용할 수 있다.
  4. 자바← (연결 라이브러리 다름 - 구현 db 제공사 자바클래스들 = jdbc driver) →DB
  5. java.sql. 인터페이스(자바언어사)상속 자신 db에 맞도록 구현한 클래스 모임이다.
  6. 각 db제공사(vendor)구현 제공해주니 홈페이지 다운로드받아서 사용하면 된다.

 

나는 mariadb를 사용 중이니 

https://mariadb.com/downloads/connectors/connectors-data-access/java8-connector/

여기서 다운로드 받았다.

 

각자 OS에 맞게 설정해서 다운로드 받으면 된다!

 

 

 


DB는 참 재밌다~!~!

CRUD실습도 너무 재밌어서 시간 가는 줄 몰랐다.

더 열심히 공부해야지~.~

 

——————————————————————————

* 유데미 바로가기 : https://bit.ly/3V220ri

* STARTERS 취업 부트캠프 공식 블로그 보러가기 : https://blog.naver.com/udemy-wjtb

본 후기는 유데미-웅진씽크빅 취업 부트캠프 3기 백엔드 과정 학습 일지 리뷰로 작성되었습니다.

반응형