하나 이상의 테이블을 조합한 가상 테이블
실제 테이블처럼 행과 열을 가지지만, 실제 데이터를 저장하는 것은 아니다.
삽입, 삭제, 갱신 작업에 많은 제한 사항이 있다.
CREATE VIEW 뷰이름 AS
SELECT 컬럼1, 컬럼2
FROM 테이블이름
WHERE 조건;
DROP VIEW 뷰이름;
현업에서 많이 사용하니 중요!
SQL이 실행될 때 진행하는 일련의 과정을 미리 실행해서 저장해두고 나중에는 저장된 걸 사용하는 기능
DELIMITER $$ # 문장 끝 구분자 $$로 변경
CREATE PROCEDURE SP이름 (IN 또는 OUT 속성) # 저장 프로시저 정의
BEGIN # 프로시저 정의 블록 시작
저장할 SQL
END $$ # 프로시저 정의 블록 종료
DELIMITER ; # 구분자 설정 복원
drop procedure SP_SELECT_MEMBER_WITH_WHERE;
-- member 테이블 생성
create table member (
idx INT AUTO_INCREMENT PRIMARY KEY,
email VARCHAR(39),
nickname VARCHAR(20),
createdAT DATETIME
);
-- 조건 기반 회원 조회 프로시저 생성
DELIMITER $$
CREATE PROCEDURE SP_SELECT_MEMBER_WITH_WHERE (IN memberIdx INT)
BEGIN
SELECT * FROM member WHERE member.idx = memberIdx; # 입력 인자 memberIdx를 받아서, 해당 idx값을 가진 회원 정보만 조회
END $$
DELIMITER ;
-- 조건 기반 프로시저 호출
call SP_SELECT_MEMBER_WITH_WHERE(1); # idx = 1인 회원만 조회
성능에 영향이 있으니 중요!
테이블에서 원하는 데이터를 쉽고 빠르게 검색할수있도록 만들어진 데이터 구조
자주 사용되는 속성으로 만들어진 원본 테이블의 사본과도 같은 것
CREATE INDEX 인덱스이름
ON 테이블이름 (속성, 속성, ...)
SHOW INDEX FROM 테이블이름
ALTER TABLE 테이블이름 DROP INDEX 인덱스이름;
배열, 스택, 큐, 데크, 연결리스트
sql 성능 측정(중요)
SQL
Structured Query Language
컴파일 언어 vs 인터프리터 언어
컴파일 언어: 인터프리터 언어보다 빠르다.
ex) C언어
인터프리터 언어: 컴파일 언어보다 느리다.
ex) 파이썬
너무 짧아요