균형 트리균형 트리 구조에서 데이터가 저장되는 공간을 노드(node) 라고 함루트 노드 : 노드의 가장 상위 노드, 모든 출발은 루트 노드에서부터리프 노드 : 제일 마지막에 존재하는 노드중간 노드 : 루트 노드와 리프 노드의 중간에 끼인 노드들my sql에서는 노드를 페이지(page) 라고 부름 균형 트리의 페이지 분할인덱스 구성시 데이터 변경 작업(insert, update, delete) 시 성능이 나빠짐페이지 분할 작업 때문페이지 분할: 새로운 페이지를 준비해서 데이터를 나누는 작업 클러스터형 인덱스 구성하기use market_db;drop table if exists cluster;create table cluster (mem_id char(8),mem_name varchar(10));insert..
인덱스데이터를 빠르게 찾을 수 있도록 도와주는 도구'클러스터형 인덱스' 와 '보조 인덱스'가 있다.클러스터형 인덱스: 기본 키로 지정하면 자동 생성, 테이블에 1개만 만들 수 있음보조 인덱스: 고유 키로 지정하면 자동 생성, 여러개를 만들 수 있음 자동 정렬되지는 않음 장점select 문으로 검색하는 속도 증가컴퓨터의 부담이 줄어들어 전체 시스템 성능 향상 단점공간을 차지해서 데이터베이스 안에 추가적인 공간이 필요인덱스를 만드는데 시간이 오래 걸림select 가 아닌 데이터의 변경 작업(insert, update, delete) 이 자주 일어나면 오히려 성능이 나빠질 가능성 존재 자동으로 생성되는 인덱스create table member -- 회원 테이블(mem_id char(8) not null pr..
뷰데이터베이스 개체 중 하나테이블처럼 데이터를 갖고 있지 않음select 문으로 만들어져 있어 뷰에 접근하는 순간 select가 실행되고 그 결과가 화면에 출력되는 방식단순 뷰: 하나의 테이블과 연관된 뷰복합 뷰: 2개 이상의 테이블과 연관된 뷰 뷰의 생성create view 뷰_이름as select 문; 뷰에 접근하는 방식select 열_이름 from 뷰_이름 [where 조건]; 뷰 생성use market_db;create view v_memberas select mem_id, mem_name, addr from member; 뷰 사용select * from v_member; 뷰의 실제 생성 뷰에서 사용될 열을 테이블과 다르게 지정 가능use market_db;create view v_viewte..
테이블 표 형태로 구성된 2차원 구조, 행과 열로 이루어짐행은 로우나 레코드로 불리고 열은 컬럼이나 필드로 불림 제약 조건데이터의 무결성을 지키기 위해 제한하는 조건데이터의 무결성: 데이터에 결함이 없다는 뜻예시) 네이버 회원 아이디의 중복 mysql에서 제공하는 대표적인 제약 조건primary key 제약조건foreign key 제약조건unique 제약조건check 제약조건default 정의null 값 허용 기본 키(primary key) 제약조건행 데이터들 중 데이터를 구분할 수 있는 식별자예시) 회원 테이블의 아이디, 학생 테이블의 학번기본 키에 입력되는 값은 중복 불가null 값 입력 불가테이블은 기본 키를 1개만 가질 수 있음 create table 에서 설정하는 기본 키 제약조건use nave..
스토어드 프로시저mysql에서 프로그래밍 기능에 필요할 때 사용하는 데이터베이스 개체sql 프로그래밍은 기본적으로 스토어드 프로시저 안에서 만들어야 함 스토어드 프로시저의 구조delimiter $$create procedure 스토어드_프로시저_이름()beginend $$ -- 스토어드 프로시저 종료delimiter ; -- 종료 문자를 다시 세미콜론(;)으로 변경call 스토어드_프로시저_이름() -- 스토어드 프로시저 실행 if 문조건문으로 가장 많이 사용되는 프로그래밍 문법 중 하나 if 문의 기본 형식if then sql문장들end if;'sql문장들'이 한 문장이라면 그 문장만 써도 되지만 두 문장 이상이 처리되어야 할 때는 begin~end로 묶어줘야 함예시)DROP PROCEDURE ..
외부 조인테이블에 모두 데이터가 있어야 결과가 나오는 내부 조인과 달리 외부 조인은 한짜에만 데이터가 있어도 결과가 나옴 외부조인의 형식select m.mem_id, m.mem_name, m.addr from member m -- 왼쪽에 있는 회원 테이블 기준으로 외부조인 left outer join buy b -- 왼쪽에 있는 회원 테이블 기준으로 외부조인, 왼쪽 테이블의 내용은 모두 출력되어야 한다 on m.mem_id = b.mem_id order by m.mem_id; 기타 조인 상호 조인한쪽 테이블의 모든 행과 다른 쪽 테이블의 모든 행을 조인시키는 기능 회원 테이블과 구매 테이블의 상호 조인select * from buy cross join member ; 대용량 테이블..
조인두개의 테이블을 묶어 하나의 결과를 만들어내는 것 내부조인 일대다 관계한쪽 테이블에는 하나의 값만 존재해야 하지만 연결된 다른 테이블에서는 여러개의 값이 존재할 수 있는 관계예시) 회사원 테이블과 급여 테이블, 1명의 회사원이 여러번의 급여를 받아야 하므로 일대다 관계 내부조인의 형식select from inner join on [where 검색 조건] 예시)구매 테이블에는 구매한 회원의 아이디와 물건 등의 정보만 존재 --> 물건을 배송하기 위해서 회원의 주소 및 연락처 정보 필요 --> 회원의 주소, 연락처를 알기 위해 정보가 있는 회원 테이블과 결합 구매 테이블에서 grl 이라는 아이디를 가진 사람이 구매한 물건을 발송하기 위해 다음과 같이 조인 해서 이름/주소/연락처 등을 검색 가능..
데이터 형식 정수형소수점이 없는 숫자, 인원수, 가격, 수량 등에 많이 사용 정수형의 크기와 범위데이터 형식바이트 수숫자 범위TINYINT1~128 ~127SMALLINT2-32,768 ~ 32,767INT4약 -21억 ~ +21억BIGINT8약 -900경 ~ +900경 문자형글자를 저장하기 위해 사용, 입력할 최대 글자의 개수를 지정해야함데이터 형식바이트 수CHAR(개수)1~255VARCHAR(개수)1~16383 대량의 데이터 형식데이터 형식바이트 수TEXT 형식TEXT1~65535LONGTEXT1~4294967295BLOB 형식BLOB1~65535LONGBLOB1~4294967295 text 최대 65535자까지 저장longtext최대 약 42억자까지 저장blob 글자가 아닌 이미지, 이진데이터라고..
select * from world.city limit 5;insert데이터 입력 insert문의 기본 문법insert into 테이블 [(열1, 열2, ...)] values (값1, 값2, ...) insert문 사용 예시use markent_dbcreate table hongong1 (toy_id int, toy_name char(4), age int);insert into hongong1 values (1, '우디', 25); auto_increment열을 정의 할 때 1부터 증가하는 값을 입력auto_increment로 지정하는 열은 꼭 primary key 지정해야 함 아이디(toy_id)열을 자동 증가로 설정create table hongong2 ( toy_id int auto_increme..
selevt 절의 형식select 열_이름열_이름 from 테이블_이름 where 조건식 group by 열_이름 having 조건식 order by 열_이름 limit 숫자 order by 절결과가 출력되는 순서 조절SELECT mem_id, mem_name, debut_date from member order by debut_date; 내림차순 정렬SELECT mem_id, mem_name, debut_date from member order by debut_date desc; -- 내림차순 평균 키(height) 가 164 이상인 회원들이 키가 큰 순서대로 출력SELECT mem_id, mem_name, debut_date, height from member where height >= 164 o..