본문 바로가기
728x90

Database22

[Oracle][프로그래머스] GROUP BY / 입양 시각 구하기(1) 문제 설명 ANIMAL_OUTS 테이블은 동물 보호소에서 입양 보낸 동물의 정보를 담은 테이블입니다. ANIMAL_OUTS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, NAME, SEX_UPON_OUTCOME는 각각 동물의 아이디, 생물 종, 입양일, 이름, 성별 및 중성화 여부를 나타냅니다. NAME TYPE NULLABLE ANIMAL_ID VARCHAR(N) FALSE ANIMAL_TYPE VARCHAR(N) FALSE DATETIME DATETIME FALSE NAME VARCHAR(N) TRUE SEX_UPON_OUTCOME VARCHAR(N) FALSE 보호소에서는 몇 시에 입양이 가장 활발하게 일어나는지 알아보려 합니다. 09:00부터 19:59.. 2022. 5. 10.
[MySQL][프로그래머스]String, Date(DATETIME에서 DATE로 형 변환) 문제 설명 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다. NAMETYPENULLABLE ANIMAL_ID VARCHAR(N) FALSE ANIMAL_TYPE VARCHAR(N) FALSE DATETIME DATETIME FALSE INTAKE_CONDITION VARCHAR(N) FALSE NAME VARCHAR(N) TRUE SEX_UPON_INTAKE VARCHAR(N) F.. 2021. 9. 1.
[MySQL][프로그래머스] String/Date(이름에 el이 들어가는 동물 찾기) 문제 설명 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다. NAMETYPENULLABLE ANIMAL_ID VARCHAR(N) FALSE ANIMAL_TYPE VARCHAR(N) FALSE DATETIME DATETIME FALSE INTAKE_CONDITION VARCHAR(N) FALSE NAME VARCHAR(N) TRUE SEX_UPON_INTAKE VARCHAR(N) F.. 2021. 8. 26.
[MySQL][프로그래머스] GROUP BY(입양 시각 구하기2) 문제 설명 ANIMAL_OUTS 테이블은 동물 보호소에서 입양 보낸 동물의 정보를 담은 테이블입니다. ANIMAL_OUTS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, NAME, SEX_UPON_OUTCOME는 각각 동물의 아이디, 생물 종, 입양일, 이름, 성별 및 중성화 여부를 나타냅니다. NAMETYPENULLABLE ANIMAL_ID VARCHAR(N) FALSE ANIMAL_TYPE VARCHAR(N) FALSE DATETIME DATETIME FALSE NAME VARCHAR(N) TRUE SEX_UPON_OUTCOME VARCHAR(N) FALSE 보호소에서는 몇 시에 입양이 가장 활발하게 일어나는지 알아보려 합니다. 0시부터 23시까지, 각 시.. 2021. 8. 24.
[Programming][MySQL] Data type(문자형, 숫자형, 날짜 시간형) 문자형 데이터 타입 Character Types Meaning CHAR() 문자형의 기본 타입. 괄호 안에 0 ~ 255까지 문자를 적을 수 있으며, 숫자는 최대 작성 가능한 문자열의 수를 나타낸다. (고정 길이 타입, 작성한 글자의 수에 상관 없이 일정한 길이가 할당된다.) VARCHAR() 괄호 안에 0 ~ 65,535까지 문자를 적을 수 있으며, 숫자는 최대 작성 가능한 문자열의 수를 나타낸다. CHAR보다 더 큰 길이가 작성 가능하다. (변동 길이 타입. 최대 길이는 정해져 있지만, 작성된 문자의 길이가 더 적을 경우 그 문자형에 맞춰 길이가 정해진다.) TEXT 최대 0 ~ 65535자까지 작성 가능하다. 긴 문자열을 쓰는 경우 사용하기 적합하다. TINYTEXT 최대 0 ~ 255자까지 작성 .. 2021. 8. 22.
[Programming][MySQL] 뷰(View) 테이블 생성하기 View(뷰) View는 실제로 컴퓨터에 저장되는 테이블이 아니라, 사용자가 필요로 하는 부분만 선택해서(조인, 생성, 삭제 등) 만들어 놓은 가상 테이블이다. 따라서, 1) 자주 쓰고 필요한 부분만 따로 가공하여 사용하고자 할 때 편리하게 사용할 수 있다. 2) 금융회사 같은 경우에는 고객들의 개인 정보와 같은 보안 사항을 포함한 전체 테이블을 다룰 때가 있다. 직군에 따라 보안의 권한이 다르기도 하고, 쉽게 유출되지 않게 하기 위해서 권한이 주어지지 않은 부서는 뷰 테이블을 만들어서 사용한다. 이처럼, 뷰는 보안에도 강점을 나타낸다. 단점으로는, 1) 한 번 정의된 뷰는 변경이 불가능해서 뷰 테이블 자체를 삭제하거나 대체 뷰 테이블을 만들어 새로 생성해야 한다. 2) 뷰 테이블 안의 정보들을 삭제, .. 2021. 8. 22.
[Programming][MySQL] 데이터 정규화(제1 정규화, 제2 정규화, 제3 정규화, 비정규화) 데이터 정규화 정규화란 데이터 베이스를 설계할 때 중복을 최소화하는 것을 말하며, 크고 제대로 조직화되어 있지 않은 테이블과 관계들을 조직화된 테이블과 관계들로 나누는 것이다. (출처: https://ko.wikipedia.org/wiki/%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4_%EC%A0%95%EA%B7%9C%ED%99%94) 정규화가 필요한 경우 데이터를 갱신, 삽입, 삭제하는 등 테이블을 수정할 때 원하는 않게 데이터가 삭제되거나 가공되는 경우가 있다. 이를 이상 현상이라고 한다. 1) 갱신 이상 정확하지 않은 정보가 업데이트되거나, 일부의 정보만 업데이트되어 정보에 혼란이 생기고 모호해질 수 있다. 항공편 데이터 베이스가 있다고 할 때, .. 2021. 8. 16.
[Programming][MySQL] 데이터 모델링(ERM/ ERD) 데이터 모델링을 통해서 데이터 베이스를 구축하기 위한 모델을 만드는 작업을 할 수 있다. ERM은 Entity Relationship Modeling(개체 - 관계 모델링)으로 entity들 간의 관계로 표현하는 모델을 만드는 것을 의미한다. ERD는 Entity Relationship Diagram(개체 - 관계 다이어그램)으로 ERM로 만든 모델링 모델을 그림으로 표현한 것을 말한다. Entity(개체): 저장하고 관리하려고 하는 데이터 값들을 나타는 것으로 테이블과 비슷한 개념으로 생각할 수 있다.(동일한 개념은 아니다!) Attribute(속성): 테이블에서 열(Column)과 비슷한 개념으로, 위의 customer Entity에서는 id, category, main_menu... 이 attrib.. 2021. 8. 13.
[Programming][MySQL] 외래키(Foreign Key) Foreign Key를 활용하기 위해서 테이블을 하나 더 생성했다. 그리고, 두 테이블을 참조할 수 있도록 만들기 위해 Category Table(부모 테이블)의 idcategory(Primary Key)와 Customer Table(자식 테이블)의 category(Foreign Key)를 연결한다. 먼저, 외래 키를 지정해주기 위해 Customer 테이블의 설정(테이블에서 오른쪽 마우스를 누르면 도구 모양의 아이콘)에 들어가서 하단의 foreign keys를 선택한다. 다음으로, foreign key의 이름을 원하는 대로 설정하고, [Referenced Table]에 부모 테이블을 설정한다. [Column]에서 foreign key로 사용할 열(Column)을 선택하고 [Referenced Column.. 2021. 8. 12.
[Programming][MySQL] 테이블 가공하기(ALTER) ALTER TABLE ~ 을 이용하여 데이터에 열을 추가하거나, 수정하고 다양하게 가공할 수 있다. ALTER TABLE ~ ADD ALTER TABLE customer ADD grade INT NOT NULL; ALTER TABLE customer ADD location CHAR(2) NULL; ALTER TABLE [테이블 이름] ADD [추가할 열] [데이터 타입] [NULL 허용 여부]를 이용해서 열을 추가할 수 있다. 실습에서는 등급을 정수형 변수로 넣고, 지역을 나타내기 위해 문자형 변수로 추가했다. 다양한 조건들을 뒤에 더 넣을 수 있지만, 일단은 기본적인 것만 작성했다. 다음과 같이 테이블에 grade와 location 열(Column)이 잘 추가하고, grade는 범위를 구분하여 작성했고.. 2021. 8. 4.
반응형