MySQL은 인스턴스 내부에 여러 데이터베이스를 둘 수 있다. 그리고 하나의 데이터베이스 내부에 여러 테이블, 뷰 등을 둘 수 있다.SQL 예시문의 대괄호 \[] 는 구분을 위함. 실제 SQL에서는 대괄호를 사용하지 않는다.워크벤치(GUI)를 사용하는 방법도 있지만cm
생성 시 사용자명 비밀번호는 문자열 형식으로 ''로 감싸져 있어야 함.ON은 적용 범위. \*.\*는 모든 DB의 모든 테이블을 의미한다. GRANT ALL PRIVILEGES -> 모든 권한을 부여하게 됨.WITH GRANT OPTION 을 주게 되면, 해당 사용자는
\>, <, >=, <=, !=, = 를 사용해 값을 비교할 수 있다.BETWEEN 과 AND를 사용해서 특정한 범위 내에 값이 속하는지 확인할 수 있다.IN 을 사용하여 괄호 내의 값들 중 하나라도 속하는 것이 있는지 확인할 수 있다.서브쿼리란 where절
변수명 앞에 참조 기호를 붙여서 참조. 참조 기호는 다음과 같다.세션은 클라이언트와 MySQL 서버 간의 연결을 의미한다. 세션 관련 변수들(세션 수준 시스템 변수, 사용자 정의 변수)의 설정 값은 세션이 종료되면 사라진다.시스템 변수는 데이터베이스 서버의 설정을 조정
만약 INSERT를 할 때 삽입하는 데이터의 키가 중복키라면 삽입이 되지 않는다. 또한 오류가 발생한 쿼리 이후의 쿼리들도 실행되지 않는다.만약 값1이라는 키가 이미 존재한다면, 첫번째 쿼리가 실행되지 않는다. 그리고 두번째, 세번째 쿼리까지 모두 실행이 되지 않을 것
,로 구분하여 여러개의 데이터를 한 줄에 입력 가능조회하려는 데이터를 형변환하여 보기 위해서 CAST나 CONVERT를 사용할 수 있다.예시로 실수 형태 데이터를 정수로 형변환이 가능하다.
LONGTEXT, LONGBLOB의 대용량 데이터 INSERT 시 NULL 값 발생LONGTEXT, LONGBLOG의 MAX 값 조정 필요\-> max_allowed_packetLOAD_FILE(PATH) 사용시 해당 경로를 보안 폴더로 지정 필요\-> secure-f
피벗은 한 열에 포함된 여러 정보를 각각의 열 정보로 변환하는 것을 의미한다. ex) 계절 컬럼 -> 봄, 여름, 가을, 겨울 컬럼으로 변환집계함수 sum()과 if(조건, 참, 거짓)을 함께 사용하여 피벗을 구현
프로시저 내부에서 변수 선언 시 DECLARE 변수명 데이터타입으로 선언기본적으로 사용자 정의 변수에 대해서 @을 붙여서 선언하지만, 프로시저 내부에서는 @을 붙이지 않음할당 시 SET 사용은 똑같음case ~ when ~ then을 사용하여 값을 지정하고, end a
스토어드 프로시저(이하 프로시저)는 여러개의 명령을 묶어서 실행할 수 있는 기능이다.복잡한 비즈니스 로직을 구현하고, 트랜잭션을 처리하는 목적을 가진다.그렇기 때문에 스토어드 함수와는 달리 비결정성을 허용한다.복잡한 비즈니스 로직 구현데이터 변경자동화된 작업 수행프로시
스토어드 함수는 프로시저와 비슷하지만 반환타입과 반환값을 따로 지정하여 사용한다.또한 예측 가능한 결과를 반환해야 한다는(결정성, 일관성 유지) 특징을 가지고 있다.단순한 계산 및 조회데이터 조작 없이 값 반환쿼리 내에서 사용프로시저는 CALL을 사용해 호출하지만, 함
테이블 스페이스는 테이블이 저장되는 논리적 공간으로, 물리적 공간인 데이터 파일에 매핑된다.일반적으로 DBMS 사용 시 어떤 논리적·물리적 공간에 저장되는지에 대해서는 상관하지 않고 CRUD 작업을 한다.하지만 대용량 데이터를 저장하는 경우에는 성능 향상을 위해 테이블
테이블 혹은 인덱스를 여러 부분으로 쪼개서 저장하는 방식을 파티션이라고 한다.파티션을 활용하면 특정 파티션에만 접근하여 검색을 하거나 조작을 할 수 있기 때문에 성능이 향상된다. 사용자는 쿼리를 할 때 파티션과 관계 없이 기존과 똑같이 쿼리를 하면 되고, 내부에서는 미
게시글의 내용 검색 시 키워드를 중심으로 검색을 하게 된다.제목과 달리 내용에는 매우 긴 문자열을 포함하기 때문에 검색 성능을 높이기 위해서 인덱스를 사용할 것이다.여기서 한 가지 주의해야할 점은 like 검색을 할 때는 단어% 형식(해당 단어가 접두사)일때만 인덱스