일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- DML
- Spring_오류정리
- SQL
- Git_명령어정리
- 배열
- workbench
- 이클립스
- spring
- github
- json
- 다이어그램
- Git_정리
- MySQL
- jsp
- 인덱스
- SQL_용어정리
- Spring_에러정리
- git
- HTML
- 자바
- Linux_명령어정리
- Linux
- 자바스크립트
- java
- JavaScript
- 인스턴스
- vb.net
- 아파치톰캣
- asp.net
- CSS
- Today
- Total
목록데이터베이스/SQL: 정리 (37)
데브마우스
SQL의 뷰(View)에서 별칭 사용 시 주의사항 정리 SQL의 뷰에서 별칭(alias) 사용 시 원래 컬럼 이름으로 SELECT 할 수 없습니다. 또한 별칭이 사용되었고 별칭에 공백이 있다면 백틱(`)으로 묶으셔야 합니다. 백틱은 키보드의 1 왼쪽에 있습니다. 따옴표(')와는 다르니 주의하세요.
SQL의 DML(Data Manipulation Language) CRUD 해당 SQL문 CREATE INSERT READ SELECT UPDATE UPDATE DELETE DELETE INSERT 데이터를 삽입할 때 사용합니다. -- 테이블을 생성합니다. CREATE TABLE member1 (mem_id INT, mem_name CHAR(4), age INT); -- INSERT를 사용하는 방법입니다. INSERT INTO member1 VALUES(1, '우리', 25); -- 모든 컬럼에 INSERT하는 방법입니다. INSERT INTO member1 (mem_id, mem_name) VALUES(2, '버디'); -- 특정 컬럼에만 INSERT하는 방법입니다. INSERT INTO member1..
트리거란 무엇인가요? 트리거(Trigger)란 한국어로 방아쇠입니다. 방아쇠를 당기면 총의 총알이 나가듯, SQL에서는 특정 행동을 하면 바로 다른 행동이 일어나도록 만들 수 있습니다. 트리거는 어떻게 사용하나요? 트리거는 테이블의 DML문(INSERT, UPDATE, DELETE 등)의 이벤트가 발생할 때 작동합니다. 테이블에 프로그램 코드를 부착해서 사용합니다. 트리거 코드 형식은 다음과 같습니다. DELIMITER $$ CREATE TRIGGER 트리거_이름 [BEFORE | AFTER] [INSERT | UPDATE | DELETE] ON 테이블_이름 FOR EACH ROW BEGIN -- 트리거 실행 시 작동되는 코드 END $$ DELIMITER ; NEW와 OLD 테이블 정리 트리거와 연결된..
스토어드 함수는 무엇인가요? 스토어드 함수(Stored Function)은 MySQL 제공하는 내장 함수가 아닌, 직접 함수를 만드는 기능을 제공합니다. 스토어드 함수는 프로시저와 비슷해보이지만 세부적으로 다릅니다. 용도가 다르며, RETURNS 예약어를 통해 하나의 값을 반환한다는 특징이 있습니다. 스토어드 함수의 형식과 특징 스토어드 함수는 다음과 같은 형식으로 작성됩니다. DELIMITER $$ CREATE FUNCTION 스토어드_함수_이름(파라미터 데이터타입) -- SQL문은 프로그래밍 언어와 다르게 데이터 타입이 뒤에옵니다. RETURNS 반환 데이터 타입 -- RETURN 뒤에 S가 있습니다. BEGIN SQL문 코딩 RETURN 반환값; -- RETURN 뒤에 S가 없습니다. END $$ ..
스토어드 프로시저란 무엇인가요? MySQL의 스토어드 프로시저는 SQL에 프로그래밍 기능을 추가하여 일반 프로그래밍 언어와 같은 동작을 이끌어낼 수 있습니다. 스토어드 프로시저는 쿼리 문의 집합(단위 작업, 2개 이상의 SQL문)이라 할 수 있습니다. 스토어드 프로시저로 묶은 뒤 필요할 때마다 호출하면 편리하게 MySQL을 운영할 수 있습니다. 또한, 스토어드 프로시저도 데이터베이스의 개체 중 한가지입니다. 스토어드 프로시저를 익히는 제일 좋은 방법 스토어드 프로시저의 형식이 복잡해보일 수 있지만 일단 기본 형식을 먼저 익히시고, 그 뒤 추가로 완전한 형식을 학습하시면 됩니다. 스토어드 프로시저의 생성, 실행, 삭제 방법 스토어드 프로시저의 생성 코드 형식은 아래와 같습니다. DELIMITER $$ CR..
인덱스를 사용하는 방법은 무엇인가요? 인덱스를 생성하는 코드 형식은 아래와 같습니다. CREATE [UNIQUE] INDEX 인덱스_이름 ON 테이블_이름 (열_이름) [ASC | DESC ] -- 단순 보조 인덱스(중복 허용 인덱스) CREATE INDEX 인덱스_이름 ON 테이블이름 (열_이름) [ASC | DESC] -- 고유 보조 인덱스(중복을 허용하지 않는 인덱스) CREATE UNIQUE INDEX 인덱스_이름 ON 테이블이름 (열_이름) [ASC | DESC] 인덱스를 제거하는 코드 형식은 아래와 같습니다. DROP INDEX 인덱스_이름 ON 테이블_이름 인덱스의 효과적인 사용법 인덱스는 열 단위로 생성됩니다. 하나의 열에 2개 이상의 인덱스를 생성할 수 있지만 보통은 하나의 열에 하나의 ..
인덱스의 내부 구조는 어떻게 되어 있나요? 인덱스는 균형 트리(Balanced Tree, B-tree)로 구성되어 있습니다. '자료 구조'에 나오는 범용적으로 사용되는 데이터의 구조입니다. B-tree의 구성은 아래와 같습니다. 최상단: 뿌리(Root) 중단: 줄기(Internal) 최하단: 잎(Leaf) 균형 트리(B-tree) 구조에서 노드는 데이터가 저장되는 공간입니다. 루트 노드, 중간 노드, 리프 노드로 구성되어 있습니다. MySQL에서는 노드를 페이지(Page)라고 부릅니다. 페이지는 MySQL에서 최소 저장단위이며 1개의 페이지 마다 16KB의 크기를 가집니다. 균형 트리 덕분에 데이터베이스에서 빠르게 데이터를 검색할 수 있습니다. 만약 루트와 줄기가 없고 오직 리프 노드만 있다면 데이터를 ..
인덱스란 무엇인가요? 인덱스는 SELECT를 사용해서 테이블을 조회할 때 결과를 빠르게 추출하도록 도와주는 기능입니다. 인덱스는 PK라고 말해도 거의 무관합니다. 클러스터형 인덱스는 기본 키로 지정되면 자동생성되며 테이블 당 1개만 가능합니다. 보조 인덱스는 고유 키로 지정하면 자동 생성되며 여러개 만들 수 있지만 자동 정렬되지는 않습니다. 인덱스의 장단점은 무엇인가요? 장점: 아주 빠른 응답속도를 얻을 수 있습니다. 결과적으로 전체 시스템의 성능이 향상되는 효과가 있습니다. 단점: 인덱스도 공간을 차지해서 데이터베이스 안에 추가적인 공간(약 10% 정도)가 필요합니다. SELECT가 아닌 데이터의 변경 작업(INSERT, UPDATE, DELETE)이 자주 일어나면 오히려 성능이 나빠질 수 있습니다. ..
뷰는 무엇인가요? 뷰는 '가상의 테이블'이라 부를 수 있습니다. 그렇다면 가상의 의미는 무엇일까요? '실체가 없다. 기능은 같다.'라는 의미를 가지고 있으며 IT에서는 가상 현실, 가상 화폐 등 많은 부분에서 사용되고 있습니다. 뷰의 특징은 다음과 같습니다. 가상의 테이블입니다. 데이터가 있는 주소를 가집니다. 윈도우즈의 바로가기 아이콘에 비유할 수 있습니다. 실제 테이블에 연결되어 있습니다. 뷰인지 알아 볼 수 있게 이름 앞에 v_를 붙이는 것이 일반적입니다. 뷰는 2가지로 나눌 수 있습니다: 단순 뷰(테이블 1개)와 복합 뷰(테이블 2개 이상)로 나눌 수 있습니다. 뷰는 어떻게 사용하나요? 뷰의 예제 코드는 다음과 같습니다. -- 뷰 코드 형식 CREATE VIEW 뷰_이름 AS SELECT 문; 뷰..
제약 조건이란 무엇인가요? 제약 조건은 데이터의 무결성을 지키기 위해 제한하는 조건입니다. 대표적인 제약 조건은 다음과 같습니다. 기본 키 외래 키 고유 키 체크 기본값 NOT NULL 기본 키(PRIMARY KEY)는 무엇인가요? 만약 인터넷 사이트에 같은 아이디를 가진 회원이 2명 있다고 가정해보겠습니다. 그렇다면 본인의 아이디 임에도 누구 누구인지 큰 혼란이 될 것입니다. 즉 기본 키란 특정 행을 구별할 수 있는 행(Record)입니다. 기본 키를 사용하는 이유는 무엇인가요? 기본 키로 생성한 것은 자동으로 클러스터형 인덱스(책의 페이지 찾는 인덱스)가 생성됩니다. 그러므로 기본 키로 검색하면 행을 더 빠르게 찾을 수 있습니다. 기본 키는 Unique와 NOT NULL을 가집니다. 기본 키(PRIM..