everyday com-eat

{ "Hello World!" };/DataBase 14

카테고리 설명
  • 특정 소수점 자리 표시 FROMAT(숫자, 소수점 자리) 반올림 ROUND(숫자, 기준) - 기준 생략 가능, 생략시 소수점 생략 - 기준 음수 사용시 왼쪽이 반올림 대상 올림 CEILING(숫자) - 소수 > 정수 - ex 9.9 => 10 내림 FLOOR(숫자) - 소수 > 정수 - ex 9.9 => 9

  • 정의 - 테이블에 삽입, 수정, 삭제 등의 작업(이벤트)이 발생할 때에 자동으로 작동하는 데이터 베이스 개체 특징 -프로시저와 달리 직접 실행시킬 수 없고 오직 해당 테이블에 이벤트가 발생할 경우에만 실행 (매개변수는 사용불가) -이벤트발생 한 후 ROLLBACK 할 수 없다. 형식 DELIMITER $$ CREATE TRIGGER 트리거 이름 트리거타임 트리거이벤트 ON 테이블이름 FOR EACH ROW BEGIN 트리거 관련 명령문 END $$ DELIMITER; 트리거 타임: BEFORE / AFTER 트리거 이벤트: INSERT / UPDATE / DELETE 실습 실습1. 행 삭제 시 msg 나오는 트리거 트리거 작성 트리거 발동 SET @msg:='';/*변수 초기화*/ DELETE FROM ..

  • 프로시저(Stored Procedure) MySQL 프로시저 생성 및 호출 IN 매개변수 CREATE PROCEDURE `sp_memberInfo`( IN `mName` VARCHAR(50) ) LANGUAGE SQL NOT DETERMINISTIC CONTAINS SQL SQL SECURITY DEFINER COMMENT '사용자의 이름을 입력받아 사용자의 정보를 조회하는 프로시저' BEGIN SELECT * FROM tb_member AS m WHERE m.m_name = mName; END OUT 매개변수 CALL sp_memberEmail_out('id001', 'pw001', @result); SELECT @result; 제어문 조건문 IF문 BEGIN /*변수 선언*/ DECLARE Membe..

  • 정의 - 하나의 작업을 수행하기 위해 필요한 데이터베이스 연산들을 모아 놓은 것 - 작업 수행에 필요한 SQL 문들의 모임 - 논리적인 작업의 단위 - 장애 발생 시 복구 작업이나 병행 제어 작업을 위한 중요한 단위로 사용됨 - 데이터베이스의 무결성과 일관성을 보장하기 위해 작업 수행에 필요한 연산들을 하나의 트랜잭션으로 제대로 정의하고 관리해야 함 특성 Atomicity (원자성) - 트랜잭션의 연산들이 모두 정상적으로 실행되거나 하나도 실행되지 않아야 하는 all-or-nothing Consistency (일관성) - 트랜잭션이 성공적으로 수행된 후에도 데이터베이스가 일관성 있는 상태를 유지해야 한다. Isolation (격리성, 고립성) - 수행 중인 트랜잭션이 완료될 때까지 다른 트랜잭션들이 중간..

  • 1. 새프로젝트 만들 때 대상 DBMS 선택 후 이름 수정 2. erd 그리는 방법 1. 테이블 추가 > 선택 후 화면에 누르면 새테이블 생성 2. 새 컬럼 추가 : Ctrl + Enter ① 3. [L] 논리명 : F4 4. [P] 물리명(실제 db에 들어가는 이름) : F5 ② 논리명,물리명 함께 보기 5. 자동 배치 : Ctral + Shift + F 3. 도메인 설정 - 이미 정의되어 있는 도메인을 쓸 수도 있고, 새로 만들수도 있음 - 널 허용은 왼쪽마우스 클릭으로 변경 가능 4. DB에 적용(포워드) 시키기 1. 상단메뉴의 eXERD > 포워드 엔지니어링 2. 스키마 표시, 테이블 생성, 기본키/외래키 제약사항 생성을 체크 3. 가져갈 모델 선택 (테이블만) 4. DDL 결과 확인 5. 맨 윗..

  • 사용자에게 접근이 허용된 자료만을 제한적으로 보여주기 위해 하나 이상의 기본 테이블로부터 유도된, 이름을 가지는 가상 테이블이다 특징 - 기본테이블로부터 유도된 테이블이기에 테이블과 같은 형태의 구조이며 조작도 테이블과 거의 같다. - 가상 테이블이기에 데이터의 논리적 독립성을 제공한다. - 뷰를 통해서만 데이터를 접근하여 뷰에 나타나지 않는 데이터 보안에 도움. - 필요한 데이터만 뷰로 정의해서 처리하기에 관리가 용이하고 명령문이 간단함. - grant문으로 권한 줌 단점 - ALTER VIEW문을 사용할 수 없다. (뷰의 정의를 변경할 수 없다.) (mysql은 alter문이 되지만 실행이 아니라 새로운 view가 만들어지는 개념) - 뷰로 구성된 내용에 대한 삽입, 삭제, 갱신, 연산에 제약이 따른..

  • 서브 쿼리 - SQL문 내에서 하위에 존재하는 쿼리 ( SQL문 안에 SQL ) 스칼라 서브쿼리 - select문에 있는 서브쿼리 (1행만 반환) SELECT g.g_name ,g.g_price FROM (SELECT * ,(SELECT ROUND(AVG(g_price), 0) AS avg_price FROM tb_goods) AS avg_price FROM tb_goods) AS g WHERE g.g_price > g.avg_price; 인라인 뷰 - from절에 있는 서브쿼리 -> 집합 - 속도가 가장 빠름 SELECT g.g_name ,g.g_price FROM tb_goods AS g JOIN (SELECT ROUND(AVG(g_price), 0) AS avg_price FROM tb_goods)..

  • 정규화(normalization) - 데이터의 일관성, 최소한의 데이터 중복, 최대한의 데이터 유연성을 위한 방법이며 데이터를 분해하는 과정. 즉, 이상현상이 발생하는 릴레이션을 분해하는 과정 - 함수적 종속성을 판단하여 정규화를 수행 - 정규화를 통한 릴레이션은 무손실 분해여야 한다. (자연 조인 시 분해 전 릴레이션으로 복원 가능) ❓ 이상현상(anomaly) - 불필요한 데이터 중복으로 인해 릴레이션에 대한 데이터 삽입,수정,삭제 연산을 수행할 때 발생할 수 있는 부작용 - 삽입이상 : 데이터를 삽입할 때 원치 않은 값들도 함께 삽입하는 현상 (무결성) - 갱신이상 : 투플 수정 시 중복된 데이터의 일부만 수정되어 데이터의 불일치 일어나는 현상 - 삭제이상 : 투플 삭제 시 같이 저장된 다른 정보까..

728x90