본문 바로가기

DB55

Database - RDBMS에 대해 Join 키워드에 들어가기 앞서 RDBMS에 대해 짚어보자. database에는 다양한 종류가 있다.계층형 데이터베이스 (Hierarchical DBMS)망형 데이터베이스 (Network DBMS)관계형 데이터베이스 (Relational DBMS, RDBMS)객체지향 데이터베이스 (Object-Oriented DBMS)NoSQL 데이터베이스NewSQL 현재 이 블로그에서 주로 다루고 있는 MySQL은 RDBMS!PostgreSQL, Oracle, Microsoft SQL Server, MariaDB도 RDBMS의 일종이다. RDBMS의 특징데이터를 2차원 테이블 형태로 표현합니다.테이블은 행(row)과 열(column)로 구성됩니다.SQL(Structured Query Language)을 사용하여 데이터.. 2024. 12. 2.
MySQL 컬럼 자동 시간 기록: Default 설정으로 손쉬운 데이터 관리 상품리뷰데이터를 관리하는 테이블을 만들자 필요한 컬럼은?id, 작성코멘트, 리뷰작성시간, 리뷰 수정시간... else...  created_at 컬럼리뷰작성시간 - 데이터 입력되었을때의 시간이 기록되게  now()를 쓰면 되겠구나INSERT INTO comment(content,created_at)values('최고입니다.',now()); 매번 now() 쓰기 번거롭다. 자동으로 들어가는 방법 없을까?  컬럼 설정 dafault값에 now() 입력INSERT INTO comment(content)values('별점 5개.');자동으로 created_at에 데이터 저장시간도 기록 됩니다. updated_at 컬럼 데이터를 수정했을때의 시간도 기록하고싶다면?   컬럼 설정 dafault값에 now() on.. 2024. 12. 2.
날짜 예제 더보기INSERT INTO orders (customer_name, product_name, order_date, delivery_date) VALUES('김철수', '노트북', '2023-10-01 14:30:00', '2023-10-05'),('이영희', '스마트폰', '2023-10-02 09:15:00', '2023-10-07'),('박준혁', '태블릿', '2023-10-03 16:45:00', '2023-10-09'),('최수진', '헤드폰', '2023-10-04 11:00:00', '2023-10-10'),('정우진', '키보드', '2023-10-05 18:20:00', '2023-10-12'),('윤지민', '스마트워치', '2023-10-06 10:30:00', '2023-10-10'.. 2024. 12. 2.
MySQL 요일 추출 함수 3가지 dayname(), weekday(), dayofweek() 요일 추출의 3가지 방법  dayname(order_date)   SELECT *, dayname(order_date)from orders; 'Sunday', 'Monday' ... 'Saturday'로 반환 weekday(order_date)SELECT dayname(order_date),WEEKday(order_date)FROM orders o ;월 0, 화 1, 수 2, 목 3, 금 4, 토 5, 일 6 으로 반환 DAYOFWEEK(order_date)SELECT dayname(order_date),WEEKday(order_date)FROM orders o ;월 2 화 3 수 4 목 5 금 6 토 7 일 1으로 반환 -- 주문이 이루어진 날짜와 요일 조회 한글로 반환하기  SELECT order_d.. 2024. 12. 2.
MySQL 날짜와 시간 조회, 가감산, 합계 함수 현재를 기준으로 조회현재 날짜와 시간을 조회하기 now()SELECT now();localtime = 한국 (KST) UTC+9시간이 아닌 UTC 세계 표준 시간 기준 현재 날짜와 시간이 나옵니다.   UTC란? 전 세계적으로 통일된 시간 기준을 제공하며 컴퓨터 시스템과 서버 간의 시간 동기화, 네트워킹에서 데이터 기록, 로그 관리, 시간 동기화 등에 필수적으로 사용됩니다.  UTC는  ISO 8601 표준에 따라 날짜와 시간을 표현하는 데 사용되며, "2023-12-24T15:00:00Z"와 같은 형식으로 나타낼 수 있습니다. 여기서 'Z'는 UTC를, 'T'는 날짜와 시간을 구분합니다. TimeStamp 에선 YYYY-MM-DD HH:MM:SS  로 반환됩니다. 현재 날짜만 조회 curdate()SE.. 2024. 11. 29.
키워드 예제 3 -- 1980년 이전에 발행된 책을 가져오세요.SELECT *FROM books bwhere released_year    -- eggers 나 chabon이 쓴 책을 가져오세요.SELECT *FROM books bwhere author_lname ='Eggers' or author_lname = 'Chabon';  ★더 깔끔한 코드! 항목 추가되도 수정하기도 편하고 보기도 편한 INSELECT *FROM books bWHERE author_lname in('Eggers','Chabon');  -- lahiri가 썼고, 2000년 이후에 발행된 책을 가져오세요.SELECT *FROM books bwhere author_lname ='Lahiri' and released_year > 2000;  -- 페이.. 2024. 11. 29.
MySQL In 키워드 -- eggers 나 chabon이 쓴 책을 가져오세요.SELECT *FROM books bwhere author_lname ='Eggers' or author_lname = 'Chabon'; 다른 작가님이 쓴 책도 더 불러오려니 한없이 길어지는 [or author_lname = '다른작가']구절... 보기도 편하고 추가하기도 편한 INSELECT *FROM books bWHERE author_lname in('Eggers','Chabon');제외하고 불러오려면 Not inSELECT *FROM books bWHERE author_lname not in('Eggers','Chabon');  * NULL 처리에 주의!NOT IN을 사용할 때 NULL 값이 포함된 경우 예상치 못한 결과가 나올 수 있습니다... 2024. 11. 29.
MySQL Case 키워드 조건이 2개정도라면? IF()함수 MySQL if() 함수-- 데이터를 가공할때 Yes or No 2가지 상황에 대해서 처리하는 함수 if()-- books 테이블에서 페이지수가 300페이지 이상인 책은 '긴 책'이라고 하고,     그렇지 않으면 '짧은 책'이라고 하자. 컬럼이maeilcoding.tistory.com 그런데 조건이 3개 이상이라면..?엑셀이였다면 ifs()나 구버전에선 지저분해보이지만 if(if(if(...)))를 썼었는데 SQL문에서는 어떻게 사용할까?  -- stock_quantity가 0이상 50이하면 *,-- 51이상이고 100 이하 **,-- 101 이상이면 ***-- 새로운 컬럼 stock을 만들어 보여주세요.SELECT *, CASE when stock_quantity .. 2024. 11. 29.
MySQL ifnull()함수 -- stock_quantity 에 null이 있으면 0으로 나오게, 새로운 컬럼 stock_quantity2를 만드세요SELECT *,ifnull(stock_quantity,0)as stock_quantity2FROM books b ;  -- null이 있을경우 다른 값으로 세팅해주는 함수 ifnull() ifnull(stock_quantity,0)stock_quantity컬럼의 데이터가 null이면 0 으로 반환ifnull(stock_quantity,'문자열')'문자열'로 반환도 가능합니다! 2024. 11. 29.