-
(3주차 15일) Ubuntu, MariaDB수업 내용 정리 2024. 5. 27. 17:33
MariaDB> Ubuntu에 MariaDB 연결netstat - tnl; -> tcp 프로토콜의 listening 상태에 있는 프로토콜을 호출 netstat -tnl | grep 22; -> 22번 포트에서 잘 돌아가는지 확인 systemctl status ssh; -> ssh 서비스의 상태 확인 systemctl; -> 서비스 관리mariaDB 서버 설정: sudo apt install mariadb-server mariadb -- versionsystemctl status mariadb netstat -tnl | grep 3306보안환경 설치: sudo mariadb-secure-installationmariaDB에 연결: sudo mariadb -u root -pMariaDB 연결 확인mariaD..
-
(2주차 12일) 인덱스, 프로시저, 트리거수업 내용 정리 2024. 5. 24. 17:04
DB modeling> 인덱스(Index)테이블의 열 단위에 생성되는 데이터베이스의 개체로 데이터를 조회할 때 빠르게 접근하도록 도와주는 역할 클러스터형 인덱스(Clusterd Index): 테이블당 한 개만 생성 가능, 데이터가 정렬되어 저장 -> 검색 속도 빠름, 데이터 저장 느림* 기본 키 제약조건으로 지정되는 열에 자동으로 생성됨보조 인덱스(Secondary Index): 테이블당 여러 개 생성 가능, 정렬 필요 X -> 검색 속도 느림, 데이터 저장 빠름* UNIQUE 제약 조건으로 지정되는 열에 자동으로 생성됨B-트리(B-tree)이진 트리를 확장해 하나의 노드가 가질 수 있는 자식 노드의 최대 숫자가 2보다 큰 트리 구조노드에 저장된 KEY들은 항상 정렬된 상태로 저장됨/** 인덱스(Inde..
-
(2주차 11일) 테이블 실습수업 내용 정리 2024. 5. 23. 17:36
DB Modeling> 테이블 생성 연습 문제/** 테이블 생성 연습 문제* 도서 관리 프로그램을 위한 테이블 만들기*/-- 1. 출판사 테이블 생성 및 샘플 데이터 추가CREATE TABLE tb_publisher ( pub_no INT AUTO_INCREMENT PRIMARY KEY, pub_name VARCHAR(20) NOT NULL, phone VARCHAR(20));INSERT INTO tb_publisher(pub_name, phone) VALUES('감자', '01011112222'),('고구마', NULL),('계란', '0233334444');SELECT * FROM tb_publisher;DROP TABLE tb_publisher;-- 2. 도서 테이블 생성 및 샘플 데이터 추가CRE..
-
(2주차 10일) DB 모델링, erdcloud, 테이블, 뷰수업 내용 정리 2024. 5. 22. 17:49
DB Modeling> 데이터 모델링데이터를 중심으로 모델링을 진행현실에서 쓰이는 개체를 데이터로 옮기는 작업분류개념적 모델링논리적 모델링물리적 모델링> 개념적 모델링요구분석 단계에서 정의된 핵심 개체와 그들 간의 관계를 바탕으로 ERD 생성ERD: 개체-관계 모델로, 테이블 간의 관계를 도형으로 설명해주는 다이어그램 엔티티(Entity) -> 실제 관리해야 할 유형, 무형의 구체적인 대상속성(Attribute) -> 엔티티가 가지고 있는 특징.* 식별자: 엔티티의 데이터들을 서로 구분해 줄 수 있는 속성. 여러 속성을 결합하여 사용할 수도 있음* 주 식별자(unique, 중복X, null X), 보조 식별자, 외래 식별자관계(Relationship) -> 1:1, 1:M, M:M, 식별/비식별 관계* ..
-
(2주차 9일) SQL 함수, 조인, 서브쿼리수업 내용 정리 2024. 5. 21. 17:31
MariaDB> 조인(JOIN)과 UNION 연산자외부 조인(OUTER JOIN)조건에 만족되지 않는 행까지 조회하기 위해서 사용되는 조인LEFT JOIN / RIGHT JOIN: 왼쪽 / 오른쪽 테이블의 데이터를 모두 조회* where문에서는 NULL 1이 true로 평가되지 않으므로 where문의 결과값에서 필터링됨-- LEFT JOIN / RIGHT JOIN: 왼쪽 / 오른쪽 테이블의 데이터는 모두 조회함-- 'OUTER' 생략 가능-- where문에서는 NULL 1이 true로 평가되지 않으므로 where문의 결과값에서 필터링됨SELECT emp_id, b.dept_title, dept_code, salaryFROM employee a LEFT OUTER JOIN department b ON ..
-
(2주차 8일) SQL 함수, 조인, 서브쿼리수업 내용 정리 2024. 5. 20. 17:30
MariaDB> 함수 실습(2)문자열 함수/** 문자열 함수*/-- ASCII(), CHAR()SELECT ASCII('a'), CHAR(97);-- BIT_LENGTH(), CHAR_LENGTH(), LENGTH() 함수-- MariaDB는 기본적으로 UTF-8 코드를 사용하므로 영문은 1Byte, 한글은 3Byte를 할당함SELECT BIT_LENGTH('abc'), CHAR_LENGTH('abc'), LENGTH('abc');SELECT BIT_LENGTH('가나다'), CHAR_LENGTH('가나다'), LENGTH('가나다');-- CONCAT(), CONCAT_WS()SELECT CONCAT('2024', '05', '20');SELECT CONCAT_WS('/', '2024', '05', '..
-
(1주차 5일) SQL 기본수업 내용 정리 2024. 5. 17. 14:22
MariaDB> SQL 기본(2)/** GROUP BY* 여러 값을 그룹으로 묶어 처리(!=중복 제거)* 집계 함수를 함께 사용하여 그룹 연산할 수 있다.*/SELECT addr, COUNT(*) FROM usertblGROUP BY addrORDER BY addr;-- #그룹 연산 처리(SUM, AVG, MIN, MAX, COUNT)SELECT dept_code, SUM(salary) FROM employeeGROUP BY dept_codeORDER BY dept_code;SELECT userID, SUM(amount), SUM(amount*price) FROM buytblGROUP BY userId;SELECT userid, AVG(amount) FROM buytblGROUP BY userid;-- ..
-
(1주차 4일) MariaDB, SQL 기본수업 내용 정리 2024. 5. 16. 12:36
MariaDB> DBMS(Database Management System)데이터베이스를 관리해 주는 시스템 또는 소프트웨어를 말한다.클라이언트: 인터넷을 통해 서버에 요청할 수 있는 장치서버: 클라이언트의 요청을 처리하는 소프트웨어> MariaDB 실습 환경 구축설치 및 PATH 환경 변수 설정(설치 경로 등록)시스템 환경 변수 편집 - 고급 - 환경 변수시스템 변수 - Path - 경로 추가(MariaDB 설치 경로 - bin)MariaDB 버전 확인mariadb --versionmariadb -V 루트 계정 로그인 및 데이터베이스 불러오기mariadb -u root -pMariaDB [(none)]> source employees.sql;MariaDB [(employees)]> show databas..
-
[프로그래머스/MySQL] 연도별 대장균 크기의 편차 구하기Solve 2024. 4. 3. 20:40
문제https://school.programmers.co.kr/learn/courses/30/lessons/299310 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 풀이SELECT ANS.YEAR, ANS.MAX_SIZE - A.SIZE_OF_COLONY AS YEAR_DEV, A.IDFROM ECOLI_DATA AS A JOIN (SELECT YEAR(A.DIFFERENTIATION_DATE) AS YEAR, MAX(A.SIZE_OF_COLONY) AS MAX_SIZE FROM ECOLI_DATA AS A GROUP BY YEAR(A.DIFFE..
-
[프로그래머스/MySQL] 자동차 대여 기록에서 장기/단기 대여 구분하기Solve 2024. 4. 2. 18:15
문제https://school.programmers.co.kr/learn/courses/30/lessons/151138 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 풀이SELECT HISTORY_ID, CAR_ID,DATE_FORMAT(START_DATE, '%Y-%m-%d') AS START_DATE,DATE_FORMAT(END_DATE, '%Y-%m-%d') AS END_DATE,CASE WHEN DATEDIFF(END_DATE, START_DATE) + 1 >= 30 THEN "장기 대여" ELSE "단기 대여" END AS RENT_TYPEFROM ..