전체 글 43

[SQL 첫걸음] 7장.복수의 테이블 다루기 - 32.테이블 결합

저자 : 아사이 아츠시출판 : 한빛미디어 발매 : 2015.11.01 1. 곱집합과 교차결합- 곱집합 : 두 개의 집합을 곱하는 연산 방법으로 '적집합' 또는 '카티전곱(Cartesian product)'이라고도 불림. 곱집합은 야구팀들의 대전표를 짜는 것과 비슷한 개념. - 집합 X가 {A,B,C}라는 요소를 가지고, 집합 Y가 {1,2,3}이라는 요소를 가질 때 집합 X와 Y의 곱집합을 구하면 아래와 같음. 교차결합(Cross Join)SELECT * FROM 테이블명1, 테이블명2 - 데이터베이스의 테이블은 집합의 한 종류라 할 수 있음. 만약 SELECT명령의 FROM구에 테이블을 두 개 지정하면 이들은 곱집합으로 계산됨. - FROM 구에 복수의 테이블을 지정하면 교차결합을 함. 교차결합은 두 ..

Study/DB 2018.09.27

[SQL 첫걸음] 7장.복수의 테이블 다루기 - 31.집합 연산

저자 : 아사이 아츠시출판 : 한빛미디어 발매 : 2015.11.01 1. SQL과 집합- SELECT 명령을 실행하면 데이터베이스에 질의하며, 그 결과 몇 개의 행이 반환됨.이때 반환된 결과 전체를 하나의 집합으로 , 집합 내 하나의 행을 하나의 요소로 볼 수 있음. 2. UNION으로 합집합 구하기- 집합의 연산 중 '합집합'은 집합을 서로 더한 것을 의미. A U B 로 표기. - SQL에서는 SELECT명령의 실행 결과를 하나의 집합으로 다룰 수 있음. 합집합을 계산할 경우에는 UNION 키워드를 사용. SELECT * FROM sample71_a; > 결과 a 1 2 3 SELECT * FROM sample71_b; > 결과 b21011 - 두 개의 SELECT명령을 UNION해서 합집합 구하기..

Study/DB 2018.09.27

[SQL 첫걸음] 6장.데이터베이스 객체 작성과 삭제 - 30.뷰 작성과 삭제

저자 : 아사이 아츠시출판 : 한빛미디어 발매 : 2015.11.01 1. 뷰- 뷰는 SELECT 명령을 기록하는 데이터 베이스 객체.- 본래 데이터베이스 객체로 등록할 수 없는 SELECT명령을, 객체로서 이름을 붙여 관리할 수 있도록 한 것이 뷰. 뷰를 참조하면 그에 정의된 SELECT명령의 실행결과를 테이블처럼 사용할 수 있음. - 뷰를 정의할 때는 이름과 SELECT명령을 지정. 뷰를 만든 후에는 SELECT명령에서 뷰의 이름을 지정하면 참조 가능. 사용 ex) SELECT * FROM (SELECT * FROM sample64) sq; -> from 구에 서브쿼리 사용서브쿼리 부분을 '뷰 객체'로 만들면 SELECT * FROM sample_view_67; -> sample_view_67은 뷰의..

Study/DB 2018.09.27

[SQL 첫걸음] 6장.데이터베이스 객체 작성과 삭제 - 29.인덱스 작성과 삭제

저자 : 아사이 아츠시출판 : 한빛미디어 발매 : 2015.11.01 1. 인덱스 작성CREATE INDEX 인덱스명 ON 테이블명 (열명1, 열명2, ...) ex) CREATE INDEX isample65 ON sample62(no); -> sample62테이블의 no열에 isample65 라는 인덱스를 지정. - 인덱스는 이름을 붙여 관리하는데, 데이터베이스 객체가 될지 테이블의 열처럼 취급될지는 데이터베이스 제품에 따라 다름.- Oracle이나 DB2 등에서 인덱스는 스키마 객체. 따라서 스키마 내에 이름이 중복하지 않도록 지정. / SQL Server나 MySQL에서 인덱스는 테이블 내의 객체. 따라서 테이블 내에 이름이 중복하지 않도록 지정. => 인덱스의 네임스페이스가 디비제품마다 다름. -..

Study/DB 2018.09.16

[SQL 첫걸음] 6장.데이터베이스 객체 작성과 삭제 - 28.인덱스 구조

저자 : 아사이 아츠시출판 : 한빛미디어 발매 : 2015.11.01 1. 인덱스- 인덱스는 테이블에 붙여진 색인. 인덱스의 역할은 검색속도의 향상.- 테이블에 인덱스가 지정되어 있으면 효율적으로 검색할 수 있으므로 WHERE로 조건이 지정된 SELECT 명려으이 처리 속도가 향상됨. - 책의 목차나 색인이 인덱스와 비슷. 책 안에 있는 특정 부분을 찾을 때 본문을 처음부터 읽어나가기보다 목차나 색인을 참고해서 찾는 편이 효율적. 인덱스가 바로 이런 역할을 함.인덱스의 구조도 목차나 색인과 비슷. 목차나 색인에 제목ㆍ키워드별 페이지 번호 적혀있듯, 데이터베이스의 인덱스에는 검색 시에 쓰이는 키워드와 대응하는 데이터 행의 장소가 저장되있음.- 인덱스는 테이블과는 별개로 독립된 데이터베이스 객체로 작성됨. ..

Study/DB 2018.09.16

[SQL 첫걸음] 6장.데이터베이스 객체 작성과 삭제 - 27.제약

저자 : 아사이 아츠시출판 : 한빛미디어 발매 : 2015.11.01 1. 테이블 작성시 제약 정의- CREATE TABLE로 테이블을 작성할 때 제약을 같이 정의. 물론 ALTER TABLE로 제약을 지정하거나 변경할 수 있음. 이 때 NOT NULL 제약 등 하나의 열에 대해 설정하는 제약은 열을 정의할 때 지정. 123456-- 특정 열에 NOT NULL 제약과 UNIQUE 제약을 설정. CREATE TABLE sample631 ( a INTEGER NOT NULL, b INTEGER NOT NULL UNIQUE, C VARCHAR(30));Colored by Color Scriptercs- 이처럼 열에 대해 정의하는 제약을 '열 제약', 복수의 열에 제약을 설정하는 경우를 '테이블 제약'이라 부름..

Study/DB 2018.09.16

[SQL 첫걸음] 6장.데이터베이스 객체 작성과 삭제 - 26.테이블 작성·삭제·변경

저자 : 아사이 아츠시출판 : 한빛미디어 발매 : 2015.11.01 * SELECT, INSERT, DELETE, UPDATE는 SQL 명령 중에서도 DML로 분류. DML은 데이터를 조작하는 명령. 한편 DDL은 데이터를 정의하는 명령으로 스키마 내의 객체를 관리할 때 사용. 1. 테이블 작성- DDL은 데이터베이스 객체 모두 같은 문법을 사용. CREATE로 작성, DROP으로 삭제, ALTER로 변경. 뒤이어 어떤 종류의 객체를 작성, 삭제, 변경할지를 지정. ex) 테이블을 작성한다면 CREATE TABLE, 뷰를 작성한다면 CREATE VIEW와 같이 지정. - 테이블 작성 : CREATE TABLE 에 이어 작성하고 싶은 테이블 명 지정. 테이블명 뒤에는 괄호로 묶어 열 정의. 열을 정의할 ..

Study/DB 2018.09.11

[SQL 첫걸음] 6장.데이터베이스 객체 작성과 삭제 - 25.데이터베이스 객체

저자 : 아사이 아츠시출판 : 한빛미디어 발매 : 2015.11.01 1. 데이터베이스 객체- 데이터베이스 객체란 테이블이나 뷰, 인덱스 등 데이터베이스 내에 정의하는 모든 것을 일컫는 말. - 객체는 데이터베이스 내에서 실체를 가짐.- 객체는 이름을 가진다. 데이터베이스 내에서 객체를 작성할 때는 이름이 겹치지 않도록 함. cf. 데이터베이스 객체의 명명규칙(제약 사항)기존 이름이나 예약어와 중복하지 않는다.숫자로 시작할 수 없다.언더스코어(_) 이외의 기호는 사용할 수 없다.한글을 사용할 때는 더블쿼트(MySQL에서는 백쿼트)로 둘러싼다.시스템이 허용하는 길이를 초과하지 않는다. - 이름은 객체의 종류와는 관계가 없다. 예를 들어 foo라는 이름의 테이블을 한번 만들면, 같은 종류의 테이블은 물론이고..

Study/DB 2018.09.11

[SQL 첫걸음] 5장.집계와 서브쿼리 - 24.상관 서브쿼리

저자 : 아사이 아츠시출판 : 한빛미디어 발매 : 2015.11.01 1. EXISTS- 서브쿼리를 사용해 검색할 때, '데이터가 존재하는지 아닌지' 판별하기 위해 조건을 지정 할 수도 있음.이런 경우 EXISTS 술어를 사용해 조사 - 서브쿼리의 WHERE 구는 no2 = no라는 조건식.. no2는 sample552의 열이고 no는 sample551의 열. 이때, no가 3과 5일 때만 서브쿼리가 행을 반환. - EXISTS 술어에 서브쿼리를 지정하면 서브쿼리가 행을 반환할 경우에 참을 돌려줌. 결과가 한 줄이라도, 그 이상이라도 참이 됨. 반면 반환되는 행이 없을 경우에는 거짓이 됨. 2. NOT EXISTS- EXISTS와 반대로 행이 존재하지 않을 경우 참이 됨. - UPDATE 명령 뿐 아니라..

Study/DB 2018.09.10

[SQL 첫걸음] 5장.집계와 서브쿼리 - 23.서브쿼리

저자 : 아사이 아츠시출판 : 한빛미디어 발매 : 2015.11.01 - 서브쿼리 : SELECT 명령에 의한 데이터 질의로, 상부가 아닌 하부의 부수적인 질의를 의미.- SQL 명령문 안에 지정하는 하부 SELECT 명령으로 괄호로 묶어 지정. 특히 서브쿼리는 WHERE 구에서 주로 사용됨. WHERE 구는 SELECT, DELETE, UPDATE 구에서 사용할 수 있는데 이들 중 어떤 명령에서든 서브쿼리 사용 가능. 1. DELETE의 WHERE 구에서 서브쿼리 사용하기123-- 최솟값을 가지는 행 삭제 (괄호로 서브쿼리를 지정해 삭제)DELETE FROM sample54 WHERE a = (SELECT MIN(a) FROM sample54); cs- 단, MySQL에서는 위 쿼리를 실행할 수 없음...

Study/DB 2018.09.05