
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 : 자식테이블도 같이 삭제 가능
테이블 생성 시 사용할 수 있는 문장
- not null: null값 허용 X
- unique: 중복 값 허용 X
- check: 조건 설정 가능
- primary key(기본키)
- 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(데이터 구조 정의 언어)
- CREATE
- ALTER
- 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
- 자바에서 데이터베이스 이용 프로그램
- 자바-platform 독립적이다.(모든 자바 소스 동일 동작)
- 각 db별 jdbc driver 프로그램 설치해서 사용할 수 있다.
- 자바← (연결 라이브러리 다름 - 구현 db 제공사 자바클래스들 = jdbc driver) →DB
- java.sql. 인터페이스(자바언어사)상속 자신 db에 맞도록 구현한 클래스 모임이다.
- 각 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기 백엔드 과정 학습 일지 리뷰로 작성되었습니다.
'웅진씽크빅 스타터스 부트캠프 > 교육일지' 카테고리의 다른 글
| 유데미 스타터스 취업 부트캠프 3기 - 백엔드 8주차 학습 일지 (0) | 2023.01.15 |
|---|---|
| 유데미 스타터스 취업 부트캠프 3기 - 백엔드 7주차 학습 일지 (0) | 2023.01.08 |
| 유데미 스타터스 취업 부트캠프 3기 - 백엔드 5주차 학습 일지 (0) | 2022.12.25 |
| 유데미 스타터스 취업 부트캠프 3기 - 백엔드 4주차 학습 일지 (0) | 2022.12.16 |
| 유데미 스타터스 취업 부트캠프 3기 - 백엔드 3주차 학습 일지 (0) | 2022.12.09 |