MySQL 15

17. MySQL 화면 기획서 보고 테이블 만들어보기

-- 회원가입에 필요한 SQLINSERT INTO user(email,password,nickname,gender)values('abc@naver.com','1234','홍길동',1);-- 리뷰 작성 화면INSERT INTO review(movieId,userId,rating,content)values(1,301,5,'너무 재미있어요.'); -- 즐겨찾기 하는 SQL -- 누가 , 어떤 영화를 ,언제 즐겨찾기 했냐 저장 -- 유저가 어떤 영화의 즐겨찾기(하트모양)을 누르면-- 누가, 어떤 영화를, 언제 즐겨찾기 했는지 저장해야 한다.-- 따라서 테이블을 하나 만듭니다.-- favorit-- - id-- - user_id-- - movie_id-- - created_at : 디폴트 now() -- 나(30..

MySQL 2024.12.05

16. MySQL 테이블 합치기 Foreign Keys ,join , left join

Database- Rdbms : MySQL , Oracle, DB2, MS SQL Server....(관계형 데이터 베이스- NoSQL (분산처리가 강한 데이터 베이스 예) facebook,twitter,instagram...)  Foreign Keys - 하나의 테이블에서 다른 테이블의 데이터를 참조할 때 사용한 테이블의 컬럼이 다른 테이블의 *Primary Key 또는 Unique Key 를 참조하도록 설정 Join - 관계형 데이터베이스에서 두 개 이상의 테이블을 결합하여 관련된 데이터를 함께 조회할 때 사용하는 SQL 연산자 하나의 테이블에 데이터를 모두 저장하게 되면 문제점1. 중복된 데이터로 인한 저장 공간 낭비 - 이름, 이메일2. 데이터 수정시, 해당 행을 모두 찾아서 수정하지 않으면 데이..

MySQL 2024.12.02

15. MySQL 테이블 Datatype TIMESTAMP

Default 값 now() Data Type 을 timestamp 으로 지정Default 값 now() 데이터를 저장할때 해당 값을 INSERT INTO 하지 않아도 데이터를 자동으로 저장되게 한다.(Save 진행 후 작업 진행)(Tables Apply 진행 하면 CURRENT_TIMESTAMP 변환)예시)INSERT INTO comment (contnt) values('맛있습니다.');Columns을 입력하지 않아도 Default 값으로 현재 시간이 입력된다. Default 값 on update now() Data Type 을 timestapm 으로 지정Default 값 on update now() 을 추가 입력해주면 해당 Columns 에 데이터를 변경(수정)할때 시간이 업데이트 된 후 저장(Tab..

MySQL 2024.12.02

14. MySQL 날짜와 시간 처리하기

현재 날짜, 시간 가져오기 now(), curdate(), curtime() -- 현재 날짜와 시간을 조회하는 방법 : now()(RDS 시간을 조회)-- UTC(세계표준시간)-- Localtime(현재지역시간)SELECT now(); -- 현재 날짜만 조회 : CURDATE()SELECT CURDATE(); -- 현재 시간만 조회 : CURTIME()SELECT CURTIME(); 년도, 월, 일, 시, 분, 초 가져오기 year() , month() , day() , hour() , minute() , second() -- 년도만 조회 : year() -- 월만 가져오는것 month()-- 일만 가져오는것 day()-- 시간만 가져오는것 HOUR()-- 분만 가져오는것 MINUTE()-- 초만 가져오..

MySQL 2024.11.29

13. MySQL case, if 사용하기

if조건입력, 트루일때의 값, 그렇지 않을때의 값 입력(이렇게 조건이 2가지일때만 가능하다) -- 데이터를 가공할때, 2가지 상황에 대해서 처리하는 함수 : if()-- books 테이블에서, 페이지 수가 300페이지 이상인 책은 '긴책'이라고 하고-- 그렇지 않으면, '짧은책' 이라고 하자. 컬럼 이름은 book_type으로 한다. SELECT *,IF(pages>=300,'긴책','짧은책') as book_typeFROM books;  -- 출간년도가 2000년 이상인 책들은, '최신책' 이라고하고-- 그렇지 않으면 '예전책'이라고 새로운 컬럼을 만드세요. 컬럼명은 type SELECT *,if(released_year>=2000,'최신책','예전책') as typeFROM books;   casec..

MySQL 2024.11.29

11. MySQL null인 데이터를 가져오기, 바꾸기 is null,ifnull

null인 데이터를 가져오는 is nullnull이 아닌 데이터 가져오는 not   null인 데이터를 가져오는 is null-- 재고가 null인 데이터를 가져오시오(IS SELECT *FROM booksWHERE stock_quantity IS null; null이 아닌 데이터 가져오는 not   -- 재고가 NULL이 아닌 데이터를 가져오시오 (IS NOT null)SELECT *FROM booksWHERE stock_quantity IS NOT null;   null인 데이터를 변경하는 ifnull -- stock_quantity 에 null 이 있으면, 0으로 나오게, 새로운 컬럼 stock_quantity2-- 를 만드세요. -- null 이 있으면, 다른 값으로 셋팅하는 함수 : ifnull..

MySQL 2024.11.29

9. MySQL 서브쿼리 Sub Query 사용하기

하나의 SQL문 안에 포함되어 있는 또 다른 SQL문 Sub Query (= 쿼리 내부에 포함되어 있는 SELETE 문)※ 서브쿼리는 메인쿼리의 컬럼을 사용 가능 / 메인쿼리는 서브쿼리의 컬럼 사용 불가능 -- 페이지수가 가장 긴 책의, 제목, 작가이름 페이지수 를 보여주세요(예시) -- 해결책 1 : 정렬해서 해결SELECT title,author_lname,pagesfrom booksorder by pages desclimit 1; -- 해결책 2 : pages 의 max 값을 구해서, sub Query 해서 해결 한다.SELECT *FROM books; --------------  Sub Query 사용 --------------------- 1. 페이지 컬럼의 맥스값을 찾고 -> 634 (예시) ..

MySQL 2024.11.29

8. MySQL 데이터 집계함수 count, sum, avg, max, min

갯수를 세는 함수 count()값을 모두 더해주는 함수 sum()평균을 구하는 함수 avg()최대값을 구하는 함수 max()최소값을 구하는 함수 min() ------------------------------------------------------------------------------------- ※  갯수를 세는 함수 count() -- 데이터의 갯수를 세는 함수 : count() -- books 테이블에 데이터가 들어있다. 책은 총 몇권인가? SELECT COUNT( DISTINCT author_lname ) as countFROM books; -- 책 제목에 the 가 들어간 책은 몇권 입니다.SELECT count(*)FROM bookswhere title like '%the%';  ※..

MySQL 2024.11.28

7. MySQL 데이터를 가공하는 키워드 distinct, order by, limit, like, group by

MySQL Workbench 데이터 가공 데이터를 유니크하게 만드는(중복제거) distinct데이터를 정렬하는 order by데이터를 끊어서 가져오는 limit 와 offset문자열 안에 원하는 문자가 들어있는지 검색하는 lik데이터를 집계하는 group by ※  distinct(중복제거 키워드)SELECT DISTINCT author_lnamefrom books;  ※  데이터를 정렬하는 order by -- author_lname 으로 정렬해서 가져오기 - 오름차순 정렬SELECT *from booksorder by author_lname; -- ASC 오름차순(생략시 오름차순으로 적용) SELECT *from booksorder by author_lname ASC; -- DESC 내림차순SELEC..

MySQL 2024.11.28

6. MySQL 문자열 함수

문자열을 합치는 concat()-- fname 이 분리되어 있는데,-- 합쳐서 full_name 으로 가져오고 싶다. -- 문자열을 합치는 함수 : concat() SELECT * , CONCAT(author_fname,author_lname)FROM books; -- 중간 사이 ,' ', 공백 시 띄어쓰기SELECT * , CONCAT(author_fname,' ',author_lname)FROM books;  SELECT * , CONCAT(author_fname,' ',author_lname) as full_nameFROM books; -- 컬럼 하나로, "책제목 : 풀네임" 형식으로 조회하고 싶다. title_name-- 예) The Ma,esake : Jhumpa Lahiri-- Norse My..

MySQL 2024.11.27