Oxygen Cherry - Pencil
본문 바로가기

새싹 데이터 분석 교육 (24.05.13~24.08.16)/TIL

[성동2기 전Z전능 데이터 분석가] 0704 (미완)

728x90

 

SQL 기초 1일차

❇️ 오늘 배운 내용 
1. 성취도 평가/정답 확인 
2. 팀 빌딩 진행
3. 디자인 스프린트

 

 

주요 개념

 

 


오전 강의 

 

 

 

성취도 평가 및 정답 확인

 

 

 

| 소제목

요약

 

  • 데이터베이스와 스키마

 

데이터베이스가 오래 된 개념이라 지칭도 많음. 

 

릴레이션  = 테이블

튜플= 행=로우=레코드 

애트리뷰트=열=컬럼

한칸 = 셀

 

 

DBMS : 데이터 베이스 관리 시스템 

  • mysql : 젤 많이 쓰이고 우리가 배울 것 - 완전 프리 오픈소스라 기업 포함 누구나 사용 가능
  • 오라클 데이터베이스: 대기업이 의외로 많이 씀
  • 몽고DB
  • SQLite 스마푸톤에 많이 씀 
  • 마리아DB도 많이 씀 무료라서.
  • 마이크로소프트 SQL 옜날에 싸게 만든 DB들이 많은... 은근히 많이 쓰는. 

 

 

파이썬과 비교했을 때 난이도는?

파이썬은 시각화가 잘되는데 SQL은 그런 거 없다 

 

SQL은 파이썬에 비해 함수가 적나? 라이브러리 있나? 

라이브러리 지원 안하고 

함수 양이 적긴 한데 우리 어차피 파이썬 데이터 분석용으로 함수 몇 개만 배웠으니까 

배우는 량은 비슷할 거임. 

 

 

  • DDL 

 

DML : 데이터 조작어 

 

조회 수정 생성 삭제 

리드 업데이트 크리에이티 딜리트

..CRUD

  SELE  
     
     
     

 

 

웬만한 프로그램 언어는 자연어(우리가 쓰는 언어)랑 닮았는데 

아쉽게도 그게 영어권 개발이었을 뿐. 

 

 

SQL이 DA에게 필요한 이유

 

성능 향상 및 유지 보수 

 

 

CRUD

 

https://bootcamp.uxdesign.cc/mastering-crud-operations-a-framework-for-seamless-product-design-2630affbc1e5

 

https://velog.io/@mk9712/Django-CRUD-%EC%9C%84%EC%A3%BC-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8-%EB%A7%8C%EB%93%A4%EC%96%B4%EB%B3%B4%EA%B8%B0

 

https://micoope.com.gt/?s=crud-operations-in-sql-server-aa-k5n0BkCD

CRUD는 개념임.

실제로는 셀렉트, 겟 이런 식으로 각각 다르게 문법을 쓰는데 CRUD는 그걸 통칭해서 부르는 거임. 

 

어떤 개발자는 CRUD면 다 된다, 우리가 하는 거 CRUD밖에 없다고도 함. 즉 SQL의 필요충분조건 같은 거임.  

 

 

DDL에선 셀렉트 인설트 이런 거는 방식에 따른 문법 뭐 이런... 

https://velog.io/@kiyo/CRUDDML%E3%86%8DDDL%E3%86%8DDCL%E3%86%8DTCL-%EA%B5%AC%EB%B6%84

 

 

 

해석: 

1. EMP라는 테이블에서 이름, 직업, 고용일을 뽑아낸 다음 저 3달 간만 추리고 고용일을 기준으로 정렬해라. 

2. 스미스씨보다 늦게 입사한 애들 걸러내기 

 

 

  • 프로덕트 선정

 

select, join 많이 쓸 것 

 

데이터 모델링의 이해: 테이블 간의 관계를 잘 파악하는 게 중요함 

 

인적 오류를 잘 찾아내고 인식하는 것. 

 

오라클 쓰는 회사 가고 싶은데 mysql 배워도 되나요?

상관없어요 어디선 sum 쓰고 어디서는 count 쓴다는 차이밖에 없어요. 

 

 

배분해준 책은 사실 중급용이에요. 실무자들한테 추천을 받은 책이니까 

수업에서 초급을 배우고 나중에 따로 더 공부하세요. 

실무에선 파이썬 하는 사람보다 

 

 

  • 프로덕트 선정

 

 

 

 

 


오후 강의 

| 소제목

요약

 

 

  • 프로덕트 선정

https://dev.mysql.com/downloads/mysql/

 

https://dbeaver.io/download/

각각을 다운로드. 

 

db 보게 하는 거가 bdeaver인데 이거 깔아서 mysql 연결시키는 것임. 

 

 

 

데이터 가져오기에서 소스는 출처고 타겟은 보내는 곳임 

 

 

https://musclebear.tistory.com/m/115 

윈도우 중에 다운로드 후 실행 안되시는분 요걸 따라해보세요. 

난 되어서 상관없었지만. 

 

 

  • 프로덕트 선정

 

 

ㅀㅎ

스키마 = 내포 - 구조 

상태 =  외연

 

 

 

카디날리티, 즉 행은 하나도 없어도 테이블은 성립하는데 

열은 없음 안됨. 

 

데이터가 들어갈 수 있으니 카디날리티는 바뀔 수 있음. 당연함 행에 데이터 추가하고 삭제하니까. 

열은 대체로 기준이니까. 

 

 

 

 

 

 

열의 순서는 중요하지 않음 셀렉트 할 때 가져오는 순서가 곧 열의 순서니까 뒤죽박죽 됨. 

 

레코드 타입이란?? 파이썬 데이터 프레임처럼 열끼리 다른 거 못가짐? 

각 릴레이션은 오직 하나의 레코드 타입만 포함 • 한 애트리뷰트 내의 값들은 모두 같은 유형 

원자값이란?

한 튜플의 각 애트리뷰트는 원자값을 가짐

 

관계형 데이터베이스의 특성으로 인해 기본키는 테이블마다 1개씩은 있어야 함. 

 

 

ㅇㅀㅇ

 

이 두가지가 있어서 테이블끼리 관계할 수 있음. 

그 외 키는 후보키 대체키 수퍼키 

키는 중복값 없음. 

외래키 여러 개 가질 수 있음. 

예를 들어 저기서 주황색 보면 아마 기본키 아이템 아이디 이런 걸 거임. 

그리고 오덜, 셀럴, 프로덕트 아이디를 외래키로 가지고 있고. 

 

 

 

예시. SQLite 

 

나중에 join 배울 때 키가 왜 필요한지 느끼게 될 것임. 

 

 

 

 

애초에 이럴 거면서 왜 쪼개놨을까? 

 

  • 너무 많으면 과부하 걸림 
    만약 500개 행에 있는 시각디자인과를 콘텐츠 어쩌고로 바꾼다 쳐 ㄷㄷ 
    근데 저걸 쪼개놓으면 열1 번의 뭐를 뭐로 바꿔라 이런 간단한 명령으로도 다른 게 바뀜. 
  • 다 날라가면 타격 큼 
  • 보는 용도가 다름(?) 

 

관리 편의성을 위해 정규화 작업으로 나누는 거임. 그걸 위해 기본키와 외래키가 필요. 

 

 

  • SQL 실습
CREATE TABLE employees (
id INT PRIMARY KEY,
name VARCHAR(50),
position VARCHAR(50),
salary DECIMAL(10, 2)
);


INSERT INTO employees (id, name, position, salary)
VALUES (1, '홍길동', '개발자', 50000.00),
(2, '김철수', '디자이너', 45000.00),
(3, '이영희', '매니저', 60000.00);


SELECT * FROM employees;


UPDATE employees
SET salary = 55000.00
WHERE id = 1;


DELETE FROM employees
WHERE id = 2;

 

강사님이 복붙하라고 주신 것. 

 

create table employees (
id INT primary key,
name VARCHAR(50),
position VARCHAR(50),
salary DECIMAL(10,2)
);

select * from employees;

insert into employees (id, name, position, salary)
values(1, '홍길동', '개발자', 50000.00),
(2, '김철수', '디자이너', 45000.00),
(3, '이영희', '매니저', 60000.00);

update employees
set salary = 55000.00
where id = 1;

select * from employees;

insert into employees (id, name, position, salary)
values(2, '김철수', '디자이너', 45000.00);


delete from employees
where id = 2;

 

같은 조 통칭 '엑셀의 신'님이 복붙하라 주신 것. 

 

 

커서가 있는 1개의 SQL문을 실행 시키려면 [Ctrl+Enter]키를 누르면 된다.  

 

 

 

 

  • 무결성 제약조건 

기본키에는 널 값을 가질 수 없다. 

 

 

 

관계형 데이터베이스가 좋아보이는데 

비관계형 데이터베이스는 왜 씀? 과거의 유물임? 

과거 유물 같은 건 아니고 

비관계형 데이터베이스 같은 건 없고 NOSQL에 대해 검색해보아라. 

 

 

퇴근하면서 데이터베이스 비교해주는 유튜브 영상 공유해줄게. 

데이터베이스마다 용도가 다르다~ 라는 영상 🔽🔽⏬

https://youtu.be/Q_9cFgzZr8Q 

 

 

 

 

 

| SQL 질문 잘하는 법 (문제해결하기 위해 질문하는 법) 

오탈자 잘 살펴보고, 스택오버플로우에 물어보고, 공식문서 살펴보고, 구글에 영어로 키워드 잘 넣어서 검색해봐라. 

 

 

강사님 몸은 하나라 모든 질문에 답할 수 없다. 

 

  • 먼저 고려할 사항
  1. 코드 오탈자 
  2. 에러 메세지를 읽었고 그 조치를 찾았냐
  3. 문제에서 요구하는 조건을 다 썼냐
  4. 질문에 포함된 쿼리를 실행해보았냐 

 

  • 검색 팁 
  1. 기술 검색은 구글에- 네이버는 전문가 지식보단 카페와 블로그 정도라서... 
    구글은 스택오버플로우라고 개발자들의 지식인이 나옴. 
    또는 공식문서 나올 거임. 
  2. 영문으로 검색 - 영어권에서 만든 거니 자료가 더 많음. 
  3. 키워드를 잘 넣기
  4. 신뢰할 수 있는 사이트 클릭하기. 스택오버플로우 같은. 
  5. 글이 언제 쓰였는지 확인하기. 
  6. https://claude.ai/new 강사님이 클로드3.5 잘쓰라고 추천하심. 

 

  • 아지트 Q&A 올릴 때 팁 
  1. 작성한 코드 복붙, 에러창 보여주기 
  2. 뭘 하려고 했었고 어떤 상황에서 일어난 건지
  3. 내가 이거이거 해봤는데 안되더라 

 

 

💠 혼자 겁내 뜯어보고 고민하고 

아 겁나 고민했는데 오탈자 때문이었구나 허망해져도 보고 

사람들에게 묻고 인터넷에도 묻고 하면서 성장하는 거임. 파이팅 

 

 


 

여담

 

 

 

💠강사님 추천 - 더 공부하고 싶을 때, 예습하고 싶을 때 

위 사이트에서 배우고, 더 문법 알고 싶음 밑에 공식 문서 보셈. 특히 대부분 문제는 공식문서에서 해결 가능하다. 
 

이 두개는 문제풀이용. EASY로 놓고 해봐라. 

 

 

 

 

💠휴먼에러

클릭해서 읽어보기

인적오류, 인적과오, 인간의 실수, 휴먼 에러는 인간에 의해 의도치 않게 벌어진 것으로, 일정한 규칙이나 외부 관찰자에 의해 바라지 않았던 일 또는 작업이나 시스템적으로 허용된 제한을 벗어나게 한 일이다.

 

 

 

 


 

[회고]

 

뿌듯한 점 

쩌번에 친구한테 한 한달 전 이상인가 그때 친구한테 들은 CRUD 내 힘으로 떠올렸다 배우기 전에! 

 

 

 

 


#청년취업사관학교 #데이터분석가 #데이터분석가부트캠프 #DA교육 #데이터분석교육 #실무프로젝트 #실무경험 #취업포트폴리오 #포트폴리오 #취업연계교육 #코멘토 #모비니티 

728x90