현재 상태 : MySQL 기본 설치. root 사용자로 외부에서 접근 가능.
회원 정보는 한글 사용자, 영문 사용자로 나눠서 관리.
회원정보 변경 시 LOG 테이블에 변경 내역 저장
회원정보 조회 시 회원이 작성한 글 수를 항상 함께 보여줘야 함.
작성한 글 조회 시 항상 작성자 아이디, 이름 함께 보여줘야 함.
인스턴스 -> 데이터베이스 -> 스키마 -> 테이블
MySQL (스키마와 데이터베이스를 함께 사용.)
인스턴스 -> 스키마 -> 테이블
ex)
- CREATE SCHEMA SSAFY DEFAULT CHARACTER SET utf8;
- CREATE DATABASE SSAFY DEFAULT CHARACTER SET utf8;
두 쿼리문은 같다.
Oracle (한 인스턴스 안에 데이터베이스 하나만을 생성 가능.)
인스턴스 -> 데이터베이스 -> 스키마 -> 테이블
CREATE SEQUENCE [스키마명.]시퀀스명
INCREMENT BY 증감숫자
START WITH 시작숫자
NOMINVALUE | MINVALUE 최소값
NOMAXVALUE | MAXVALUE 최대값
NOCYCLE | CYCLE
NOCACHE | CACHE
CREATE FUNCTION '함수명' (
파라미터
) RETURNS 반환할 데이터타입
BEGIN
수행할 쿼리
RETURN 반환할 값
ENC
DELIMITER : Function을 감싼다. DELIMITER로 시작해서 DELIMITER로 끝나는 구간까지가 Function.
sha2 : DB에서도 암호화 가능.
* 비밀번호를 암호화하는 이유 : 알아볼 수 없게 하기 위해.
CREATE VIEW `뷰이름` AS
SELECT Query문;
Q. 서버에서 프로시저 호출 시, 프로시저에서 반환값은 마지막으로 Select한 결과인가.
A. 반환값이 여러 개일 수 있음. 다음 주에 자세한 설명 예정.
Q. SQL이 실제로 동작하는 시간이 전체 서비스에서 큰 영항을 미치는가.
A. function으로 만들 경우와 BE 서버가 처리할 경우와 비교해 네트웨크 트래픽 차이가 생김. 리소스 낭비.
Q. 테이블을 어떤 쿼리가 점유 중이면 다른 쿼리 요청이 못 들어갈 수 있다고 하는데 그런 문제는 안 생기는지.
A. 락이 걸리기 때문에 당연히 다른 요청은 못 들어감. 하지만 주의는 필요. 단, Select는 락이 걸리지 않음.
Q. 뷰 기능을 실제 개발 상황에서 언제 사용하는지.
A. 보안상 사용하기도 하며, 사용자 편의를 위해서도 사용.
댓글남기기