USE 데이터베이스명;
SELECT 필드명 FROM 테이블명;
SELECT 필드명 FROM 테이블명 WHERE 조건;
(*은 전체선택)
(필드명에는 큰따옴표("")를 반드시 넣어줘야 한다.) - 외부에서 치는 문자열은 반드시 큰따옴표!!
데이터베이스는 대소문자를 인식하지 않는다. (대문자와 소문자 상관없음)
CREATE TABLE 테이블명 (필드명 필드데이터형);
INSERT INTO 테이블명
SELECT 필드명
FROM 가지고올테이블
LIMIT 조건;
SELECT * FROM 테이블명;
생성한 테이블에 조건에 해당하는 데이터를 가져와 저장하는 방법.
CREATE TABLE 테이블명 (필드,,,,) 로 새로운 테이블을 생성해준다.
필드 데이터형이 varchar이라면, (name VARCHAR(5)); 이런식으로 크기를 꼭 괄호 안에 넣어주어야 한다.
INSERT INTO 새로만든테이블명 이미 존재하는 다른 테이블에서 일부분을 가지고 오기 위하여
SELECT 필드명 쿼리문으로, 가지고올 필드명들을
FROM 이미존재테이블명 가지고올 테이블을
LIMIT 조건; 가지고올 해당 데이터들의 제한 조건을 설정해준다.
그리고 확인하기 위한 SELECT * FROM 테이블명;
** EXPLAIN : 실행될 때 어떤 방식 으로 실행되는지 (실행 계획Execution Plan), 인덱스가 없을 때의 query 작동
type이 ALL이라는 것!!
인덱스 (index)
CREATE INDEX 색인_이름 ON 테이블명(색인의_열);
인덱스 생성하기
혹은 이렇게 직접 생성해도 된다.
인덱스를 설정하면 속도가 더 빨라진다.
뷰 (view)
View(뷰)는 실제 행 데이터를 가지고 있지 않은 가상의 테이블이다.
사용자에게는 동일하게 보임(테이블과)
실체가 없는, 진짜 테이블에 연결된 것으로 생각하면 된다.
보안을 위해서 사용(개인정보보호)
원천테이블에서 뷰를 만들고, 뷰에서 또다시 뷰 생성 가능! (하지만 수정은 불가능. 파괴하고 다시 생성해야 한다.)
뷰는 크기가 없다.
CREATE VIEW 뷰_이름
AS
SELECT 필드명;
뷰가 생성된 모습
업데이트시 뷰는 같이 되지 않으면 안되니, 업데이트 옵션 확인을 CASCADED로 해주어야 한다.
스토어드 프로시저 (stored procedure)
모든 SQL에서 지원해준다.
함수 호출하듯이 호출해서 결과값을 사용하는 것.
여러 개의 SQL 문을 하나로 묶어서 사용하는 것이다. (각각실행이 아닌 한번의 호출로 동시에 작업)
저장 프로시저를 생성
BEGIN
END
begin 에서 end까지의 쿼리문을 실행시키는 것이다.
begin 에서 end 사이에 쿼리문 작성.
프로시저가 생성된 모습
CALL `프로시저명`();
CALL로 프로시저 호출
트리거 (trigger)
테이블에 INSERT나 UPDATE나 DELETE 작업이 발생되면 실행되는 코드. (테이블에 부착되어)
(ex 백업 테이블에 지워진 데이터를 기록하는 트리거 생성)
DELIMITER //인식시키기위한특수기호
CREATE TRIGGER 트리거_이름
AFTER DELETE
ON 트리거부착할테이블명
FOR EACH ROW
BEGIN
INSERT INTO 트리거_이름
VALUES (OLD.필드명, OLD.필드명, OLD.필드명, CURDATE() );
END //인식특수기호
DELIMITER ;
시작 DELIMITER 뒤 //(인식시키기 위한 특수기호) 를 넣어 //를 '문의 끝'으로 인식시킨다.
끝 DELIMITER 뒤 ; 를 문의 끝에 넣어준다.
AFTER DELETE : 멤버테이블을 지운 후에,
ON 트리거명 : 트리거를 부착(테이블에)
FOR EACH ROW : 각 행마다 적용
INSERT INTO 트리거_이름 : 해당 트리거에
VALUES (OLD.필드명, OLD.필드명, OLD.필드명, CURDATE() ) ; : CURDATE()로 삭제된 시간을 넣고, 삭제되기 전이니까 OLD.필드명으로 삭제되는 것을 백업 (OLD와 NEW 두가지 사용)
이벤트를 before, after(시점)/ insert, update, delete(행위) 설정할 수 있다.
백업, 복원
데이터베이스를 SQL로 내보내기
내보내기하여 저장하면, 삭제하고 복원 가능함!
1. 저장프로시저 (Procedure)
- 리턴값이 있을수도 없을수도 있다. (IN 또는 OUT)
- 리턴값이 여러개 있을 수 있다. (OUT 여러개)
- 서버에서 실행이되기 때문에 속도가 빠르다.
- CALL 프로시저명() 또는 EXECUTE 프로시저명()
2. 함수 (Function)
- 리턴값이 필수이다.
- 클라이언트에서 실행이되기 때문에 프로시저보다는 느리다.
- 호출방법 : SELECT 함수명() FROM DUAL;
'MariaDB' 카테고리의 다른 글
MariaDB#7 : 모델링 (221228)4 (0) | 2022.12.28 |
---|---|
MariaDB#6 : ODBC연결 (221228)3 (0) | 2022.12.28 |
MariaDB#4 : 데이터베이스 생성, 테이블 생성, 데이터 입력해보기(221227) 3 (0) | 2022.12.27 |
MariaDB#3 : 기본 (221226)1, 2, 3 (0) | 2022.12.26 |
MariaDB#1 : 설치 (221226) (0) | 2022.12.26 |
댓글