본문 바로가기

DB/MySql5

09.20 정규화, 서브쿼리 정규화 - 이상 현상이 발생하지 않도록, 릴레이션을 관련 있는 속성들로만 구성하기 위해 릴레이션을 분해하는 과정 함수적 종속성- 속성들 간의 관련성 - 함수 종속성을 이용하여, 릴레이션을 연관성이 있는 속성들로만 구성되도록 분해하여 이상현상이 발행하지 않는 릴레이션으로 만들어가는 과정  완전 함수 종속- 릴레이션에서 속성 집합 Y가 속성집합 X에 함수적으로 종속되어 있지만, 속성 집합 X의 전체에 종속되어 있음 - 일반적으로 함수 종속은 완전 함수 종속을 의미함 부분 함수 종속- 릴레이션에서 속성 집합 Y가 속성 집합 X의 전체가 아닌 일부분에도 함수적으로 종속됨을 의미  정규형 분류제 1차 정규형(1NF) - 릴레이션의 모든 속성이 더는 분해되지 않는 원자값이어야 함제 2차 정규형(2NF) - 릴레이션.. 2024. 9. 20.
09.13 날짜 함수, 세션 변수, JOIN 날짜 함수 adddate, subdate, addtime, subtimeSELECT ADDDATE('2024-09-13', INTERVAL 28 DAY), ADDDATE('2024-09-13', INTERVAL 2 MONTH), SUBDATE('2024-09-13', INTERVAL 28 DAY), SUBDATE('2024-09-13', INTERVAL 2 MONTH), ADDTIME('2024-09-13 23:59:50', '0:1:0'), SUBTIME('2024-09-14 00:00:50', '0:1:0'); 실행 결과 datediffSELECT DATEDIFF(NOW(), '2025-02-12'); year, month, dayofweekSELECT YEAR(CURDATE()), MONTH(CU.. 2024. 9. 13.
09.12 집계 함수, group by, having, 윈도우 함수, 내장 함수, 제어 흐름 MySql 집계함수함수명함수 표기설명SUMSUM()합계를 구한다.AVGAVG()평균을 구한다.MINMIN()최솟값을 구한다.MAXMAX()최대값을 구한다.COUNTCOUNT()행의 갯수를 센다COUNT DISTINCTCOUNT(DISTINCT)행의 갯수를 센다.(중복은 1개만 인정) 집계함수 실습SELECT SUM(order_cnt) AS '총주문수량', AVG(order_cnt) AS '평균주문수량', MIN(order_cnt) AS '최저주문수량', MAX(order_cnt) AS '최고주문수량', COUNT(*) AS '행의갯수', COUNT(DISTINCT order_no) AS '총주문건수'FROM orderitems; 실행결과   -- 데이터 그룹핑 : group by [열] -- 데이터 그룹.. 2024. 9. 12.
08.29 DML select, insert, update, delete문 -- SELECT 구문 실행 순서 : 1. FROM 2. WHERE 3. SELECTSELECT HOST, userFROM userWHERE TRUE; -- user = 'ksmart53id'; -- key PK: primary key (기본키) ALTER TABLE members ADD PRIMARY KEY (mbr_id);INSERT IGNORE INTO members (mbr_id, mbr_name, mbr_addr, mbr_daddr, mbr_zip, mbr_telno, mbr_email, mbr_reg_date)VALUES ('ksmartid1', '홍1', '전주시 덕진구 기린대로 499', '3층 한국스마트정보교육원', '12345', '063-717-1008', '홍1@ksmart.or.k.. 2024. 9. 9.
08.28 DDL create, drop, grant, revoke 문 -- 한줄주석 /* 여러줄 주석 */ -- 데이터베이스 생성구문 CREATE DATABASE 데이터베이스명; -- 사용자계정 추가 CREATE USER '사용자계정'@'%' IDENTIFIED BY '사용자비밀번호'; -- 생성된 DB에 특정 사용자 권한 부여(DCL) GRANT ALL PRIVILEGES ON 데이터베이스명.* TO '사용자계정'@'%'; -- 메모리 즉시 반영 FLUSH PRIVILEGES; -- mysql database를 선택하는 명령어: use 데이터베이스명 USE 데이터베이스명; -- 권한회수하는 쿼리문 : revoke REVOKE ALL ON 데이터베이스명.* FROM '사용자계정'; -- 사용자 계정을 삭제 DROP USER 사용자계정@'%'; -- database 삭제 D.. 2024. 9. 9.