인덱스의 개념 책 뒷부분의 '찾아보기' 개념 인덱스의 장점 검색 속도가 무척 빨라질 수 있다. (항상 그런것은 아니다.) 그 결과 해당 쿼리의 부하가 줄어들어서, 결국 시스템 전체의 성능이 향상된다. 인덱스의 단점 인덱스가 데이터베이스 공간을 차지해서 추가적인 공간이 필요해지는데, 대략 데이터베이스 크기의 10% 정도의 추가 공간이 필요하다. 처음 인덱스를 생성하는데 시간이 많이 소요될 수 있다. 데이터의 변경 작업(INSERT, UPDATE, DELETE)이 자주 일어날 경우에는 오히려 성능이 많이 나빠질 수도 있다. 인덱스의 종류 클러스터형 인덱스 : = PRIMARY KEY, 영어사전으로 비유 보조 인덱스 : = UNIQUE KEY, 책 뒤의 찾아보기로 비유 제약조건 설정과 인덱스 PRIMARY K..
열의 추가 USE tabledb; ALTER TABLE usertbl ADD homepage VARCHAR(30) 열의 삭제 ALTER TABLE usertbl DROP COLUMN mobile1; 열의 이름 및 데이터 형식 변경 ALTER TABL usertbl CHANGE COLUMN name Uname VARCHAR(20) NULL; name 은 기존이름, Uname은 새 이름 열의 제약 조건 추가 및 삭제 ALTER TABLE usertbl DROP FOREIGN KEY buytbl_ibfk_1; 외래키를 제거한 후에 기본 키를 제거해야 한다.
PK(primary key : 기본키)는 학생과 수업의 테이블에서 각 행의 정보들을 식별할 수 있는 정보(학생코드, 수업코드)를 표현한다. PK는 테이블 행의 여러 정보들 중 행을 식별할 수 있어야 하는 때문에 비어있으면 안되고(NOT NULL) 중복되어서도 안된다(Unique). NOT NULL 과 Unique의 속성을 모두 가진다. FK(foreign key : 외래키)는 참조하는 테이블과 참조되는 테이블의 관계를 나타낸다. 그림에서 학생-수업 테이블은 학생테이블과 수업테이블의 관계를 1:N 관계로 나타내기위한 테이블이므로 학생테이블과 수업테이블을 참조하여 만들어야 한다. 그러기 위해서 학생정보를 식별하는 학생코드(PK), 수업정보를 식별하는 수업코드(PK)로 테이블이 구성되며 이렇게 다른 테이블의 ..
DROP DATABASE IF EXISTS sqldb; -- 만약 sqldb가 존재하면 우선 삭제한다. CREATE DATABASE sqldb; USE sqldb; CREATE TABLE usertbl -- 회원 테이블 ( userID CHAR(8) NOT NULL PRIMARY KEY, -- 사용자 아이디(PK) name VARCHAR(10) NOT NULL, -- 이름 birthYear INT NOT NULL, -- 출생년도 addr CHAR(2) NOT NULL, -- 지역(경기,서울,경남 식으로 2글자만입력) mobile1CHAR(3), -- 휴대폰의 국번(011, 016, 017, 018, 019, 010 등) mobile2CHAR(8), -- 휴대폰의 나머지 전화번호(하이픈제외) height ..
두개 이상의 테이블을 묶어서 하나로 만드는 것. 보통의 JOIN 은 INNER JOIN(내부 조인)을 의미 (JOIN과 INNER JOIN은 같은 구문) SELECT 열 목록 FROM 첫 번째 테이블 JOIN 두 번째 테이블 ON 조인될 조건 (WHERE 검색 조건) SELECT * from buy -- 첫 번째 테이블 inner join members -- 두 번째 테이블 on buy.mem_id = members.mem_id -- 조인될 조건 : mem_id 가 같은 항목 where buy.mem_id = 'GRL'; -- mem__id 가 'GRL'인 행만 표시 두 테이블에 동일한 항목이 있는 컬럼을 select할 때는 어느 테이블의 컬럼을 추출할 지 명시해 주어야 한다. from 과 join 에서..