본문 바로가기
반응형

데이터베이스6

MYSQL - 인덱스(INDEX) 인덱스 인덱스 개념 테이블 안의 데이터를 쉽고 빠르게 찾을 수 있도록 만든 데이터베이스 객체 책 페이지를 목차나 색인을 통해 쉽게 찾는 것과 같은 원리 인덱스의 필요성 SQL 을 실행할 때 , 디스크 접근 횟수를 줄여 검색 속도를 높이기 위함 대부분 DBMS 는 B 트리 (Balanced tree) 구조의 인덱스를 지원 장점 : 루트 노드로부터 리프 노드까지의 탐색 길이가 같아서 모든 데이터에 대한 일정 수준의 검색 시간을 보장 CREATE INDEX 명령문의 형식 CREATE [REVERSE] [UNIQUE] INDEX [인덱스 이름] ON 테이블_이름 ({열_이름[ASC|DESC]},+); '수강' 테이블의 '학번', '과목번호', 열을 대상으로 인덱스 'idx_수강'을 생성하시오 create ind.. 2022. 10. 13.
MYSQL - CREATE TABLE 문, ALTER 문, DROP 문, CREATE USER 명령문 CRATE TABLE 문 create table 학생21 (학번 char(4) not null, 이름 varchar(20) not null, 주소 varchar(50) null default '미정', 학년 int not null, 나이 int null, 성별 char(1) not null, 휴대폰번호 char(13) null, 소속학과 varchar(20) null, primary key (학번), unique (휴대폰번호)); create table 과목21 (과목번호 char(4) not null primary key, 이름 varchar(20) not null, 강의실 char(5) not null, 개설학과 varchar(20) not null, 시수 int not null); create ta.. 2022. 10. 13.
MYSQL - GRANT문, REVOKE문 , DROP USER문 GRANT GRANT 문의 형식 GRANT 권한_내용 ON 권한_대상 TO 사용자_계정; GRANT 권한_내용 ON 권한_대상 TO 사용자_계정 with grant option; grant update, select on univdb1.학생21 to 'user41'@'%' with grant option; 사용자 계정의 권한 확인 show grants; show grants for 'user41'@'%'; REVOKE REVOKE 문의 형식 REVOKE 권한_내용 ON 권한_대상 FROM 사용자_계정; revoke delete on univdb1.* from 'user41'@'%'; DROP USER DROP USER 문의 형식 DROP USER 사용자_계정 drop user 'user41'@'%'; 2022. 10. 13.
MYSQL - 뷰(VIEW) 뷰 뷰의 개념 실제 데이터를 저장하지 않는 가상 테이블 (virtual table) 데이터베이스를 바라보는 창문 (window) 뷰에 대해 사용자가 질의를 요청할 때 비로소 DBMS 는 뷰 정의를 참조하여 질의를 수행 하고 그 결과를 사용자에게 반환 주로 기반 테이블로부터 정의되지만 또 다른 뷰를 기반으로도 정의될 수도 있음 뷰의 장점 편의성 : 복잡한 질의문 작성이 쉽고 간단해진다 보안성 : 데이터 보안 유지가 쉽다 재사용성 : 반복되는 질의문 작성에 효율적이다 독립성 : 스키마 변경에도 뷰 질의문은 변경할 필요가 없다 뷰 생성 CREATE VIEW 명령문의 형식 CREATE VIEW 뷰_이름 [ (열_리스트) ] AS SELECT_검색문 * 3학년 혹은 4학년 학생의 학생이름, 나이, 성, 학년으로 .. 2022. 10. 13.
MYSQL - UPDATE , DELETE 문 UPDATE문 학번이 g002 인 학생의 주소를 '경기 성남' 으로 수정하시오 update 학생1 set 주소 = '경기 성남' where 학번 ='g002'; 학번이 g001 인 학생의 소속학과를 '경영' 으로 수정하시오 update 학생1 set 소속학과 = '경영' where 학번 ='g001'; 학번이 'g002'인 학생의 소속학과를 '빅테이터'로 수정하시오 update 학생1 set 소속학과 = '빅데이터' where 학번 ='g002'; 수강1 테이블의 중간성적을 모두 +5 증가 시키시오 update 수강1 set 중간성적=중간성적+5; 수강 내용이 없는 학생의 소속학과를 널 값으로 수정하시오. update 학생1 set 소속학과 = null where 학번 not in(select 학번 fr.. 2022. 10. 6.
MYSQL - LIKE, UNION , 부 질의문, JOIN LIKE 문자 연산자 검색 주소가 과천으로 끝나는 학생을 출력 select * from 학생 where 주소 like binary '%과천'; 소속학과가 컴퓨터로 끝나고 주소가 분당으로 끝나는 학생을 출력 select * from 학생 where 소속학과 like binary '%컴퓨터' and 주소 like binary '%분당'; 널값검색: IS NULL, IS NOT NULL 휴대전화번호가 null 인 학생의 이름만 출력 select 이름 from 학생 where 휴대전화번호 is null; select 이름 from 학생 where 휴대전화번호 is not null; 집합연산자를이용한검색: UNION 성별이 '여' 이고 평가학점이 A 인 학생의 학번만 출력 select 학번 from 학생 wher.. 2022. 10. 6.
LIST