MariaDB / VIEW / 만들기, 수정하기, 삭제하기

예제로 사용한 데이터베이스는 employees이다.

VIEW

VIEW는 SELECT의 결과를 테이블처럼 사용할 수 있게 해준다. 반복되는 쿼리를 대체하거나, 민감한 정보를 숨기고 싶을 때 사용한다.

VIEW 만들기

CREATE VIEW

예를 들어 남자인 직원의 first_name과 last_name을 VIEW로 만든다고 하자. 우선 VIEW로 만들 데이터를 추출하는 쿼리를 만든다.

SELECT
  first_name, last_name
FROM employees
WHERE gender = 'M'
;

CREATE VIEW로 VIEW를 만든다. v_employees_male는 VIEW의 이름으로, 적절히 정한다.

CREATE VIEW v_employees_male
AS
  SELECT
    first_name, last_name
  FROM employees
  WHERE gender = 'M'
;

CREATE OR REPLACE VIEW

기존 VIEW와 이름이 같으면 VIEW가 생성되지 않는다. CREATE VIEW 대신 CREATE OR REPLACE VIEW를 사용하면, 같은 이름의 VIEW가 있을 때 기존 VIEW를 대체한다.

CREATE OR REPLACE VIEW v_employees_male
AS
  SELECT
    first_name, last_name
  FROM employees
  WHERE gender = 'M'
;

CREATE VIEW IF NOT EXISTS

CREATE VIEW 대신 CREATE VIEW IF NOT EXISTS를 사용하면, 같은 이름의 VIEW가 없을 때만 VIEW를 만든다.

CREATE VIEW IF NOT EXISTS v_employees_male
AS
  SELECT
    first_name, last_name
  FROM employees
  WHERE gender = 'M'
;

VIEW 수정하기

VIEW 수정은 ALTER VIEW로 한다. CREATE 자리에 ALTER가 있다고 보면 된다. 수정하는 것이므로, 당연히 기존에 정의된 VIEW가 있어야 한다. 아래는 위에서 만든 VIEW에 gender를 추가한 것이다.

ALTER VIEW v_employees_male
AS
  SELECT
    first_name, last_name, gender
  FROM employees
  WHERE gender = 'M'
;

VIEW 삭제하기

DROP VIEW로 VIEW를 삭제한다. 예를 들어 VIEW의 이름이 v_employees_male이라면 다음과 같이 한다.

DROP VIEW v_employees_male;

Related Posts

MariaDB / DATABASE / 백업하기, 복원하기

MariaDB / DATABASE / 백업하기, 복원하기

모든 데이터베이스 백업과 복원 백업 모든 데이터베이스를 backup-all.sql로 백업 user는 권한 있는 사용자명으로 변경 mysqldump -u user -p --all-databases > backup-all.sql 복원 backup-all.sql을 복원 user는 권한 있는 사용자명으로 변경 mysql -u user -p < backup-all.sql 특정 데이터베이스 백업과 복원 백업 abc 데이터베이스를 abc.sql로 백업 user는 권한 있는 사용자명으로 변경 mysqldump -u user -p abc > abc.sql 복원 abc.sql을 데이터베이스 abc로 복원 user는 권한 있는 사용자명으로 변경 mysql ...

MariaDB / TABLE / AUTO_INCREMENT / 자동으로 증가하는 값 만들기

MariaDB / TABLE / AUTO_INCREMENT / 자동으로 증가하는 값 만들기

테이블에는 데이터를 특정할 수 있는 고유값이 있는 게 좋습니다. 고유값을 수동으로 넣을 수는 없으므로, 값을 자동으로 증가시키는 AUTO_INCREMENT를 사용합니다. AUTO_INCREMENT로 고유값이 어떻게 만들어지는지 알아보겠습니다. 사용하는 테이블 이름은 test입니다. 자동으로 증가하는 열 만들기 열 이름은 id, 데이터 타입은 정수(INT)로 만듭니다. 데이터 타입 뒤에 AUTO_INCREMENT PRIMARY KEY를 붙입니다. MariaDB > CREATE TABLE test ( id INT AUTO_INCREMENT ...

MariaDB / HeidiSQL / 쿼리 실행하는 방법

MariaDB / HeidiSQL / 쿼리 실행하는 방법

HeidiSQL을 실행하고 데이터베이스 서버에 연결합니다. 쿼리를 실행할 데이터베이스를 선택합니다. 탭을 클릭합니다. 쿼리를 입력하고 삼각형 모양의 아이콘을 클릭하면 쿼리가 실행됩니다. 단축키는 F9입니다. 쿼리 결과는 하단에 표시됩니다. 여러 개의 쿼리를 입력하고 실행하면, 각 결과가 별도의 탭으로 표시됩니다. 쿼리를 선택하고 을 클릭하면 선택한 쿼리만 실행됩니다. 단축키는 Shift+Ctrl+F9입니다.

MariaDB / 함수 / LIKE

MariaDB / 함수 / LIKE

다음과 같은 테이블이 있습니다. 열의 이름은 column1, 데이터는 12345, 23456 두 개가 있습니다. MariaDB > SELECT * FROM table1; +---------+ | column1 | +---------+ | 12345 | | 23456 | +---------+ WHERE를 이용하면 특정 값을 갖는 행을 출력할 수 있습니다. 예를 들어 다음은 column1의 값이 12345인 데이터를 출력합니다. MariaDB > SELECT * FROM table1 WHERE ...

MariaDB / 사용자 만들기, 수정하기, 삭제하기, 권한 부여하기, 제거하기

MariaDB / 사용자 만들기, 수정하기, 삭제하기, 권한 부여하기, 제거하기

사용자 목록 보기 mysql 데이터베이스의 user 테이블에서 필요한 정보 출력 SELECT User, Host FROM mysql.user; 사용자 만들기 사용자 이름 jb, 내부에서만 접속 가능, 비밀번호 1234 CREATE USER 'jb'@'localhost' IDENTIFIED BY '1234'; 사용자 이름 jb, 어디에서나 접속 가능, 비밀번호 1234 CREATE USER 'jb'@'%' IDENTIFIED BY '1234'; 사용자 이름 jb, 192.168.0.111에서 접속 가능, 비밀번호 1234 CREATE USER 'jb'@'192.168.0.111' IDENTIFIED BY '1234'; 이미 ...

MariaDB / 함수 / LEFT, RIGHT / 문자열의 왼쪽 또는 오른쪽의 일부를 출력하는 함수

MariaDB / 함수 / LEFT, RIGHT / 문자열의 왼쪽 또는 오른쪽의 일부를 출력하는 함수

LEFT는 문자열의 왼쪽부터 일정 길이만큼 출력하는 함수입니다. LEFT( string,length ) SELECT LEFT( '12345678', 3 ); +-----------------------+ | LEFT( '12345678', 3 ) | +-----------------------+ | 123 | +-----------------------+ RIGHT는 문자열의 왼쪽부터 일정 길이만큼 출력하는 함수입니다. RIGHT( string, length ) SELECT RIGHT( '12345678', 3 ...

MariaDB / 함수 / QUOTE / 문자열을 작은 따옴표로 감싸는 함수

MariaDB / 함수 / QUOTE / 문자열을 작은 따옴표로 감싸는 함수

QUOTE는 문자열을 작은 따옴표로 감싸는 함수입니다. QUOTE( string ) SELECT QUOTE( 'ABC' ); +----------------+ | QUOTE( 'ABC' ) | +----------------+ | 'ABC' | +----------------+ SELECT QUOTE( "ABC" ); +----------------+ | QUOTE( "ABC" ) | +----------------+ | 'ABC' | +----------------+ 문자열 안에 있는 작은 따옴표는 \'로 표시됩니다. SELECT ...

MariaDB / TABLE / 만들기, 삭제하기, 이름 변경하기

MariaDB / TABLE / 만들기, 삭제하기, 이름 변경하기

테이블 만들기 test 데이터베이스를 만듭니다. MariaDB > CREATE DATABASE test; Query OK, 1 row affected (0.00 sec) test 데이터베이스를 사용합니다. MariaDB > USE test; Database changed table1을 만듭니다. 열이 하나도 없으면 테이블이 만들어지지 않으므로, 적어도 하나 이상의 열을 만듭니다. MariaDB > CREATE TABLE table1 ( column1 VARCHAR(100) ); Query OK, 0 rows affected (0.35 sec) 테이블이 만들어졌는지 확인합니다. MariaDB > SHOW ...

MariaDB / 함수 / ELT / 특정 위치의 문자열 출력하는 함수

MariaDB / 함수 / ELT / 특정 위치의 문자열 출력하는 함수

ELT는 특정 위치의 문자열을 출력하는 함수입니다. ELT( N, string1, string2, string3, ... ) A, B, C, D에서 2번째의 문자열인 B를 출력합니다. SELECT ELT( 2, 'A', 'B', 'C', 'D' ); +------------------------------+ | ELT( 2, 'A', 'B', 'C', 'D' ) | +------------------------------+ | B ...

MariaDB / 함수 / FORMAT / 숫자 세 자리마다 쉼표(콤마) 찍는 함수

MariaDB / 함수 / FORMAT / 숫자 세 자리마다 쉼표(콤마) 찍는 함수

FORMAT은 숫자 세 자리마다 쉼표(콤마) 찍는 함수이다. 예를 들어 다음은 123456789에서 세 자리마다 쉼표를 넣는다. MariaDB > SELECT FORMAT(123456789, 0) as Money; +-------------+ | Money | +-------------+ | 123,456,789 | +-------------+ 값이 숫자 형식이 아니어도 가능하다. MariaDB > SELECT FORMAT('123456789', 0) as Money; +-------------+ | Money | +-------------+ | 123,456,789 | +-------------+ 0이 뜻하는 ...