Database 30

[DBeaver-MySQL] : (스키마 설계) 영화 리뷰 서비스 개발 실습

아래 화면을 보고 SQL를 짜보자.- SQL를 짜기 전에 데이터베이스와 테이블을 만들어주자.  Database : movie_db   Tables는 위 화면을 보고 어떤 테이블이 필요한지 하나씩 봐보자. 먼저 리뷰를 작성하려면 사용자 정보가 필요하니까user 테이블을 만들어준다. -- 서비스 회원가입 tables > user> columms  id : int  아이디가 중복되지 않게하고 자동으로 추가한다.  email : varchar(100)   이메일이 중복되지 않게 한다.  password : varchar(100)  nickname : varchar(100)  gender  : int 성별은 0과 1로 나타낼거기 때문에 int(정수) 로 한다.   -- 회원가입하기INSERT into user(e..

[DBeaver] MySQL 실습 - 여러테이블 조인(join)하기 실습

여러테이블을 조인하는 실습을 해보겠습니다. 1. 테이블 생성- customers (고객정보)- orders (주문정보)- products (제품정보)- order_items (주문항목 정보)  test9 데이터베이스 안에 위 4개에 테이블을 생성해줬습니다.  2. Foreign Keys 설정위 사진에서 MUL이라고 표시되어있는 부분이 foreign key가 설정되어있음을 알 수 있습니다. orders테이블과 orders_items 테이블에 id가 아닌 customer_id, order_id, product_id 컬럼이 있죠?foreign key 설정을 할 때 이 컬럼들을 선택하면 됩니다. - orders 테이블에서 customers 테이블과 연결  - order_items 테이블에서 orders, pro..

[DBeaver] MySQL - 테이블 조인(Join)하기 (Foreign Key)

테이블 조인(Join)하기   Join이란 ?두 개 이상의 테이블에서 데이터를 결합하여 하나의 테이블로 사용할 수 있는 기능이다.Join을 사용하면 관련된 데이터를 효율적으로 검색하고 분석할 수 있다.  조인이 필요한 이유 예를 들어보자면, 중복데이터 관리!온라인에서 쇼핑을 할 때 고객의 데이터가 저장될 것이다.- 고객 정보 - 주문상품정보 고객이 상품을 주문했을 때 구매한 상품 정보만 저장하면 되는데이 두개가 한 테이블에 저장이 된다면 이름, 이메일이 중복으로 저장이 된다.  그러므로 고객정보와 고객이 구매한 상품 정보는 따로 저장을 해준다.고객이 가입을 하고 상품을 구매할 때 고객의 정보가 필요하기 때문에 테이블에서 아이디를 불러오는 작업을 해준다.이것을 관계형데이터베이스라고 한다.   이제 조인(j..

[DBeaver] MySQL 실습 - 시간처리 실습

● orders 테이블 생성Table Name : orders- id : 주문 고유 ID (프라이머리 키, 자동 증가)- customer_name : 주문자명 (문자열, 최대 50자)- product_name : 제품명 (문자열, 최대 100자)- order_date : 주문 시각 (날짜+시간)- delivery_date : 배송 일자 (날짜)    ● orders 테이블에 데이터 추가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-..

[DBeaver] MySQL - 시간 처리하는 함수 2

시간 처리하는 함수 2 date_add, date_sub, datename, dayofweek, weekday   - 날짜 연산 함수date_add, date_sub  date_add() : 날짜에 특정 기간을 더해준다.interval 3 year, interval 3 month, interval 3 day 등...사용예제 :3일 후의 날짜를 구하시오-> date_add(날짜, interval 3 day)date_sub(): 날짜에서 특정 기간을 빼준다.사용예제 :3일 전의 날짜를 구하시오.-> date_sub(날짜, interval 3 day)  - 요일 데이터 추출하는 함수datename, dayofweek ,weekday datename(): 영문 요일명 (Sunday, Monday, ...) SE..

[DBeaver] MySQL - 시간 처리 하는 함수들

시간 처리 하는 함수들   1. 현재 날짜, 시간 조회● 현재 날짜와 시간을 조회하는 함수now ()select now();now를 실행했을 때 다른 시간이 나오는 이유-> 글로벌서비스라서 UTC(절대시간) 을 반환한다.  ● 현재 날짜만 조회 하는 함수 curdate()select curdate();● 현재 시간만 조회 하는 함수 curtime()select curtime();    2. 날짜, 시간 데이터 중 일부데이터 가져오기  (년도, 월, 날짜, 시간, 분, 초, 요일) ● 년도만 가져오는 함수 year()select year(컬럼명)from 테이블명; ● 월만 가져오는 함수 month()select month(컬럼명)from 테이블명; ● 날짜만 가져오는 함수 day()select day(컬럼..

[DBeaver] MySQL 실습 - 키워드를 이용해 특수한 컬럼 조회하기 : group by, having

키워드를 이용한 특수한 컬럼 조회하기 : group by, having    ● subscriptions 테이블 생성Table Name : subscriptions- id : 구독자 고유 ID (프라이머리 키, 자동 증가)- user_name : 구독자명 (문자열, 최대 50자)- plan_name :  플랜명 (문자열, 최대 50자)- start_date : 구독 시작일 (날짜)- end_date : 구독 종료일 (날짜)- status : 구독 상태 (문자열, 최대 20자)- price : 구독 요금 (정수형) ●  subscriptions 테이블에 데이터 추가INSERT INTO subscriptions (user_name, plan_name, start_date, end_date, status, p..

[DBeaver] MySQL 실습 - CRUD 및 문자열 처리 실습 2

CRUD 및 문자열 처리 실습 2    ● test6 데이터베이스에 subscriptions 테이블 생성● 설명 : subscriptions 테이블은 사용자의 구독 정보를 관리한다.             온라인 서비스(예 : 동영상 스트리밍, 뉴스레터, 클라우드 서비스 등) 에서 많이 사용하는             구독 데이터를 활용하여 실습 문제를 작성합니다.Table Name : subscriptions- id : 구독자 고유 ID (프라이머리 키, 자동 증가)- user_name : 구독자명 (문자열, 최대 50자)- plan_name :  플랜명 (문자열, 최대 50자)- start_date : 구독 시작일 (날짜)- end_date : 구독 종료일 (날짜)- status : 구독 상태 (문자열,..

[DBeaver] MySQL 실습 - CRUD 및 문자열 처리 실습

CRUD 및 문자열 처리 실습   ● test5 데이터베이스에 employees 테이블 생성Table Name : employees - id : 직원 고유 ID (프라이머리 키, 자동증가)- name : 직원명 (문자열, 최대 50자)- position : 직급 (문자열, 최대 50자)- email :  이메일 (문자열, 최대 100자)- phone_number : 전화번호 (문자열, 최대 15자)- salary : 급여 (정수형)  ● employees 테이블에 데이터 추가INSERT INTO employees (name, position, email, phone_number, salary) VALUES('김철수', 'Manager', 'chulsoo.kim@example.com', '010-1234-..

[DBeaver] MySQL 실습 - CRUD 실습 (데이터 추가, 조회, 수정, 삭제)

CRUD 실습(데이터 추가, 조회, 수정, 삭제)  ● 데이터베이스 test5에 product 테이블 생성Table Name : product- id : 제품 고유 ID (프라이머리 키, 자동증가)- product_name : 제품명 (문자열, 최대 100자)- category : 제품 카테고리 (문자열, 최대 50자)- price : 제품 가격 (정수형)- stock_quantity : 재고 수량 (정수형)- created_at : 제품 등록일 (날짜)  ● product 테이블에 데이터 넣기INSERT INTO product (product_name, category, price, stock_quantity, created_at) VALUES('삼성 스마트폰', '전자제품', 850000, 50, '..

home